code fixes

This commit is contained in:
Dennis Eichhorn 2024-03-15 20:24:38 +00:00
parent f8289db5d5
commit 43b7eaf6a3
3 changed files with 28 additions and 15 deletions

View File

@ -453,6 +453,19 @@ final class ApiController extends Controller
$this->createStandardCreateResponse($request, $response, $element); $this->createStandardCreateResponse($request, $response, $element);
} }
/**
* Api method to create expense element from an upload
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return void
*
* @api
*
* @since 1.0.0
*/
public function apiExpenseElementFromUploadCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void public function apiExpenseElementFromUploadCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{ {
if (!empty($val = $this->validateExpenseElementCreate($request))) { if (!empty($val = $this->validateExpenseElementCreate($request))) {
@ -466,7 +479,7 @@ final class ApiController extends Controller
foreach ($request->files as $file) { foreach ($request->files as $file) {
$internalResponse = new HttpResponse(); $internalResponse = new HttpResponse();
$internalRequest = new HttpRequest(); $internalRequest = new HttpRequest();
$internalRequest->header->account = $request->header->account; $internalRequest->header->account = $request->header->account;
$internalRequest->header->l11n = $request->header->l11n; $internalRequest->header->l11n = $request->header->l11n;
@ -503,9 +516,9 @@ final class ApiController extends Controller
// @todo handle different value set (net, gross, taxr, ...). // @todo handle different value set (net, gross, taxr, ...).
// Depending on the value set the other values should be calculated // Depending on the value set the other values should be calculated
$element->net = new FloatInt($request->getDataInt('net') ?? 0); $element->net = new FloatInt($request->getDataInt('net') ?? 0);
$element->taxP = new FloatInt($request->getDataInt('taxp') ?? 0); $element->taxP = new FloatInt($request->getDataInt('taxp') ?? 0);
$element->gross = new FloatInt($request->getDataInt('gross') ?? 0); $element->gross = new FloatInt($request->getDataInt('gross') ?? 0);
if ($request->hasData('supplier')) { if ($request->hasData('supplier')) {
$element->supplier = new NullSupplier((int) $request->getData('supplier')); $element->supplier = new NullSupplier((int) $request->getData('supplier'));
@ -761,13 +774,13 @@ final class ApiController extends Controller
} }
// Is invoice // Is invoice
if ($request->getDataString('file_type') === MediaType::BILL if ($request->getDataInt('file_type') === MediaType::BILL
&& \count($uploaded) + \count($mediaFiles) === 1 && \count($uploaded) + \count($mediaFiles) === 1
&& $this->app->moduleManager->isActive('Billing') && $this->app->moduleManager->isActive('Billing')
&& $expense->net->value !== 0 && $expense->net->value !== 0
) { ) {
$internalResponse = new HttpResponse(); $internalResponse = new HttpResponse();
$internalRequest = new HttpRequest(); $internalRequest = new HttpRequest();
$internalRequest->header->account = $request->header->account; $internalRequest->header->account = $request->header->account;
$internalRequest->header->l11n = $request->header->l11n; $internalRequest->header->l11n = $request->header->l11n;
@ -783,7 +796,7 @@ final class ApiController extends Controller
->where('id', $element) ->where('id', $element)
->execute(); ->execute();
$oldElement = clone $elementObj; $oldElement = clone $elementObj;
$elementObj->bill = \reset($bills); $elementObj->bill = \reset($bills);
$bill = \Modules\Billing\Models\BillMapper::get() $bill = \Modules\Billing\Models\BillMapper::get()
@ -793,7 +806,7 @@ final class ApiController extends Controller
$elementObj->net = $bill->netSales; $elementObj->net = $bill->netSales;
$elementObj->taxP = $bill->taxP; $elementObj->taxP = $bill->taxP;
$elementObj->gross = $bill->grossSales; $elementObj->gross = $bill->grossSales;
$elementObj->supplier = $bill->supplier->id === 0 ? $bill->billTo : null; $elementObj->supplier = $bill->supplier;
$elementObj->country = $bill->billCountry; $elementObj->country = $bill->billCountry;
$this->updateModel($request->header->account, $oldElement, $elementObj, ExpenseElementMapper::class, 'expense_element', $request->getOrigin()); $this->updateModel($request->header->account, $oldElement, $elementObj, ExpenseElementMapper::class, 'expense_element', $request->getOrigin());

View File

@ -69,12 +69,12 @@ class ExpenseElement
*/ */
public function __construct() public function __construct()
{ {
$this->type = new BaseStringL11nType(); $this->type = new BaseStringL11nType();
$this->net = new FloatInt(); $this->net = new FloatInt();
$this->taxP = new FloatInt(); $this->taxP = new FloatInt();
$this->gross = new FloatInt(); $this->gross = new FloatInt();
$this->start = new \DateTime('now'); $this->start = new \DateTime('now');
$this->end = new \DateTime('now'); $this->end = new \DateTime('now');
} }
use \Modules\Media\Models\MediaListTrait; use \Modules\Media\Models\MediaListTrait;

View File

@ -54,7 +54,7 @@ final class ExpenseElementMapper extends DataMapperFactory
'bizexpenses_expense_element_type' => ['name' => 'bizexpenses_expense_element_type', 'type' => 'int', 'internal' => 'type'], 'bizexpenses_expense_element_type' => ['name' => 'bizexpenses_expense_element_type', 'type' => 'int', 'internal' => 'type'],
'bizexpenses_expense_element_country' => ['name' => 'bizexpenses_expense_element_country', 'type' => 'string', 'internal' => 'country'], 'bizexpenses_expense_element_country' => ['name' => 'bizexpenses_expense_element_country', 'type' => 'string', 'internal' => 'country'],
'bizexpenses_expense_element_expense' => ['name' => 'bizexpenses_expense_element_expense', 'type' => 'int', 'internal' => 'expense'], 'bizexpenses_expense_element_expense' => ['name' => 'bizexpenses_expense_element_expense', 'type' => 'int', 'internal' => 'expense'],
'bizexpenses_expense_element_bill' => ['name' => 'bizexpenses_expense_element_bill', 'type' => 'int', 'internal' => 'bill'], 'bizexpenses_expense_element_bill' => ['name' => 'bizexpenses_expense_element_bill', 'type' => 'int', 'internal' => 'bill'],
]; ];
/** /**