diff --git a/ajax/invoices/temporary/product/calc.php b/ajax/invoices/temporary/product/calc.php deleted file mode 100644 index 8bb46b3fb79d8310f2785cd9a4c23c2ef23083b0..0000000000000000000000000000000000000000 --- a/ajax/invoices/temporary/product/calc.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php - -/** - * This file contains package_quiqqer_invoice_ajax_invoices_temporary_product_calc - */ - -/** - * Calculates the current price of the article - * - * @return string - */ -QUI::$Ajax->registerFunction( - 'package_quiqqer_invoice_ajax_invoices_temporary_product_calc', - function ($params, $user) { - $params = \json_decode($params, true); - $user = \json_decode($user, true); - - if (!empty($user)) { - try { - $User = QUI\ERP\User::convertUserDataToErpUser($user); - $Calc = QUI\ERP\Accounting\Calc::getInstance($User); - } catch (QUI\ERP\Exception $Exception) { - $Calc = QUI\ERP\Accounting\Calc::getInstance(); - } - } else { - $Calc = QUI\ERP\Accounting\Calc::getInstance(); - } - - $Article = new QUI\ERP\Accounting\Article($params); - $Article->calc($Calc); - - return $Article->toArray(); - }, - ['params', 'user'], - 'Permission::checkAdminUser' -); diff --git a/ajax/invoices/temporary/product/getProductEdit.php b/ajax/invoices/temporary/product/getProductEdit.php deleted file mode 100644 index 7e842a3854efda95a29ad7d94637bdffbbc13b09..0000000000000000000000000000000000000000 --- a/ajax/invoices/temporary/product/getProductEdit.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php - -/** - * This file contains package_quiqqer_invoice_ajax_invoices_temporary_product_parseProductToArticle - */ - -use QUI\ERP\Products\Controls\Products\ProductEdit; -use QUI\ERP\Products\Handler\Products; - -/** - * - */ -QUI::$Ajax->registerFunction( - 'package_quiqqer_invoice_ajax_invoices_temporary_product_getProductEdit', - function ($productId, $user) { - $Product = Products::getProduct($productId); - $user = \json_encode($user, true); - - $Control = new ProductEdit([ - 'Product' => $Product - ]); - - $css = ''; //QUI\Control\Manager::getCSS(); - $html = $Control->create(); - - return $css.$html; - }, - ['productId', 'user'], - 'Permission::checkAdminUser' -); diff --git a/ajax/invoices/temporary/product/hasProductCustomFields.php b/ajax/invoices/temporary/product/hasProductCustomFields.php deleted file mode 100644 index 02d459efc899d42243e7157c92f214e788752926..0000000000000000000000000000000000000000 --- a/ajax/invoices/temporary/product/hasProductCustomFields.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php - -/** - * This file contains package_quiqqer_invoice_ajax_invoices_temporary_product_hasProductCustomFields - */ - -use QUI\ERP\Products\Handler\Products; - -/** - * - */ -QUI::$Ajax->registerFunction( - 'package_quiqqer_invoice_ajax_invoices_temporary_product_hasProductCustomFields', - function ($productId) { - $Product = Products::getProduct($productId); - $fields = $Product->createUniqueProduct()->getCustomFields(); - - return \count($fields); - }, - ['productId'], - 'Permission::checkAdminUser' -); diff --git a/ajax/invoices/temporary/product/parseProductToArticle.php b/ajax/invoices/temporary/product/parseProductToArticle.php deleted file mode 100644 index e970c28164f9619063f137cc401f44b24c4fc984..0000000000000000000000000000000000000000 --- a/ajax/invoices/temporary/product/parseProductToArticle.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php - -/** - * This file contains package_quiqqer_invoice_ajax_invoices_temporary_product_parseProductToArticle - */ - -use QUI\ERP\Products\Handler\Fields; -use QUI\ERP\Products\Handler\Products; - -/** - * - */ -QUI::$Ajax->registerFunction( - 'package_quiqqer_invoice_ajax_invoices_temporary_product_parseProductToArticle', - function ($productId, $attributes, $user) { - $user = \json_decode($user, true); - $attributes = \json_decode($attributes, true); - $User = null; - $Locale = QUI::getLocale(); - - if (!empty($user)) { - try { - $User = QUI\ERP\User::convertUserDataToErpUser($user); - } catch (QUI\Exception $Exception) { - if (!isset($user['uid'])) { - throw $Exception; - } - - $User = QUI::getUsers()->get($user['uid']); - } - - $Locale = $User->getLocale(); - } - - try { - $Product = Products::getProduct((int)$productId); - - foreach ($attributes as $field => $value) { - if (\strpos($field, 'field-') === false) { - continue; - } - - $field = \str_replace('field-', '', $field); - $Field = $Product->getField((int)$field); - - $Field->setValue($value); - } - - // look if the invoice text field has values - try { - $Description = $Product->getField(Fields::FIELD_SHORT_DESC); - $InvoiceText = $Product->getField( - QUI\ERP\Accounting\Invoice\Handler::INVOICE_PRODUCT_TEXT_ID - ); - - if (!$InvoiceText->isEmpty()) { - $Description->setValue($InvoiceText->getValue()); - } - } catch (QUI\Exception $Exception) { - QUI\System\Log::addNotice($Exception->getMessage()); - } - - - // create unique product, to create the ERP Article, so invoice can work with it - $Unique = $Product->createUniqueProduct($User); - - if (isset($attributes['quantity'])) { - $Unique->setQuantity($attributes['quantity']); - } - - $Unique->calc(); - - return $Unique->toArticle($Locale)->toArray(); - } catch (QUI\Exception $Exception) { - QUI\System\Log::write($Exception->getMessage()); - } - - return []; - }, - ['productId', 'attributes', 'user'], - 'Permission::checkAdminUser' -); diff --git a/ajax/invoices/temporary/product/summary.php b/ajax/invoices/temporary/product/summary.php deleted file mode 100644 index bc5914e9c8a46945856c56270cf9f1b9033b6d74..0000000000000000000000000000000000000000 --- a/ajax/invoices/temporary/product/summary.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php - -/** - * This file contains package_quiqqer_invoice_ajax_invoices_temporary_product_summary - */ - -/** - * Data for the summary display of an article - * The calculation is with a brutto user, so you get the complete data - * - * @return array - */ -QUI::$Ajax->registerFunction( - 'package_quiqqer_invoice_ajax_invoices_temporary_product_summary', - function ($article) { - $article = \json_decode($article, true); - - $Brutto = new QUI\ERP\User([ - 'id' => 'BRUTTO', - 'country' => '', - 'username' => '', - 'firstname' => '', - 'lastname' => '', - 'lang' => QUI::getLocale()->getCurrent(), - 'isCompany' => 0, - 'isNetto' => 0 - ]); - - $Brutto->setAttribute( - 'quiqqer.erp.isNettoUser', - QUI\ERP\Utils\User::IS_BRUTTO_USER - ); - - $Calc = QUI\ERP\Accounting\Calc::getInstance($Brutto); - $Article = new QUI\ERP\Accounting\Article($article); - - //$Article->setCurrency(); - $Article->setUser($Brutto); - $Article->calc($Calc); - - return $Article->toArray(); - }, - ['article'], - 'Permission::checkAdminUser' -); diff --git a/bin/backend/controls/panels/TemporaryInvoice.js b/bin/backend/controls/panels/TemporaryInvoice.js index 432c33702ea29ddf76229fd064fc2f423f266772..e72cf997f93e8dc6b975811e1a269ee9b57a7118 100644 --- a/bin/backend/controls/panels/TemporaryInvoice.js +++ b/bin/backend/controls/panels/TemporaryInvoice.js @@ -133,6 +133,10 @@ define('package/quiqqer/invoice/bin/backend/controls/panels/TemporaryInvoice', [ refresh: function () { var title = this.getAttribute('invoiceId'); + if (this.getAttribute('id')) { + title = this.getAttribute('id'); + } + title = title + ' ('; if (this.getAttribute('isbrutto')) { diff --git a/src/QUI/ERP/Accounting/Invoice/Invoice.php b/src/QUI/ERP/Accounting/Invoice/Invoice.php index 97a1dd88114756043d37b5ffadeacbce34b94384..e421e949273d2cd7b4795655c89a399aaa0c1bac 100644 --- a/src/QUI/ERP/Accounting/Invoice/Invoice.php +++ b/src/QUI/ERP/Accounting/Invoice/Invoice.php @@ -292,7 +292,13 @@ public function getCurrency(): QUI\ERP\Currency\Currency return QUI\ERP\Defaults::getCurrency(); } - return QUI\ERP\Currency\Handler::getCurrency($currency['code']); + $Currency = QUI\ERP\Currency\Handler::getCurrency($currency['code']); + + if (isset($currency['rate'])) { + $Currency->setExchangeRate($currency['rate']); + } + + return $Currency; } /** diff --git a/src/QUI/ERP/Accounting/Invoice/InvoiceTemporary.php b/src/QUI/ERP/Accounting/Invoice/InvoiceTemporary.php index c2e9f9eba5ec60f6d608bfe6d3970aeabb5daea3..867f6997070bbdda0d1b3a3e98a6ac252515ee2e 100644 --- a/src/QUI/ERP/Accounting/Invoice/InvoiceTemporary.php +++ b/src/QUI/ERP/Accounting/Invoice/InvoiceTemporary.php @@ -1009,8 +1009,9 @@ public function copy($PermissionUser = null): InvoiceTemporary 'limit' => 1 ]); - $currentData = $currentData[0]; - + $currentData = $currentData[0]; + $currentData['hash'] = QUI\Utils\Uuid::get(); + unset($currentData['id']); unset($currentData['c_user']); unset($currentData['date']);