diff --git a/assets/controllers/elements/collection_type_controller.js b/assets/controllers/elements/collection_type_controller.js
index 048600a9..14b683e0 100644
--- a/assets/controllers/elements/collection_type_controller.js
+++ b/assets/controllers/elements/collection_type_controller.js
@@ -74,24 +74,16 @@ export default class extends Controller {
const newElementStr = this.htmlDecode(prototype.replace(regex, this.generateUID()));
- let ret = null;
-
//Insert new html after the last child element
//If the table has a tbody, insert it there
//Afterwards return the newly created row
if(targetTable.tBodies[0]) {
targetTable.tBodies[0].insertAdjacentHTML('beforeend', newElementStr);
- ret = targetTable.tBodies[0].lastElementChild;
+ return targetTable.tBodies[0].lastElementChild;
} else { //Otherwise just insert it
targetTable.insertAdjacentHTML('beforeend', newElementStr);
- ret = targetTable.lastElementChild;
+ return targetTable.lastElementChild;
}
-
- //Trigger an event to notify other components that a new element has been created, so they can for example initialize select2 on it
- targetTable.dispatchEvent(new CustomEvent("collection:elementAdded", {bubbles: true}));
-
- return ret;
-
}
/**
diff --git a/assets/js/tristate_checkboxes.js b/assets/js/tristate_checkboxes.js
index 467099ab..4cf4fc1e 100644
--- a/assets/js/tristate_checkboxes.js
+++ b/assets/js/tristate_checkboxes.js
@@ -56,8 +56,7 @@ class TristateHelper {
document.addEventListener("turbo:load", listener);
document.addEventListener("turbo:render", listener);
- document.addEventListener("collection:elementAdded", listener);
}
}
-export default new TristateHelper();
+export default new TristateHelper();
\ No newline at end of file
diff --git a/src/Entity/PriceInformations/Orderdetail.php b/src/Entity/PriceInformations/Orderdetail.php
index 9a9a2823..8ed76a46 100644
--- a/src/Entity/PriceInformations/Orderdetail.php
+++ b/src/Entity/PriceInformations/Orderdetail.php
@@ -52,7 +52,6 @@ use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Serializer\Annotation\Groups;
-use Symfony\Component\Serializer\Annotation\SerializedName;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Constraints\Length;
@@ -389,50 +388,6 @@ class Orderdetail extends AbstractDBElement implements TimeStampableInterface, N
return $this;
}
- /**
- * Checks if the prices of this orderdetail include VAT. This is determined by checking the pricedetails of this
- * orderdetail. If there are no pricedetails or if the pricedetails have conflicting values, null is returned.
- * @return bool|null
- */
- #[Groups(['orderdetail:read'])]
- #[SerializedName('prices_include_vat')]
- public function getPricesIncludesVAT(): ?bool
- {
- $value = null;
- //We determine that via the pricedetails
- foreach ($this->getPricedetails() as $pricedetail) {
- /** @var Pricedetail $pricedetail */
- if ($pricedetail->getIncludesVat() === null) {
- return null; // If any pricedetail doesn't specify this, we can't determine it
- }
-
- if ($value === null) {
- $value = $pricedetail->getIncludesVat(); // Set initial value
- } elseif ($value !== $pricedetail->getIncludesVat()) {
- return null; // If there are conflicting values, we can't determine it
- }
- }
-
- return $value;
- }
-
- /**
- * Sets whether the prices of this orderdetail include VAT. This is set for all pricedetails of this orderdetail.
- * @param bool|null $includesVat
- * @return $this
- */
- #[Groups(['orderdetail:write'])]
- #[SerializedName('prices_include_vat')]
- public function setPricesIncludesVAT(?bool $includesVat): self
- {
- foreach ($this->getPricedetails() as $pricedetail) {
- /** @var Pricedetail $pricedetail */
- $pricedetail->setIncludesVat($includesVat);
- }
-
- return $this;
- }
-
public function getName(): string
{
return $this->getSupplierPartNr();
diff --git a/src/Entity/PriceInformations/Pricedetail.php b/src/Entity/PriceInformations/Pricedetail.php
index 7deb64f9..b98ee056 100644
--- a/src/Entity/PriceInformations/Pricedetail.php
+++ b/src/Entity/PriceInformations/Pricedetail.php
@@ -124,9 +124,9 @@ class Pricedetail extends AbstractDBElement implements TimeStampableInterface
/**
* @var bool|null Whether the price includes VAT or not. Null means, that it is not specified, if the price includes VAT or not.
*/
- #[ORM\Column(name: "include_vat", type: Types::BOOLEAN, nullable: true)]
+ #[ORM\Column(type: Types::BOOLEAN, nullable: true)]
#[Groups(['extended', 'full', 'import', 'pricedetail:read', 'pricedetail:write'])]
- protected ?bool $includes_vat = null;
+ protected ?bool $include_vat = null;
public function __construct()
{
@@ -271,15 +271,6 @@ class Pricedetail extends AbstractDBElement implements TimeStampableInterface
return $this->currency?->getIsoCode();
}
- /**
- * Returns whether the price includes VAT or not. Null means, that it is not specified, if the price includes VAT or not.
- * @return bool|null
- */
- public function getIncludesVat(): ?bool
- {
- return $this->includes_vat;
- }
-
/********************************************************************************
*
* Setters
@@ -378,13 +369,24 @@ class Pricedetail extends AbstractDBElement implements TimeStampableInterface
}
/**
- * Set whether the price includes VAT or not. Null means, that it is not specified, if the price includes VAT or not.
- * @param bool|null $includes_vat
+ * Returns whether the price includes VAT or not. Null means, that it is not specified, if the price includes VAT or not.
+ * @return bool|null
+ */
+ public function getIncludeVat(): ?bool
+ {
+ return $this->include_vat;
+ }
+
+ /**
+ * Sets whether the price includes VAT or not. Null means, that it is not specified, if the price includes VAT or not.
+ * @param bool|null $include_vat
* @return $this
*/
- public function setIncludesVat(?bool $includes_vat): self
+ public function setIncludeVat(?bool $include_vat): self
{
- $this->includes_vat = $includes_vat;
+ $this->include_vat = $include_vat;
return $this;
}
+
+
}
diff --git a/src/Form/Part/OrderdetailType.php b/src/Form/Part/OrderdetailType.php
index ca295c7e..53240821 100644
--- a/src/Form/Part/OrderdetailType.php
+++ b/src/Form/Part/OrderdetailType.php
@@ -22,7 +22,6 @@ declare(strict_types=1);
namespace App\Form\Part;
-use App\Form\Type\TriStateCheckboxType;
use Symfony\Bundle\SecurityBundle\Security;
use App\Entity\Parts\MeasurementUnit;
use App\Entity\Parts\Supplier;
@@ -74,11 +73,6 @@ class OrderdetailType extends AbstractType
'label' => 'orderdetails.edit.obsolete',
]);
- $builder->add('pricesIncludesVAT', TriStateCheckboxType::class, [
- 'required' => false,
- 'label' => 'orderdetails.edit.prices_includes_vat',
- ]);
-
//Add pricedetails after we know the data, so we can set the default currency
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($options): void {
/** @var Orderdetail $orderdetail */
diff --git a/src/Services/InfoProviderSystem/DTOtoEntityConverter.php b/src/Services/InfoProviderSystem/DTOtoEntityConverter.php
index 1a93b111..d3a7c52c 100644
--- a/src/Services/InfoProviderSystem/DTOtoEntityConverter.php
+++ b/src/Services/InfoProviderSystem/DTOtoEntityConverter.php
@@ -94,14 +94,13 @@ final class DTOtoEntityConverter
$entity->setPrice($dto->getPriceAsBigDecimal());
$entity->setPriceRelatedQuantity($dto->price_related_quantity);
+ //Currency TODO
if ($dto->currency_iso_code !== null) {
$entity->setCurrency($this->getCurrency($dto->currency_iso_code));
} else {
$entity->setCurrency(null);
}
- $entity->setIncludesVat($dto->includes_tax);
-
return $entity;
}
diff --git a/templates/helper.twig b/templates/helper.twig
index 9e68d56c..66268a96 100644
--- a/templates/helper.twig
+++ b/templates/helper.twig
@@ -192,7 +192,7 @@
{% set preview_attach = part_preview_generator.tablePreviewAttachment(part) %}
{% if preview_attach %}
+ {{ stimulus_controller('elements/hoverpic') }} data-thumbnail="{{ attachment_thumbnail(preview_attach) }}">
{% endif %}
{{ part.name }}
{% endmacro %}
@@ -241,11 +241,3 @@
{{ datetime|format_datetime }}
{% endif %}
{% endmacro %}
-
-{% macro vat_text(bool) %}
- {% if bool === true %}
- ({% trans %}prices.incl_vat{% endtrans %})
- {% elseif bool === false %}
- ({% trans %}prices.excl_vat{% endtrans %})
- {% endif %}
-{% endmacro %}
diff --git a/templates/parts/edit/edit_form_styles.html.twig b/templates/parts/edit/edit_form_styles.html.twig
index aa68f38a..c2a89b6a 100644
--- a/templates/parts/edit/edit_form_styles.html.twig
+++ b/templates/parts/edit/edit_form_styles.html.twig
@@ -32,7 +32,6 @@
{{ form_row(form.supplierpartnr, {'attr': {'class': 'form-control-sm'}}) }}
{{ form_row(form.supplier_product_url, {'attr': {'class': 'form-control-sm'}}) }}
{{ form_widget(form.obsolete) }}
- {{ form_row(form.pricesIncludesVAT) }}
| {% trans %}part.order.minamount{% endtrans %} | {% trans %}part.order.price{% endtrans %} | @@ -36,35 +36,32 @@ {% endif %}|
|---|---|---|
| - {{ detail.MinDiscountQuantity | format_amount(part.partUnit) }} - | -- {{ detail.price | format_money(detail.currency) }} / {{ detail.PriceRelatedQuantity | format_amount(part.partUnit) }} - {% set tmp = pricedetail_helper.convertMoneyToCurrency(detail.price, detail.currency) %} - {% if detail.currency != (app.user.currency ?? null) and tmp is not null and tmp.GreaterThan(0) %} - ({{ pricedetail_helper.convertMoneyToCurrency(detail.price, detail.currency, app.user.currency ?? null) | format_money(app.user.currency ?? null) }}) - {% endif %} - {{- helper.vat_text(detail.includesVAT) -}} - | -- {{ detail.PricePerUnit | format_money(detail.currency) }} - {% set tmp = pricedetail_helper.convertMoneyToCurrency(detail.PricePerUnit, detail.currency) %} - {% if detail.currency != (app.user.currency ?? null) and tmp is not null and tmp.GreaterThan(0) %} - ({{ pricedetail_helper.convertMoneyToCurrency(detail.PricePerUnit, detail.currency, app.user.currency ?? null) | format_money(app.user.currency ?? null) }}) - {% endif %} - {{- helper.vat_text(detail.includesVAT) -}} - | -