diff --git a/.docker/docker-compose/docker-compose.local.yml b/.docker/docker-compose/docker-compose.local.yml
index 581b318e7..63eb8965e 100644
--- a/.docker/docker-compose/docker-compose.local.yml
+++ b/.docker/docker-compose/docker-compose.local.yml
@@ -46,13 +46,13 @@ services:
networks:
- network
restart: always
- deploy:
- resources:
- reservations:
- devices:
- - driver: nvidia
- count: 1 # alternatively, use `count: all` for all GPUs
- capabilities: [gpu]
+# deploy:
+# resources:
+# reservations:
+# devices:
+# - driver: nvidia
+# count: 1 # alternatively, use `count: all` for all GPUs
+# capabilities: [gpu]
webhook:
image: tarampampam/webhook-tester:2
restart: always
diff --git a/src/new/src/PSC/Shop/OrderBundle/Model/Order/Position/Upload/Center.php b/src/new/src/PSC/Shop/OrderBundle/Model/Order/Position/Upload/Center.php
index b7c81e8d8..0942e511e 100644
--- a/src/new/src/PSC/Shop/OrderBundle/Model/Order/Position/Upload/Center.php
+++ b/src/new/src/PSC/Shop/OrderBundle/Model/Order/Position/Upload/Center.php
@@ -4,6 +4,8 @@ namespace PSC\Shop\OrderBundle\Model\Order\Position\Upload;
class Center implements IUploadTypeObject
{
+ public array $uploads = [];
+
public function getCode(): string
{
return 'center';
@@ -18,4 +20,9 @@ class Center implements IUploadTypeObject
{
return false;
}
+
+ public function addUpload(array $upload): void
+ {
+ $this->uploads[] = $upload;
+ }
}
diff --git a/src/new/src/PSC/Shop/OrderBundle/Model/Order/Position/Upload/IUploadTypeObject.php b/src/new/src/PSC/Shop/OrderBundle/Model/Order/Position/Upload/IUploadTypeObject.php
index 8a7af9f03..0ecc9fba8 100644
--- a/src/new/src/PSC/Shop/OrderBundle/Model/Order/Position/Upload/IUploadTypeObject.php
+++ b/src/new/src/PSC/Shop/OrderBundle/Model/Order/Position/Upload/IUploadTypeObject.php
@@ -8,6 +8,7 @@ use OpenApi\Attributes\Schema;
#[Schema(properties: [
new Property(property: 'code', type: 'string'),
new Property(property: 'name', type: 'string'),
+ new Property(property: 'preview', type: 'boolean'),
])]
interface IUploadTypeObject
{
diff --git a/src/new/src/PSC/Shop/OrderBundle/Resources/views/backend/detail/show.html.twig b/src/new/src/PSC/Shop/OrderBundle/Resources/views/backend/detail/show.html.twig
index c2dbf2653..aa033eaf3 100755
--- a/src/new/src/PSC/Shop/OrderBundle/Resources/views/backend/detail/show.html.twig
+++ b/src/new/src/PSC/Shop/OrderBundle/Resources/views/backend/detail/show.html.twig
@@ -1,617 +1,604 @@
-{% extends 'backend_base.html.twig' %}
+{% extends 'backend_tailwind_base.html.twig' %}
+{% form_theme formStatus 'tailwind_formtheme.html.twig' %}
+{% form_theme formInvoice 'tailwind_formtheme.html.twig' %}
+{% form_theme formDelivery 'tailwind_formtheme.html.twig' %}
+{% form_theme formSender 'tailwind_formtheme.html.twig' %}
{% trans_default_domain 'core_order_detail' %}
-{% block body %}
-
-
-
-
-
-
-
-
-
-
- {{'paymentmethod'|trans}}: {{ order.getPaymentType.getTitle() }}
- {{'payment'|trans}}: {{ orderObj.paymentGateway }} ({{ orderObj.paymentRef }})
- {{'shippingmethod'|trans}}: {{ order.getShippingType.getTitle() }}
- {{'sendDataToShipping'|trans}}: {% if orderObj.sendDataToShipping %}{{'yes'|trans}}{% else %}{{'no'|trans}}{% endif %}
- {{'weight'|trans}}: {{ order.weight }}
- {{'shoppingcartfield1'|trans}}: {{ order.basketfield1 }}
- {{'shoppingcartfield2'|trans}}: {{ order.basketfield2 }}
- {% if order.gutschein %}{{'coupon'|trans}}: {{ order.gutscheinAbzug }} ({{ order.gutschein}}) {% endif %}
- {{'shippingCost'|trans}}: {{ order.versandKosten|number_format(2, ',', '.') }}€
- {{'paymentCost'|trans}}: {{ order.zahlKosten|number_format(2, ',', '.') }}€
- {{'netto'|trans}}: {{ order.netto|number_format(2, ',', '.') }}€
- {{'vat'|trans}}: {{ order.steuer|number_format(2, ',', '.') }}€
- {{'brutto'|trans}}: {{ order.brutto|number_format(2, ',', '.') }}€
-
-
-
-
-
-
-
-
{{'orderdate'|trans}}: {{ order.created|date('d.m.Y H:i:s') }}
- {{ form_start(formStatus, { 'attr': {'class': ''}}) }}
- {{ form_errors(formStatus) }}
-
-
- {{'Packageexported'|trans}}?
-
-
-
-
-
- {{ form_label(formStatus.package) }}
-
-
- {{ form_widget(formStatus.package, {attr: {class:'form-control'}}) }}
-
-
-
-
- {{ form_label(formStatus.status) }}
-
-
- {{ form_widget(formStatus.status, {attr: {class:'form-control'}}) }}
-
-
-
-
- {{ form_label(formStatus.notices) }}
-
-
- {{ form_widget(formStatus.notices, {attr: {class:'form-control'}}) }}
-
-
-
-
- {{ form_widget(formStatus.save, {attr: {class: 'btn btn-primary btn-sm'}}) }}
-
-
- {{ form_end(formStatus) }}
-
-
-
-
-
-
- {% for customSection in customSections %}
- {% if customSection.getController %}
- {{ render(controller(
- customSection.getController,
- {'order': order, 'orderDoc': orderObj}
- )) }}
- {% endif %}
- {% endfor %}
-
-
-
-
-
-
-
{{'billingaddress'|trans}}
-
- {{ form_start(formInvoice, { 'attr': {'class': ''}}) }}
- {{ form_errors(formInvoice) }}
-
-
-
- {{ form_label(formInvoice.company) }}
-
-
- {{ form_widget(formInvoice.company) }}
-
- {{ form_errors(formInvoice.company) }}
-
-
-
- {{ form_label(formInvoice.company2) }}
-
-
- {{ form_widget(formInvoice.company2) }}
-
- {{ form_errors(formInvoice.company2) }}
-
-
-
-
- {{ form_label(formInvoice.firstname) }}
-
-
- {{ form_widget(formInvoice.firstname) }}
-
- {{ form_errors(formInvoice.firstname) }}
-
-
-
-
- {{ form_label(formInvoice.lastname) }}
-
-
- {{ form_widget(formInvoice.lastname) }}
-
- {{ form_errors(formInvoice.lastname) }}
-
-
-
-
- {{ form_label(formInvoice.email) }}
-
-
- {{ form_widget(formInvoice.email) }}
-
- {{ form_errors(formInvoice.email) }}
-
-
-
-
- {{ form_label(formInvoice.phone) }}
-
-
- {{ form_widget(formInvoice.phone) }}
-
- {{ form_errors(formInvoice.phone) }}
-
-
-
-
- {{'zip'|trans}}/{{'city'|trans}}/{{'country'|trans}}
-
-
- {{ form_widget(formInvoice.zip) }}
-
-
- {{ form_widget(formInvoice.city) }}
-
-
- {{ form_widget(formInvoice.country) }}
-
-
-
-
-
-
- {{'street'|trans}}/{{'houseNumber'|trans}}
-
-
- {{ form_widget(formInvoice.street) }}
-
-
-
- {{ form_widget(formInvoice.houseNumber) }}
-
-
-
-
-
-
- {{ form_widget(formInvoice.save, {attr: {class: 'btn btn-primary btn-sm'}}) }}
-
-
- {{ form_end(formInvoice) }}
-
-
-
{{'shippingaddress'|trans}}
-
- {{ form_start(formDelivery, { 'attr': {'class': ''}}) }}
- {{ form_errors(formDelivery) }}
-
-
-
- {{ form_label(formDelivery.company) }}
-
-
- {{ form_widget(formDelivery.company) }}
-
- {{ form_errors(formDelivery.company) }}
-
-
-
-
- {{ form_label(formDelivery.company2) }}
-
-
- {{ form_widget(formDelivery.company2) }}
-
- {{ form_errors(formDelivery.company2) }}
-
-
-
-
- {{ form_label(formDelivery.firstname) }}
-
-
- {{ form_widget(formDelivery.firstname) }}
-
- {{ form_errors(formDelivery.firstname) }}
-
-
-
-
- {{ form_label(formDelivery.lastname) }}
-
-
- {{ form_widget(formDelivery.lastname) }}
-
- {{ form_errors(formDelivery.lastname) }}
-
-
-
-
- {{ form_label(formDelivery.email) }}
-
-
- {{ form_widget(formDelivery.email) }}
-
- {{ form_errors(formDelivery.email) }}
-
-
-
-
- {{ form_label(formDelivery.phone) }}
-
-
- {{ form_widget(formDelivery.phone) }}
-
- {{ form_errors(formDelivery.phone) }}
-
-
-
-
- {{'zip'|trans}}/{{'city'|trans}}/{{'country'|trans}}
-
-
- {{ form_widget(formDelivery.zip) }}
-
-
- {{ form_widget(formDelivery.city) }}
-
-
- {{ form_widget(formDelivery.country) }}
-
-
-
-
-
-
- {{'street'|trans}}/{{'houseNumber'|trans}}
-
-
- {{ form_widget(formDelivery.street) }}
-
-
-
- {{ form_widget(formDelivery.houseNumber) }}
-
-
-
-
-
-
- {{ form_widget(formDelivery.save, {attr: {class: 'btn btn-primary btn-sm'}}) }}
-
-
- {{ form_end(formDelivery) }}
-
-
-
{{'senderaddress'|trans}}
-
- {{ form_start(formSender, { 'attr': {'class': ''}}) }}
- {{ form_errors(formSender) }}
-
-
-
- {{ form_label(formSender.company) }}
-
-
- {{ form_widget(formSender.company) }}
-
- {{ form_errors(formSender.company) }}
-
-
-
-
- {{ form_label(formSender.company2) }}
-
-
- {{ form_widget(formSender.company2) }}
-
- {{ form_errors(formSender.company2) }}
-
-
-
-
- {{ form_label(formSender.firstname) }}
-
-
- {{ form_widget(formSender.firstname) }}
-
- {{ form_errors(formSender.firstname) }}
-
-
-
-
- {{ form_label(formSender.lastname) }}
-
-
- {{ form_widget(formSender.lastname) }}
-
- {{ form_errors(formSender.lastname) }}
-
-
-
-
- {{ form_label(formSender.email) }}
-
-
- {{ form_widget(formSender.email) }}
-
- {{ form_errors(formSender.email) }}
-
-
-
-
- {{ form_label(formSender.phone) }}
-
-
- {{ form_widget(formSender.phone) }}
-
- {{ form_errors(formSender.phone) }}
-
-
-
-
- {{'zip'|trans}}/{{'city'|trans}}/{{'country'|trans}}
-
-
- {{ form_widget(formSender.zip) }}
-
-
- {{ form_widget(formSender.city) }}
-
-
- {{ form_widget(formSender.country) }}
-
-
-
-
-
-
- {{'street'|trans}}/{{'houseNumber'|trans}}
-
-
- {{ form_widget(formSender.street) }}
-
-
-
- {{ form_widget(formSender.houseNumber) }}
-
-
-
-
-
-
- {{ form_widget(formSender.save, {attr: {class: 'btn btn-primary btn-sm'}}) }}
-
-
- {{ form_end(formSender) }}
-
-
-
-
-
-
-
-
-
-
-
-
- {{'Pos'|trans}}
- {{'name'|trans}}
- {{'wkpos1'|trans}}
- {{'wkpos2'|trans}}
- {{'properties'|trans}}
- {{'status'|trans}}
- {{'netto'|trans}}
- {{'vat'|trans}}
- {{'brutto'|trans}}
-
-
-
-
- {% for pos in positions %}
-{% set posModel = orderModel.getPositionByUuid(pos.obj.uuid) %}
- {{ pos.obj.pos }}
-
- {{ pos.obj.product.title }} ArtNr intern: {{ pos.obj.product.nrIntern }} {{ 'weight'|trans }}: {{pos.obj.weight }}
- {{ pos.obj.basketfield1 }}
- {{ pos.obj.basketfield2 }}
-
-
-
- {{ orderStatuse.getPosStatusText(pos.obj.status) }}
-
-
-
- {{ pos.obj.priceAllNetto|number_format(2, ',', '.') }}€
- {{ pos.obj.priceAllSteuer|number_format(2, ',', '.') }}€
- {{ pos.obj.priceAllBrutto|number_format(2, ',', '.') }}€
-
- {% if pos.obj.layouterMode == 4 and pos.objDoc %} Layouter öffnen {% endif %}
-
-
-
-
-
- {% if pos.objDoc.setConfig|length > 0 %}
- Set bestehend aus:
-
- {% for item in pos.objDoc.setConfig %}
- {% if (item.article_id|product) %}{{ (item.article_id|product).title }} ({% if item.count == 0 %}{{ pos.count }}{% else %}{{ pos.count * item.count }}{% endif %}) {% endif %}
- {% endfor %}
-
- {% endif %}
-
-
-
-
- {% if pos.objCalc %}
- {% for opt in pos.objCalc.getOptions %}
- {% if opt is not instanceof('\\PSC\\Library\\Calc\\Option\\Type\\Hidden') and opt.isValid() %}
- {{ opt.name }}: {{ opt.value }}
- {% endif %}
- {% endfor %}
- {% endif %}
-
- {% for customSection in customPositionDetailSections %}
- {% if customSection.getController %}
- {{ render(controller(
- customSection.getController,
- {'order': orderModel, 'position': posModel}
- )) }}
- {% endif %}
- {% endfor %}
-
-
- {{ form_start(pos.formProd) }}{{ form_widget(pos.formProd.printPartnerEmail) }}{{ form_rest(pos.formProd) }}
Printpartner benachrichtigen
{{ form_end(pos.formProd) }}
{{ form_start(pos.formProdinfo) }}{{ form_widget(pos.formProdinfo.customerInfo) }}{{ form_rest(pos.formProdinfo) }}
Dem Kunden zeigen
{{ form_end(pos.formProdinfo) }}{% if posModel.reOrder %}{% set reOrderModel = orderService.getOrderByUuid(posModel.reOrderOrder, true) %}
Ist eine Nachbestellung vom Auftrag: {{ reOrderModel.alias }} vom: {{ reOrderModel.created|date("d.m.Y") }}
{% endif %}
-
-
-
- {% if shop.docOfferPosition != "" %} {{'offer'|trans}} {% endif %}
- {% if shop.docOrderPosition != "" %} {{'order'|trans}} {% endif %}
- {% if shop.docInvoicePosition != "" %} {{'invoice'|trans}} {% endif %}
- {% if shop.docDeliveryPosition != "" %} {{'deliverynote'|trans}} {% endif %}
- {% if shop.docLabelPosition != "" %} {{'labels'|trans}} {% endif %}
- {% if shop.docJobticketPosition != "" %} {{'jobticket'|trans}} {% endif %}
- {% if shop.docStornoPosition != "" %} {{'cancel'|trans}} {% endif %}
-
-
-
-
-
- {% endfor %}
-
-
-
-
-
-
-
-
-
-
+{% block header %}
+
{% endblock %}
+
+{% block body %}
+
+
+ {# Downloads #}
+
+
+ {# 3-column info grid #}
+
+
+ {# Order Info #}
+
+
{{'order'|trans}} {{ order.alias }}
+
+
+
{{'paymentmethod'|trans}}:
+ {{ order.getPaymentType.getTitle() }}
+
+
+
{{'payment'|trans}}:
+ {{ orderObj.paymentGateway }} ({{ orderObj.paymentRef }})
+
+
+
{{'shippingmethod'|trans}}:
+ {{ order.getShippingType.getTitle() }}
+
+
+
{{'sendDataToShipping'|trans}}:
+ {% if orderObj.sendDataToShipping %}{{'yes'|trans}} {% else %}{{'no'|trans}} {% endif %}
+
+
+
{{'weight'|trans}}:
+ {{ order.weight }}
+
+
+
{{'shoppingcartfield1'|trans}}:
+ {{ order.basketfield1 }}
+
+
+
{{'shoppingcartfield2'|trans}}:
+ {{ order.basketfield2 }}
+
+ {% if order.gutschein %}
+
+
{{'coupon'|trans}}:
+ {{ order.gutscheinAbzug }} ({{ order.gutschein }})
+
+ {% endif %}
+
+
+
{{'shippingCost'|trans}}:
+ {{ order.versandKosten|number_format(2, ',', '.') }}€
+
+
+
{{'paymentCost'|trans}}:
+ {{ order.zahlKosten|number_format(2, ',', '.') }}€
+
+
+
{{'netto'|trans}}:
+ {{ order.netto|number_format(2, ',', '.') }}€
+
+
+
{{'vat'|trans}}:
+ {{ order.steuer|number_format(2, ',', '.') }}€
+
+
+
{{'brutto'|trans}}:
+ {{ order.brutto|number_format(2, ',', '.') }}€
+
+
+
+
+
+ {# Status #}
+
+
Status
+
+ {{'orderdate'|trans}}:
+ {{ order.created|date('d.m.Y H:i:s') }}
+
+ {{ form_start(formStatus) }}
+ {{ form_errors(formStatus) }}
+
+
{{'Packageexported'|trans}}?
+
+
+
+ {{ form_label(formStatus.package) }}
+ {{ form_widget(formStatus.package) }}
+
+
+ {{ form_label(formStatus.status) }}
+ {{ form_widget(formStatus.status) }}
+
+
+ {{ form_label(formStatus.notices) }}
+ {{ form_widget(formStatus.notices) }}
+
+
+ {{ form_widget(formStatus.save, {attr: {class: 'inline-flex items-center justify-center gap-2 font-medium rounded-sm px-5 py-2.5 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2'}}) }}
+
+ {{ form_end(formStatus) }}
+
+
+ {# Customer + Actions #}
+
+
+
Kunde
+
+
+
+
+
+
{{'guest'|trans}}:
+ {% if order.contact.virtual == 1 %}{{'yes'|trans}} {% else %}{{'no'|trans}} {% endif %}
+
+
+
+
+
+
+
+ {# Custom Sections #}
+ {% for customSection in customSections %}
+ {% if customSection.getController %}
+ {{ render(controller(
+ customSection.getController,
+ {'order': order, 'orderDoc': orderObj}
+ )) }}
+ {% endif %}
+ {% endfor %}
+
+ {# Addresses #}
+
+
{{'addresses'|trans}}
+
+
+ {# Invoice address #}
+
+
{{'billingaddress'|trans}}
+ {{ form_start(formInvoice) }}
+ {{ form_errors(formInvoice) }}
+ {% macro address_field(label, widget, errors) %}
+
+ {{ label }}
+ {{ widget }}
+ {{ errors }}
+
+ {% endmacro %}
+
+ {{ form_label(formInvoice.company) }}
+ {{ form_widget(formInvoice.company) }}
+ {{ form_errors(formInvoice.company) }}
+
+
+ {{ form_label(formInvoice.company2) }}
+ {{ form_widget(formInvoice.company2) }}
+ {{ form_errors(formInvoice.company2) }}
+
+
+ {{ form_label(formInvoice.firstname) }}
+ {{ form_widget(formInvoice.firstname) }}
+ {{ form_errors(formInvoice.firstname) }}
+
+
+ {{ form_label(formInvoice.lastname) }}
+ {{ form_widget(formInvoice.lastname) }}
+ {{ form_errors(formInvoice.lastname) }}
+
+
+ {{ form_label(formInvoice.email) }}
+ {{ form_widget(formInvoice.email) }}
+ {{ form_errors(formInvoice.email) }}
+
+
+ {{ form_label(formInvoice.phone) }}
+ {{ form_widget(formInvoice.phone) }}
+ {{ form_errors(formInvoice.phone) }}
+
+
+
{{'zip'|trans}} / {{'city'|trans}} / {{'country'|trans}}
+
+
{{ form_widget(formInvoice.zip) }}
+
{{ form_widget(formInvoice.city) }}
+
{{ form_widget(formInvoice.country) }}
+
+
+
+
{{'street'|trans}} / {{'houseNumber'|trans}}
+
+
{{ form_widget(formInvoice.street) }}
+
{{ form_widget(formInvoice.houseNumber) }}
+
+
+
+ {{ form_widget(formInvoice.save, {attr: {class: 'inline-flex items-center justify-center gap-2 font-medium rounded-sm px-5 py-2.5 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2'}}) }}
+
+ {{ form_end(formInvoice) }}
+
+
+ {# Delivery address #}
+
+
{{'shippingaddress'|trans}}
+ {{ form_start(formDelivery) }}
+ {{ form_errors(formDelivery) }}
+
+ {{ form_label(formDelivery.company) }}
+ {{ form_widget(formDelivery.company) }}
+ {{ form_errors(formDelivery.company) }}
+
+
+ {{ form_label(formDelivery.company2) }}
+ {{ form_widget(formDelivery.company2) }}
+ {{ form_errors(formDelivery.company2) }}
+
+
+ {{ form_label(formDelivery.firstname) }}
+ {{ form_widget(formDelivery.firstname) }}
+ {{ form_errors(formDelivery.firstname) }}
+
+
+ {{ form_label(formDelivery.lastname) }}
+ {{ form_widget(formDelivery.lastname) }}
+ {{ form_errors(formDelivery.lastname) }}
+
+
+ {{ form_label(formDelivery.email) }}
+ {{ form_widget(formDelivery.email) }}
+ {{ form_errors(formDelivery.email) }}
+
+
+ {{ form_label(formDelivery.phone) }}
+ {{ form_widget(formDelivery.phone) }}
+ {{ form_errors(formDelivery.phone) }}
+
+
+
{{'zip'|trans}} / {{'city'|trans}} / {{'country'|trans}}
+
+
{{ form_widget(formDelivery.zip) }}
+
{{ form_widget(formDelivery.city) }}
+
{{ form_widget(formDelivery.country) }}
+
+
+
+
{{'street'|trans}} / {{'houseNumber'|trans}}
+
+
{{ form_widget(formDelivery.street) }}
+
{{ form_widget(formDelivery.houseNumber) }}
+
+
+
+ {{ form_widget(formDelivery.save, {attr: {class: 'inline-flex items-center justify-center gap-2 font-medium rounded-sm px-5 py-2.5 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2'}}) }}
+
+ {{ form_end(formDelivery) }}
+
+
+ {# Sender address #}
+
+
{{'senderaddress'|trans}}
+ {{ form_start(formSender) }}
+ {{ form_errors(formSender) }}
+
+ {{ form_label(formSender.company) }}
+ {{ form_widget(formSender.company) }}
+ {{ form_errors(formSender.company) }}
+
+
+ {{ form_label(formSender.company2) }}
+ {{ form_widget(formSender.company2) }}
+ {{ form_errors(formSender.company2) }}
+
+
+ {{ form_label(formSender.firstname) }}
+ {{ form_widget(formSender.firstname) }}
+ {{ form_errors(formSender.firstname) }}
+
+
+ {{ form_label(formSender.lastname) }}
+ {{ form_widget(formSender.lastname) }}
+ {{ form_errors(formSender.lastname) }}
+
+
+ {{ form_label(formSender.email) }}
+ {{ form_widget(formSender.email) }}
+ {{ form_errors(formSender.email) }}
+
+
+ {{ form_label(formSender.phone) }}
+ {{ form_widget(formSender.phone) }}
+ {{ form_errors(formSender.phone) }}
+
+
+
{{'zip'|trans}} / {{'city'|trans}} / {{'country'|trans}}
+
+
{{ form_widget(formSender.zip) }}
+
{{ form_widget(formSender.city) }}
+
{{ form_widget(formSender.country) }}
+
+
+
+
{{'street'|trans}} / {{'houseNumber'|trans}}
+
+
{{ form_widget(formSender.street) }}
+
{{ form_widget(formSender.houseNumber) }}
+
+
+
+ {{ form_widget(formSender.save, {attr: {class: 'inline-flex items-center justify-center gap-2 font-medium rounded-sm px-5 py-2.5 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2'}}) }}
+
+ {{ form_end(formSender) }}
+
+
+
+
+
+ {# Positions #}
+
+
+
{{'positions'|trans}}
+
+
+
+
+
+ {{'Pos'|trans}}
+ {{'name'|trans}}
+ {{'wkpos1'|trans}}
+ {{'wkpos2'|trans}}
+ {{'properties'|trans}}
+ {{'status'|trans}}
+ {{'netto'|trans}}
+ {{'vat'|trans}}
+ {{'brutto'|trans}}
+
+
+
+
+ {% for pos in positions %}
+ {% set posModel = orderModel.getPositionByUuid(pos.obj.uuid) %}
+
+ {{ pos.obj.pos }}
+
+ {{ pos.obj.product.title }}
+ ArtNr intern: {{ pos.obj.product.nrIntern }}
+ {{ 'weight'|trans }}: {{ pos.obj.weight }}
+
+ {{ pos.obj.basketfield1 }}
+ {{ pos.obj.basketfield2 }}
+
+
+
+
+ {{ orderStatuse.getPosStatusText(pos.obj.status) }}
+
+
+
+
+
+
+
+ {{ pos.obj.priceAllNetto|number_format(2, ',', '.') }}€
+ {{ pos.obj.priceAllSteuer|number_format(2, ',', '.') }}€
+ {{ pos.obj.priceAllBrutto|number_format(2, ',', '.') }}€
+
+ {% if pos.obj.layouterMode == 4 and pos.objDoc %}
+
+
+ Layouter öffnen
+
+ {% endif %}
+
+
+
+
+
+ {% if pos.objDoc.setConfig|length > 0 %}
+ Set bestehend aus:
+
+ {% for item in pos.objDoc.setConfig %}
+ {% if (item.article_id|product) %}
+ {{ (item.article_id|product).title }} ({% if item.count == 0 %}{{ pos.count }}{% else %}{{ pos.count * item.count }}{% endif %})
+ {% endif %}
+ {% endfor %}
+
+ {% endif %}
+
+
+
+
+ {% if pos.objCalc %}
+
+ {% for opt in pos.objCalc.getOptions %}
+ {% if opt is not instanceof('\\PSC\\Library\\Calc\\Option\\Type\\Hidden') and opt.isValid() %}
+ {{ opt.name }}: {{ opt.value }}
+ {% endif %}
+ {% endfor %}
+
+ {% endif %}
+ {% for customSection in customPositionDetailSections %}
+ {% if customSection.getController %}
+ {{ render(controller(
+ customSection.getController,
+ {'order': orderModel, 'position': posModel}
+ )) }}
+ {% endif %}
+ {% endfor %}
+
+
+
+
+ {{ form_start(pos.formProd) }}
+
{{ form_widget(pos.formProd.printPartnerEmail) }}
+ {{ form_rest(pos.formProd) }}
+
Printpartner benachrichtigen
+ {{ form_end(pos.formProd) }}
+
+
+ {{ form_start(pos.formProdinfo) }}
+
{{ form_widget(pos.formProdinfo.customerInfo) }}
+ {{ form_rest(pos.formProdinfo) }}
+
Dem Kunden zeigen
+ {{ form_end(pos.formProdinfo) }}
+
+ {% if posModel.reOrder %}
+ {% set reOrderModel = orderService.getOrderByUuid(posModel.reOrderOrder, true) %}
+
Ist eine Nachbestellung vom Auftrag: {{ reOrderModel.alias }} vom: {{ reOrderModel.created|date("d.m.Y") }}
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+ {% endfor %}
+
+
+
+
+
+ {# Delete Modal - Stufe 1 #}
+
+
+
+
{{ 'deleteOrder'|trans }}
+
+
+
+
+
+
{{ 'deleteOrderRecovery'|trans }}
+
+ {{ 'deleteOrderReally'|trans }}
+
+
+
+ {{ 'close'|trans }}
+
+
+
+
+ {# Delete Modal - Stufe 2 #}
+
+
+
+
{{ 'deleteOrderReally'|trans }}
+
+
+
+
+
+
+ {{ 'close'|trans }}
+
+
+
+
+
+{% endblock %}
diff --git a/src/new/src/PSC/Shop/OrderBundle/Transformer/Order/Position/Upload/Center.php b/src/new/src/PSC/Shop/OrderBundle/Transformer/Order/Position/Upload/Center.php
index bf6f84299..c532c2d97 100644
--- a/src/new/src/PSC/Shop/OrderBundle/Transformer/Order/Position/Upload/Center.php
+++ b/src/new/src/PSC/Shop/OrderBundle/Transformer/Order/Position/Upload/Center.php
@@ -5,15 +5,21 @@ namespace PSC\Shop\OrderBundle\Transformer\Order\Position\Upload;
use PSC\Shop\EntityBundle\Document\Position as PosDoc;
use PSC\Shop\EntityBundle\Entity\Orderpos;
use PSC\Shop\OrderBundle\Model\Order\Position;
+use PSC\Shop\OrderBundle\Model\Order\Position\Upload\Center as PSCCenter;
use PSC\Shop\OrderBundle\Transformer\Order\Position\IUploadModeTransformer;
class Center implements IUploadModeTransformer
{
public function fromDb(Position $position, Orderpos $posEntity, PosDoc $posDoc): void
{
+ $center = new PSCCenter();
+ foreach ($posEntity->getUploads() as $upload) {
+ var_dump($upload->getName());
+ var_dump($upload->getPath());
+ }
+ $center->addUpload(['fileName' => 'test', 'name' => 'test', 'type' => 'umschlag']);
+ $position->setUploadTypeObject($center);
}
- public function toDb(Position $position, Orderpos $posEntity, PosDoc $posDoc): void
- {
- }
+ public function toDb(Position $position, Orderpos $posEntity, PosDoc $posDoc): void {}
}
diff --git a/src/new/tests/PSC/Shop/Order/Upload/CreateCenterTest.php b/src/new/tests/PSC/Shop/Order/Upload/CreateCenterTest.php
index 17101a925..134979569 100644
--- a/src/new/tests/PSC/Shop/Order/Upload/CreateCenterTest.php
+++ b/src/new/tests/PSC/Shop/Order/Upload/CreateCenterTest.php
@@ -139,10 +139,11 @@ class CreateCenterTest extends WebTestCase
$data = json_decode($client->getResponse()->getContent(), true);
self::assertCount(2, $data['positions'][0]['uploads']);
- self::assertSame('umschlag.pdf', $data['positions'][0]['uploadTypeObject']['files'][0]['fileName']);
- self::assertSame('umschlag', $data['positions'][0]['uploadTypeObject']['files'][0]['typ']);
- self::assertSame('inhalt.pdf', $data['positions'][0]['uploadTypeObject']['files'][1]['fileName']);
- self::assertSame('inhalt', $data['positions'][0]['uploadTypeObject']['files'][1]['typ']);
+ var_dump($data['positions'][0]['uploadTypeObject']['uploads']);
+ self::assertSame('umschlag.pdf', $data['positions'][0]['uploadTypeObject']['uploads'][0]['fileName']);
+ self::assertSame('umschlag', $data['positions'][0]['uploadTypeObject']['uploads'][0]['typ']);
+ self::assertSame('inhalt.pdf', $data['positions'][0]['uploadTypeObject']['uploads'][1]['fileName']);
+ self::assertSame('inhalt', $data['positions'][0]['uploadTypeObject']['uploads'][1]['typ']);
/** @var JobRepository $jobs */
$jobs = static::getContainer()->get(JobRepository::class);
diff --git a/src/new/var/plugins/System/PSC/Invoice/Resources/views/backend/order/index.html.twig b/src/new/var/plugins/System/PSC/Invoice/Resources/views/backend/order/index.html.twig
index ded4f46f9..a78da410b 100755
--- a/src/new/var/plugins/System/PSC/Invoice/Resources/views/backend/order/index.html.twig
+++ b/src/new/var/plugins/System/PSC/Invoice/Resources/views/backend/order/index.html.twig
@@ -1,5 +1,5 @@
{% if uuid %}
-
Auftrag bearbeiten (BETA)
+
Auftrag bearbeiten (BETA)
{% else %}
diff --git a/src/new/var/tailwind/backend.built.css b/src/new/var/tailwind/backend.built.css
index 88c0f1f08..3c8da1b7d 100644
--- a/src/new/var/tailwind/backend.built.css
+++ b/src/new/var/tailwind/backend.built.css
@@ -922,6 +922,10 @@ html {
grid-column: span 2 / span 2;
}
+.col-span-3{
+ grid-column: span 3 / span 3;
+}
+
.col-span-4{
grid-column: span 4 / span 4;
}
@@ -959,6 +963,11 @@ html {
margin-right: -0.75rem;
}
+.mx-4{
+ margin-left: 1rem;
+ margin-right: 1rem;
+}
+
.mx-auto{
margin-left: auto;
margin-right: auto;
@@ -989,6 +998,10 @@ html {
margin-bottom: 1rem;
}
+.mb-5{
+ margin-bottom: 1.25rem;
+}
+
.mb-6{
margin-bottom: 1.5rem;
}
@@ -1008,6 +1021,10 @@ html {
margin-inline-end: auto;
}
+.ml-1{
+ margin-left: 0.25rem;
+}
+
.ml-2{
margin-left: 0.5rem;
}
@@ -1077,6 +1094,10 @@ html {
margin-top: 1.5rem;
}
+.mt-8{
+ margin-top: 2rem;
+}
+
.block{
display: block;
}
@@ -1161,6 +1182,10 @@ html {
height: 0.25rem;
}
+.h-1\.5{
+ height: 0.375rem;
+}
+
.h-10{
height: 2.5rem;
}
@@ -1205,6 +1230,10 @@ html {
height: 2rem;
}
+.h-80{
+ height: 20rem;
+}
+
.h-\[4rem\]{
height: 4rem;
}
@@ -1229,6 +1258,10 @@ html {
width: 0.25rem;
}
+.w-1\.5{
+ width: 0.375rem;
+}
+
.w-1\/2{
width: 50%;
}
@@ -1245,6 +1278,10 @@ html {
width: 4rem;
}
+.w-2\/5{
+ width: 40%;
+}
+
.w-24{
width: 6rem;
}
@@ -1342,6 +1379,10 @@ html {
max-width: 20em;
}
+.max-w-\[75\%\]{
+ max-width: 75%;
+}
+
.max-w-md{
max-width: 28rem;
}
@@ -1440,6 +1481,22 @@ html {
transform: none;
}
+@keyframes bounce{
+ 0%, 100%{
+ transform: translateY(-25%);
+ animation-timing-function: cubic-bezier(0.8,0,1,1);
+ }
+
+ 50%{
+ transform: none;
+ animation-timing-function: cubic-bezier(0,0,0.2,1);
+ }
+}
+
+.animate-bounce{
+ animation: bounce 1s infinite;
+}
+
.cursor-default{
cursor: default;
}
@@ -1456,6 +1513,14 @@ html {
resize: both;
}
+.list-inside{
+ list-style-position: inside;
+}
+
+.list-disc{
+ list-style-type: disc;
+}
+
.appearance-none{
-webkit-appearance: none;
-moz-appearance: none;
@@ -1582,6 +1647,18 @@ html {
margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
+.space-y-0 > :not([hidden]) ~ :not([hidden]){
+ --tw-space-y-reverse: 0;
+ margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
+ margin-bottom: calc(0px * var(--tw-space-y-reverse));
+}
+
+.space-y-0\.5 > :not([hidden]) ~ :not([hidden]){
+ --tw-space-y-reverse: 0;
+ margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
+ margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
+}
+
.space-y-1 > :not([hidden]) ~ :not([hidden]){
--tw-space-y-reverse: 0;
margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
@@ -1657,6 +1734,10 @@ html {
white-space: nowrap;
}
+.whitespace-pre-wrap{
+ white-space: pre-wrap;
+}
+
.break-all{
word-break: break-all;
}
@@ -1713,6 +1794,14 @@ html {
border-bottom-right-radius: 0.375rem;
}
+.rounded-tl-sm{
+ border-top-left-radius: 0.125rem;
+}
+
+.rounded-tr-sm{
+ border-top-right-radius: 0.125rem;
+}
+
.border{
border-width: 1px;
}
@@ -1833,6 +1922,11 @@ html {
background-color: rgb(239 246 255 / var(--tw-bg-opacity));
}
+.bg-blue-500{
+ --tw-bg-opacity: 1;
+ background-color: rgb(59 130 246 / var(--tw-bg-opacity));
+}
+
.bg-blue-600{
--tw-bg-opacity: 1;
background-color: rgb(37 99 235 / var(--tw-bg-opacity));
@@ -1853,6 +1947,11 @@ html {
background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}
+.bg-gray-400{
+ --tw-bg-opacity: 1;
+ background-color: rgb(156 163 175 / var(--tw-bg-opacity));
+}
+
.bg-gray-50{
--tw-bg-opacity: 1;
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
@@ -2094,6 +2193,10 @@ html {
padding-bottom: 0.25rem;
}
+.pb-2{
+ padding-bottom: 0.5rem;
+}
+
.pl-8{
padding-left: 2rem;
}
@@ -2143,6 +2246,11 @@ html {
line-height: 2rem;
}
+.text-base{
+ font-size: 1rem;
+ line-height: 1.5rem;
+}
+
.text-lg{
font-size: 1.125rem;
line-height: 1.75rem;
@@ -2171,6 +2279,10 @@ html {
font-weight: 500;
}
+.font-normal{
+ font-weight: 400;
+}
+
.font-semibold{
font-weight: 600;
}
@@ -2296,6 +2408,11 @@ html {
color: rgb(220 38 38 / var(--tw-text-opacity));
}
+.text-red-700{
+ --tw-text-opacity: 1;
+ color: rgb(185 28 28 / var(--tw-text-opacity));
+}
+
.text-red-800{
--tw-text-opacity: 1;
color: rgb(153 27 27 / var(--tw-text-opacity));
@@ -2791,6 +2908,11 @@ html {
border-color: rgb(234 100 27 / var(--tw-border-opacity));
}
+.hover\:bg-blue-600:hover{
+ --tw-bg-opacity: 1;
+ background-color: rgb(37 99 235 / var(--tw-bg-opacity));
+}
+
.hover\:bg-blue-700:hover{
--tw-bg-opacity: 1;
background-color: rgb(29 78 216 / var(--tw-bg-opacity));
@@ -2869,6 +2991,11 @@ html {
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
+.hover\:bg-yellow-600:hover{
+ --tw-bg-opacity: 1;
+ background-color: rgb(202 138 4 / var(--tw-bg-opacity));
+}
+
.hover\:text-blue-600:hover{
--tw-text-opacity: 1;
color: rgb(37 99 235 / var(--tw-text-opacity));
@@ -2992,6 +3119,10 @@ html {
border-color: rgb(239 68 68 / var(--tw-border-opacity));
}
+.focus\:border-transparent:focus{
+ border-color: transparent;
+}
+
.focus\:bg-psc-500:focus{
--tw-bg-opacity: 1;
background-color: rgb(234 100 27 / var(--tw-bg-opacity));
@@ -3092,6 +3223,10 @@ html {
background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}
+.disabled\:opacity-50:disabled{
+ opacity: 0.5;
+}
+
.disabled\:opacity-70:disabled{
opacity: 0.7;
}
@@ -3300,6 +3435,11 @@ html {
color: rgb(243 244 246 / var(--tw-text-opacity));
}
+:is(.dark .dark\:text-gray-200){
+ --tw-text-opacity: 1;
+ color: rgb(229 231 235 / var(--tw-text-opacity));
+}
+
:is(.dark .dark\:text-gray-300){
--tw-text-opacity: 1;
color: rgb(209 213 219 / var(--tw-text-opacity));
@@ -3669,6 +3809,10 @@ html {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
+ .lg\:grid-cols-3{
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ }
+
.lg\:gap-8{
gap: 2rem;
}