This commit is contained in:
Thomas Peterson 2024-08-12 11:36:57 +02:00
parent 3d3f7ea1fd
commit 155b00ce13
35 changed files with 337 additions and 258983 deletions

View File

@ -22,11 +22,8 @@ services:
- "SYS_PTRACE"
security_opt:
- "seccomp=unconfined"
x-develop:
watch:
- action: sync
path: "${APP_CODE_PATH_HOST?}"
target: "${APP_CODE_PATH_CONTAINER?}"
volumes:
- ${APP_CODE_PATH_HOST?}:${APP_CODE_PATH_CONTAINER?}
networks:
- network
extra_hosts:
@ -34,11 +31,8 @@ services:
php-cron:
environment:
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG?}
x-develop:
watch:
- action: sync
path: "${APP_CODE_PATH_HOST?}"
target: "${APP_CODE_PATH_CONTAINER?}"
volumes:
- ${APP_CODE_PATH_HOST?}:${APP_CODE_PATH_CONTAINER?}
networks:
- network
cap_add:
@ -49,11 +43,8 @@ services:
- host.docker.internal:host-gateway
web:
x-develop:
watch:
- action: sync
path: "${APP_CODE_PATH_HOST?}"
target: "${APP_CODE_PATH_CONTAINER?}"
volumes:
- ${APP_CODE_PATH_HOST?}:${APP_CODE_PATH_CONTAINER?}
ports:
- "${NGINX_HOST_HTTP_PORT:-80}:80"
- "${NGINX_HOST_HTTPS_PORT:-443}:443"
@ -85,11 +76,8 @@ services:
- "SYS_PTRACE"
security_opt:
- "seccomp=unconfined"
x-develop:
watch:
- action: sync
path: "${APP_CODE_PATH_HOST?}"
target: "${APP_CODE_PATH_CONTAINER?}"
volumes:
- ${APP_CODE_PATH_HOST?}:${APP_CODE_PATH_CONTAINER?}
ports:
- "${APPLICATION_SSH_HOST_PORT:-2222}:22"
tty: true

File diff suppressed because one or more lines are too long

6
package-lock.json generated Normal file
View File

@ -0,0 +1,6 @@
{
"name": "pscdevmake",
"lockfileVersion": 2,
"requires": true,
"packages": {}
}

View File

@ -1,6 +1,6 @@
import Bs5Utils from "bs5-utils";
import { startStimulusApp } from '@symfony/stimulus-bridge';
const app = startStimulusApp();
global.$ = global.jQuery = window.jQuery = require('jquery');
require('@popperjs/core/dist/cjs/popper');
global.bootstrap = require('bootstrap/dist/js/bootstrap');

View File

@ -53,8 +53,8 @@ class Base
'json' => $data,
]);
$this->logService->createLogEntry($this->shopEntity, new Contact(), LogEntry::INFO, Saxoprint::class, "saxoprint", "SaxoPrint PrintShop Response", ['content' => $response->getContent(), 'status' => $response->getStatusCode()]);
$content = $response->toArray();
$this->logService->createLogEntry($this->shopEntity, new Contact(), LogEntry::INFO, Saxoprint::class, "saxoprint", "SaxoPrint PrintShop Response", ['content' => $response->getContent(), 'status' => $response->getStatusCode()]);
return $content;
}

View File

@ -15,7 +15,6 @@ class GetConfig extends Base
return [];
}
$resultLangPropertyValues = $this->getCache()->get(
'saxoprint_result_lang_property_values', function (ItemInterface $item) {
// $item->expiresAfter(3600);

View File

@ -161,6 +161,7 @@ class Export implements QueueInterface, ConfigurableElementInterface
$this->_postPrintJob->setOrder($order);
$result = $this->_postPrintJob->call();
var_dump($result);
if($result && isset($result['Ordernumber'])) {
$position->setExternalOrderNumber($result['Ordernumber']);
$position->setStatus($settings->getStatusSuccess());

View File

@ -24,7 +24,7 @@ const EditPositionComponent = ({position, shop, changePos}) => {
<Button type={2} variant="gray" onClick={handleShow}/>
</div>
<Modal>
<Modal size="7xl" show={show} onClose={() => handleClose()}>
<Modal.Header className="text-mauve12 m-0 text-[17px] font-medium">
edit position
</Modal.Header>

View File

@ -136,7 +136,7 @@
resolved "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz"
integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==
"@emotion/unitless@^0.8.1", "@emotion/unitless@0.8.1":
"@emotion/unitless@0.8.1", "@emotion/unitless@^0.8.1":
version "0.8.1"
resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz"
integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==
@ -156,7 +156,7 @@
resolved "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz"
integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==
"@floating-ui/core@^1.3.1", "@floating-ui/core@1.6.0":
"@floating-ui/core@1.6.0", "@floating-ui/core@^1.3.1":
version "1.6.0"
resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz"
integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==
@ -243,7 +243,7 @@
"@nodelib/fs.stat" "2.0.5"
run-parallel "^1.1.9"
"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
version "2.0.5"
resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
@ -287,7 +287,7 @@
nanoid "^3.3.7"
prop-types "^15.8.1"
"@rjsf/utils@^5.18.3", "@rjsf/utils@^5.18.x":
"@rjsf/utils@^5.18.3":
version "5.18.3"
resolved "https://registry.npmjs.org/@rjsf/utils/-/utils-5.18.3.tgz"
integrity sha512-0TzjAKAlqXSCneVnHhcL3gAr4DlIPgwzkFdNEI4A+LFjLFlECPah2o3RhEgvqJnUXFviDGF1dqhkxa/Pr59ajw==
@ -344,7 +344,7 @@
dependencies:
"@types/react" "*"
"@types/react@*", "@types/react@^18.3.1", "@types/react@>=16.8":
"@types/react@*", "@types/react@^18.3.1":
version "18.3.1"
resolved "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz"
integrity sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==
@ -487,7 +487,7 @@ braces@^3.0.2, braces@~3.0.2:
dependencies:
fill-range "^7.0.1"
browserslist@^4.23.0, "browserslist@>= 4.21.0":
browserslist@^4.23.0:
version "4.23.0"
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz"
integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==
@ -560,16 +560,16 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
@ -645,7 +645,7 @@ cssesc@^3.0.0:
resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
csstype@^3.0.2, csstype@3.1.3:
csstype@3.1.3, csstype@^3.0.2:
version "3.1.3"
resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
@ -783,7 +783,7 @@ flowbite-react@^0.9.0:
react-icons "5.0.1"
tailwind-merge "2.2.2"
flowbite@^2.3.0, flowbite@2.3.0:
flowbite@2.3.0, flowbite@^2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/flowbite/-/flowbite-2.3.0.tgz"
integrity sha512-pm3JRo8OIJHGfFYWgaGpPv8E+UdWy0Z3gEAGufw+G/1dusaU/P1zoBLiQpf2/+bYAi+GBQtPVG86KYlV0W+AFQ==
@ -828,7 +828,7 @@ function-bind@^1.1.1:
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
glob-parent@^5.1.2:
glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
@ -842,13 +842,6 @@ glob-parent@^6.0.2:
dependencies:
is-glob "^4.0.3"
glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
glob@^10.3.10:
version "10.3.15"
resolved "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz"
@ -886,7 +879,7 @@ html-parse-stringify@^3.0.1:
dependencies:
void-elements "3.1.0"
i18next@^23.11.3, "i18next@>= 23.2.3":
i18next@^23.11.3:
version "23.11.3"
resolved "https://registry.npmjs.org/i18next/-/i18next-23.11.3.tgz"
integrity sha512-Pq/aSKowir7JM0rj+Wa23Kb6KKDUGno/HjG+wRQu0PxoTbpQ4N89MAT0rFGvXmLkRLNMb1BbBOKGozl01dabzg==
@ -1234,7 +1227,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.38, postcss@>=8.0.9, postcss@8.4.38:
postcss@8.4.38, postcss@^8.4.23, postcss@^8.4.38:
version "8.4.38"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz"
integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
@ -1267,7 +1260,7 @@ queue-microtask@^1.2.2:
resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
"react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", react-dom@^18.3.1, "react-dom@>= 16.8.0", react-dom@>=16.6.0, react-dom@>=16.8, react-dom@>=16.8.0, react-dom@>=18, react-dom@>16.8.0:
react-dom@^18.3.1:
version "18.3.1"
resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz"
integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
@ -1288,12 +1281,7 @@ react-icons@5.0.1:
resolved "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz"
integrity sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==
react-is@^16.13.1:
version "16.13.1"
resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react-is@^16.7.0:
react-is@^16.13.1, react-is@^16.7.0:
version "16.13.1"
resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@ -1330,7 +1318,7 @@ react-select-async-paginate@^0.7.4:
use-is-mounted-ref "^1.5.0"
use-latest "^1.2.1"
react-select@^5.0.0, react-select@^5.8.0:
react-select@^5.8.0:
version "5.8.0"
resolved "https://registry.npmjs.org/react-select/-/react-select-5.8.0.tgz"
integrity sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA==
@ -1355,7 +1343,7 @@ react-transition-group@^4.3.0:
loose-envify "^1.4.0"
prop-types "^15.6.2"
react@*, "react@^16.14.0 || ^17.0.0 || ^18.0.0", "react@^16.14.0 || >=17", "react@^16.8.0 || ^17.0.0 || ^18.0.0", react@^18.3.1, "react@>= 0.14.0", "react@>= 16.8.0", react@>=16.0.0, react@>=16.6.0, react@>=16.8, react@>=16.8.0, react@>=18, react@>16.8.0:
react@^18.3.1:
version "18.3.1"
resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz"
integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
@ -1463,16 +1451,7 @@ source-map@^0.5.7:
resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
"string-width-cjs@npm:string-width@^4.2.0":
version "4.2.3"
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
string-width@^4.1.0:
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0:
version "4.2.3"
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@ -1490,14 +1469,7 @@ string-width@^5.0.1, string-width@^5.1.2:
emoji-regex "^9.2.2"
strip-ansi "^7.0.1"
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@ -1573,7 +1545,7 @@ tailwind-merge@2.2.2:
dependencies:
"@babel/runtime" "^7.24.0"
tailwindcss@^3, tailwindcss@^3.4.3:
tailwindcss@^3.4.3:
version "3.4.3"
resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz"
integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==
@ -1632,16 +1604,16 @@ ts-interface-checker@^0.1.9:
resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
tslib@2.6.2, tslib@^2.1.0:
version "2.6.2"
resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
tslib@^1.9.3:
version "1.14.1"
resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.1.0, tslib@2.6.2:
version "2.6.2"
resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
tsyringe@^4.8.0:
version "4.8.0"
resolved "https://registry.npmjs.org/tsyringe/-/tsyringe-4.8.0.tgz"

View File

@ -1,4 +1,5 @@
<?php
namespace Plugin\System\PSC\XmlCalc\Transformer;
use Doctrine\ODM\MongoDB\DocumentManager;
@ -13,8 +14,6 @@ use PSC\System\SettingsBundle\Service\Shop;
class Position implements IPositionTransformer
{
public function __construct(private Shop $shopService, private PaperDB $paperService, private DocumentManager $documentManager, private ProductRepository $productRepository)
{
}
@ -34,10 +33,10 @@ class Position implements IPositionTransformer
if($selectedShop->getInstall()->getCalcTemplates()) {
$engine->setTemplates('<root>'.$selectedShop->getInstall()->getCalcTemplates().'</root>');
}
if(isset($posDoc->getSpecialProductTypeObject()['xml'])) {
if(isset($posDoc->getSpecialProductTypeObject()['xml']) && $posDoc->getSpecialProductTypeObject()['xml'] != "") {
$engine->loadString($posDoc->getSpecialProductTypeObject()['xml']);
$obj->setXml($posDoc->getSpecialProductTypeObject()['xml']);
}else{
} else {
$engine->loadString($posEntity->getCalcXml());
$obj->setXml($posEntity->getCalcXml());
}
@ -47,13 +46,13 @@ class Position implements IPositionTransformer
$engine->setSavedCalcReferences($posDoc->getCalcReferences());
}
if(isset($posDoc->getSpecialProductTypeObject()['params'])) {
if(isset($posDoc->getSpecialProductTypeObject()['params']) && count($posDoc->getSpecialProductTypeObject()['params']) > 0) {
$engine->setVariables($posDoc->getSpecialProductTypeObject()['params']);
if(isset($posDoc->getSpecialProductTypeObject()['kalk_artikel'])) {
$engine->setActiveArticle($posDoc->getSpecialProductTypeObject()['kalk_artikel']);
}
$obj->setParams($posDoc->getSpecialProductTypeObject()['params']);
}else{
} else {
$objPosition = unserialize($posEntity->getData());
$engine->setVariables($objPosition->getOptions());
if(isset($objPosition->getOptions()['kalk_artikel'])) {
@ -66,7 +65,7 @@ class Position implements IPositionTransformer
$obj->setEngine($engine);
if($articleCalc) {
$obj->setOptions($articleCalc->getOptions());
}else{
} else {
$obj->setOptions(new \ArrayIterator(['error' => true]));
}
if($articleCalc->getOptionById('auflage')) {
@ -75,7 +74,7 @@ class Position implements IPositionTransformer
if($position->getWeight() == 0) {
$position->setWeight($engine->getWeight());
}
}else{
} else {
$obj->setOptions(new \ArrayIterator());
}
$position->getProduct()->setSpecialProductTypeObject($obj);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,71 @@
/*
* @license
*
* Multiselect v2.5.6
* http://crlcu.github.io/multiselect/
*
* Copyright (c) 2016-2020 Adrian Crisan
* Licensed under the MIT license (https://github.com/crlcu/multiselect/blob/master/LICENSE)
*/
/* @license
morris.js v0.5.0
Copyright 2014 Olly Smith All rights reserved.
Licensed under the BSD-2-Clause License.
*/
/*!
* Bootstrap v5.1.0 (https://getbootstrap.com/)
* Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
/*!
*
* Super simple wysiwyg editor v0.8.18
* https://summernote.org
*
*
* Copyright 2013- Alan Hong. and other contributors
* summernote may be freely distributed under the MIT license.
*
* Date: 2020-05-20T16:47Z
*
*/
/*!
* Sizzle CSS Selector Engine v2.3.6
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Released under the MIT license
* https://js.foundation/
*
* Date: 2021-02-16
*/
/*!
* jQuery JavaScript Library v3.6.0
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2021-03-02T17:08Z
*/
/*! ========================================================================
* Bootstrap Toggle: bootstrap-toggle.js v2.2.0
* http://www.bootstraptoggle.com
* ========================================================================
* Copyright 2014 Min Hur, The New York Times Company
* Licensed under MIT
* ======================================================================== */
/*! @orchidjs/unicode-variants | https://github.com/orchidjs/unicode-variants | Apache License (v2) */
/*! sifter.js | https://github.com/orchidjs/sifter.js | Apache License (v2) */

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,134 @@
/*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/*!
* tabbable 6.2.0
* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
*/
/*! *****************************************************************************
Copyright (C) Microsoft. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @remix-run/router v1.16.0
*
* Copyright (c) Remix Software Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/
/**
* React Router DOM v6.23.0
*
* Copyright (c) Remix Software Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/
/**
* React Router v6.23.0
*
* Copyright (c) Remix Software Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */

View File

@ -0,0 +1 @@
[data-loading=""],[data-loading="delay|show"],[data-loading=show]{display:none}.toggle-btn{cursor:pointer;margin:0}.toggle-btn__icon--show{display:inline-block}.toggle-btn--active .toggle-btn__icon--show,.toggle-btn__icon--hide{display:none}.toggle-btn--active .toggle-btn__icon--hide{display:inline-block}.toggle-item{height:0;overflow:hidden}.toggle-item--active{height:auto}body,html{background:#f0f3f4;height:100%}body>div,html>div{padding:0!important}body>#overlay_loading,html>#overlay_loading{background:#fff;color:#666;float:left;height:100%;left:0;opacity:.8;padding-top:25%;position:fixed;text-align:center;top:0;width:100%;z-index:5000}body>#overlay_loading>.spinner,html>#overlay_loading>.spinner{animation:rotate .8s linear infinite;border:5px solid #b22222;border-radius:50%;border-right-color:transparent;height:64px;margin:0 auto;width:64px}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}i.fa.fa-lg.fa-fw.fa-question-circle{color:#007bff;font-size:1.6em}.toast-container{z-index:999999}.toast-container .toast-body{background:#fff}body>header>.header{background:#ea641b;box-shadow:0 2px 2px rgba(0,0,0,.05),0 1px 0 rgba(0,0,0,.05);color:#fff;left:0;margin:0;padding:10px;position:fixed;right:0;top:0;z-index:990}body>header>.header #help a{color:#fff;font-size:1.5em}body>header>.header>h4{margin:0}body>header>.header .form-group{margin-bottom:0}body>header>.header .btnLogout{background:#343a40!important;border:1px solid #fff}body>header>.header .btnTicket,body>header>.header .btnWiki{background:#343a40!important;border-bottom:1px solid #fff;border-left:1px solid #fff;border-top:1px solid #fff}.sideMenu{bottom:0;color:#aeb1bc;left:0;overflow-x:hidden;overflow-y:auto;padding:60px 0 0;position:fixed;top:0;z-index:100}.sideMenu h5{color:#fff}.sideMenu .collapse-menu{float:right;margin-right:10px;margin-top:5px}.sideMenu .nav{flex-wrap:nowrap!important}.sideMenu .nav>li{cursor:pointer}.sideMenu .nav>li>a{display:block;padding:5px}.sideMenu .nav>li>a:hover{background:#555;color:#fff;text-decoration:none}.sideMenu .nav>li>a:hover i{color:#fff}.sideMenu .nav>li>ul{display:none;margin-left:10px}.sideMenu .nav>li.open>ul{display:block}.sideMenu .nav li.active a,.sideMenu .nav li.active a i{color:#fff}.sideMenu a{color:#b4b6bd}.sideMenu a i{color:#898ba3}.content{margin-top:50px;padding:0 10px}.content h3,.content h4{margin:0}.content .header{background:#f6f8f8;border-bottom:1px solid #dee5e7;color:#373a3c;padding:10px}.content .body{padding:10px}.content .body .btn-default{background-color:#fff;border-color:#ccc;color:#333}.content .body .searchForm{margin-bottom:10px}.content .body .panel{background:#fff;border:1px solid #dee5e7;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,.05);margin-top:10px}.content .body .panel>.header{background:#f6f8f8;border-bottom:1px solid #edf1f2;color:#333;padding:10px}.content .body .panel>.body{padding:10px}.content .body .panel>.body .tab-content{margin-top:10px}.content .body .panel>.body .nav-tabs .nav-item.open .nav-link,.content .body .panel>.body .nav-tabs .nav-item.open .nav-link:focus,.content .body .panel>.body .nav-tabs .nav-item.open .nav-link:hover,.content .body .panel>.body .nav-tabs .nav-link.active,.content .body .panel>.body .nav-tabs .nav-link.active:focus,.content .body .panel>.body .nav-tabs .nav-link.active:hover{background-color:#0275d8;border:1px solid;border-radius:4px;color:#fff}.content .body .panel>.body .overlay{background:rgba(234,100,27,.75);color:#444;font-size:xx-large;height:100%;margin:-5px;padding-top:150px;position:absolute;text-align:center;vertical-align:middle;width:100%;z-index:1}.content .body .panel>.body .table>tbody>tr.divider>td{background:#ea641b;height:2px;padding:0}.content .body .panel>.body .table .thead-dark th{background-color:#343a40}.content .body .panel>.body .table .thead-dark a{color:#fff;text-decoration:underline}.ajax-modal__body{height:80vh;padding:0}.no-margin-top{margin-top:0}.modal-lg{max-width:none;width:90vw}.bg-lightdanger{background-color:#ffcece}.bg-lightsuccess{background-color:#dbffdb}.bg-lightdark{background-color:#d3d3d3}.form-check{margin-bottom:12px}.thead-dark{color:#fff}.btn-group-xs>.btn,.btn-xs{border-radius:3px;font-size:12px;line-height:1.5;padding:1px 5px}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2,25 +2,25 @@
"entrypoints": {
"backend/dashboard": {
"js": [
"/apps/build/runtime.js",
"/apps/build/vendors-node_modules_core-js_modules_es_array_concat_js-node_modules_core-js_modules_es_array-fb37e9.js",
"/apps/build/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-6b5b46.js",
"/apps/build/backend/dashboard.js"
"/apps/build/runtime.9f422cb9.js",
"/apps/build/560.268023de.js",
"/apps/build/858.8dae100c.js",
"/apps/build/backend/dashboard.4a2f3ee4.js"
],
"css": [
"/apps/build/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-6b5b46.css",
"/apps/build/backend/dashboard.css"
"/apps/build/858.29b73cf7.css",
"/apps/build/backend/dashboard.1bdabc5b.css"
]
},
"plugins/system/psc/invoice": {
"js": [
"/apps/build/runtime.js",
"/apps/build/vendors-node_modules_core-js_modules_es_array_concat_js-node_modules_core-js_modules_es_array-fb37e9.js",
"/apps/build/vendors-var_plugins_System_PSC_Invoice_Webpack_node_modules_ebay_nice-modal-react_lib_esm_ind-73e7df.js",
"/apps/build/plugins/system/psc/invoice.js"
"/apps/build/runtime.9f422cb9.js",
"/apps/build/560.268023de.js",
"/apps/build/881.53c3c8c3.js",
"/apps/build/plugins/system/psc/invoice.18eac1b9.js"
],
"css": [
"/apps/build/plugins/system/psc/invoice.css"
"/apps/build/plugins/system/psc/invoice.19592370.css"
]
}
}

View File

@ -1,13 +1,13 @@
{
"/apps/backend/dashboard.css": "/apps/build/backend/dashboard.css",
"/apps/backend/dashboard.js": "/apps/build/backend/dashboard.js",
"/apps/plugins/system/psc/invoice.css": "/apps/build/plugins/system/psc/invoice.css",
"/apps/plugins/system/psc/invoice.js": "/apps/build/plugins/system/psc/invoice.js",
"/apps/runtime.js": "/apps/build/runtime.js",
"/apps/vendors-node_modules_core-js_modules_es_array_concat_js-node_modules_core-js_modules_es_array-fb37e9.js": "/apps/build/vendors-node_modules_core-js_modules_es_array_concat_js-node_modules_core-js_modules_es_array-fb37e9.js",
"/apps/vendors-var_plugins_System_PSC_Invoice_Webpack_node_modules_ebay_nice-modal-react_lib_esm_ind-73e7df.js": "/apps/build/vendors-var_plugins_System_PSC_Invoice_Webpack_node_modules_ebay_nice-modal-react_lib_esm_ind-73e7df.js",
"/apps/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-6b5b46.css": "/apps/build/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-6b5b46.css",
"/apps/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-6b5b46.js": "/apps/build/vendors-node_modules_popperjs_core_dist_cjs_popper_js-node_modules_symfony_stimulus-bridge_di-6b5b46.js",
"/apps/backend/dashboard.css": "/apps/build/backend/dashboard.1bdabc5b.css",
"/apps/backend/dashboard.js": "/apps/build/backend/dashboard.4a2f3ee4.js",
"/apps/plugins/system/psc/invoice.css": "/apps/build/plugins/system/psc/invoice.19592370.css",
"/apps/plugins/system/psc/invoice.js": "/apps/build/plugins/system/psc/invoice.18eac1b9.js",
"/apps/runtime.js": "/apps/build/runtime.9f422cb9.js",
"/apps/560.268023de.js": "/apps/build/560.268023de.js",
"/apps/881.53c3c8c3.js": "/apps/build/881.53c3c8c3.js",
"/apps/858.29b73cf7.css": "/apps/build/858.29b73cf7.css",
"/apps/858.8dae100c.js": "/apps/build/858.8dae100c.js",
"/apps/fonts/summernote.eot": "/apps/build/fonts/summernote.bd0d8be1.eot",
"/apps/fonts/summernote.ttf": "/apps/build/fonts/summernote.b293d601.ttf",
"/apps/fonts/summernote.woff": "/apps/build/fonts/summernote.08c343ff.woff",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
(()=>{"use strict";var e,r,t,o={},n={};function i(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={id:e,loaded:!1,exports:{}};return o[e].call(t.exports,t,t.exports,i),t.loaded=!0,t.exports}i.m=o,i.amdD=function(){throw new Error("define cannot be used indirect")},e=[],i.O=(r,t,o,n)=>{if(!t){var f=1/0;for(c=0;c<e.length;c++){for(var[t,o,n]=e[c],a=!0,l=0;l<t.length;l++)(!1&n||f>=n)&&Object.keys(i.O).every((e=>i.O[e](t[l])))?t.splice(l--,1):(a=!1,n<f&&(f=n));if(a){e.splice(c--,1);var u=o();void 0!==u&&(r=u)}}return r}n=n||0;for(var c=e.length;c>0&&e[c-1][2]>n;c--)e[c]=e[c-1];e[c]=[t,o,n]},i.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return i.d(r,{a:r}),r},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,o){if(1&o&&(e=this(e)),8&o)return e;if("object"==typeof e&&e){if(4&o&&e.__esModule)return e;if(16&o&&"function"==typeof e.then)return e}var n=Object.create(null);i.r(n);var f={};r=r||[null,t({}),t([]),t(t)];for(var a=2&o&&e;"object"==typeof a&&!~r.indexOf(a);a=t(a))Object.getOwnPropertyNames(a).forEach((r=>f[r]=()=>e[r]));return f.default=()=>e,i.d(n,f),n},i.d=(e,r)=>{for(var t in r)i.o(r,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e={666:0};i.O.j=r=>0===e[r];var r=(r,t)=>{var o,n,[f,a,l]=t,u=0;if(f.some((r=>0!==e[r]))){for(o in a)i.o(a,o)&&(i.m[o]=a[o]);if(l)var c=l(i)}for(r&&r(t);u<f.length;u++)n=f[u],i.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return i.O(c)},t=self.webpackChunk=self.webpackChunk||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),i.nc=void 0})();

File diff suppressed because one or more lines are too long

View File

@ -917,10 +917,10 @@
resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz"
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
"@esbuild/darwin-x64@0.19.12":
"@esbuild/linux-x64@0.19.12":
version "0.19.12"
resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz"
integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==
resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz"
integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==
"@hotwired/stimulus-webpack-helpers@^1.0.1":
version "1.0.1"
@ -1056,10 +1056,15 @@
resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.9.3.tgz"
integrity sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ==
"@rollup/rollup-darwin-x64@4.10.0":
"@rollup/rollup-linux-x64-gnu@4.10.0":
version "4.10.0"
resolved "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz"
integrity sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==
resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz"
integrity sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==
"@rollup/rollup-linux-x64-musl@4.10.0":
version "4.10.0"
resolved "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz"
integrity sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==
"@sinclair/typebox@^0.27.8":
version "0.27.8"
@ -2763,11 +2768,6 @@ fs.realpath@^1.0.0:
resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
fsevents@~2.3.2, fsevents@~2.3.3:
version "2.3.3"
resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"

View File

@ -1,2 +1,20 @@
<?php echo $this->articleTemplate; ?>
<?php
$relatedbuys = $this->article->getRelated();
if (!empty($relatedbuys)):
?>
<div class="md:w-2/4 m-auto">
<h3 class="text-highlight text-2xl mt-5"><?php echo $this->translate('Wir empfehlen auch', 'text', 'releated_article_h1') ?></h3>
<div class="mt-5 md:columns-3">
<?php foreach ($relatedbuys as $article): ?>
<div class="break-inside-avoid-column mb-5">
<a href="<?= $this->url(array('article' => $article->url), 'article') ?>" class="">
<?= $this->image()->thumbnailImage($article->title, 'productgrouplist', $article->file); ?>
<h4 class="text-lg font-lenzFont"><?php echo $article->title ?></h4>
</a>
</div>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>