Fixes
This commit is contained in:
parent
8dab8623ea
commit
f67cbd5f3e
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace PSC\Shop\ContactBundle\Api;
|
namespace PSC\Shop\ContactBundle\Api;
|
||||||
|
|
||||||
use Nelmio\ApiDocBundle\Annotation\Model;
|
use Nelmio\ApiDocBundle\Annotation\Model;
|
||||||
use Nelmio\ApiDocBundle\Annotation\Security;
|
use Nelmio\ApiDocBundle\Annotation\Security;
|
||||||
@ -23,7 +23,7 @@ class Refresh extends AbstractController
|
|||||||
{
|
{
|
||||||
$output = new Output();
|
$output = new Output();
|
||||||
$output->token = $jwtManager->create($this->getUser());
|
$output->token = $jwtManager->create($this->getUser());
|
||||||
|
$output->email = $this->getUser()->getEmail();
|
||||||
return $this->json($output);
|
return $this->json($output);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ use OpenApi\Attributes\JsonContent;
|
|||||||
use OpenApi\Attributes\RequestBody;
|
use OpenApi\Attributes\RequestBody;
|
||||||
use OpenApi\Attributes\Response;
|
use OpenApi\Attributes\Response;
|
||||||
use OpenApi\Attributes\Tag;
|
use OpenApi\Attributes\Tag;
|
||||||
|
use PSC\Shop\EntityBundle\Entity\Contact as PSCContact;
|
||||||
use PSC\Shop\MediaBundle\Service\MediaManager;
|
use PSC\Shop\MediaBundle\Service\MediaManager;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Dto\Save\Input;
|
use Plugin\Custom\PSC\CollectLayouter\Dto\Save\Input;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Model\ElementBinding;
|
use Plugin\Custom\PSC\CollectLayouter\Model\ElementBinding;
|
||||||
@ -40,6 +41,158 @@ class Save extends AbstractController
|
|||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[Route(path: '/savecollect/{uuid}/{contactuuid}', methods: ['PUT'])]
|
||||||
|
#[ParamConverter('data', class: Input::class, converter: 'psc_rest.request_body')]
|
||||||
|
#[Tag('Plugin/Custom/PSC/CollectLayouter')]
|
||||||
|
#[RequestBody(description: 'content', content: new JsonContent(ref: Input::class))]
|
||||||
|
#[Response(response: 200, description: 'save config in session', content: new JsonContent(type: 'bool'))]
|
||||||
|
public function saveCollect(Input $data, string $uuid, string $contactuuid): JsonResponse
|
||||||
|
{
|
||||||
|
|
||||||
|
$basketField1 = "";
|
||||||
|
$basketField2 = "";
|
||||||
|
$product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $uuid]);
|
||||||
|
|
||||||
|
$productDoc = $this->documentManager->getRepository(\PSC\Shop\EntityBundle\Document\Product::class)->findOneBy(['uid' => $product->getUID()]);
|
||||||
|
$setting = $this->serializer->deserialize($productDoc->getPluginSettingModule('collectlayouter', 'config') ?? '{}', Setting::class, 'json');
|
||||||
|
$contactEntity = $this->entityManager->getRepository(PSCContact::class)->findOneBy(['uuid' => $contactuuid]);
|
||||||
|
$contact = new \PSC\Shop\ContactBundle\Model\Contact();
|
||||||
|
$this->contactTransformer->fromDb($contact, $contactEntity);
|
||||||
|
$this->saveFilesHelper->setSetting($setting);
|
||||||
|
$this->saveFilesHelper->setContact($contact);
|
||||||
|
$this->saveFilesHelper->setData($data);
|
||||||
|
|
||||||
|
$this->saveFilesHelper->storeFiles();
|
||||||
|
|
||||||
|
if ($contact->getUuid() != "") {
|
||||||
|
$this->saveContactHelper->setSetting($setting);
|
||||||
|
$this->saveContactHelper->setContact($contact);
|
||||||
|
$this->saveContactHelper->setData($data);
|
||||||
|
$this->saveContactHelper->saveData();
|
||||||
|
}
|
||||||
|
|
||||||
|
$formData = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Element $element
|
||||||
|
*/
|
||||||
|
foreach ($setting->getCustomerForm() as $element) {
|
||||||
|
$value = match($element->getBinding()) {
|
||||||
|
ElementBinding::none => $element->getDefaultForTypePreview(),
|
||||||
|
ElementBinding::StreetHouseNumber => ['street' => $contact->getLayouterData()->getStreet() ?? $element->getDefault1(), 'houseNumber' => $contact->getLayouterData()->getHouseNumber() ?? $element->getDefault2()],
|
||||||
|
ElementBinding::ZipCity => ['zip' => $contact->getLayouterData()->getZip() ?? $element->getDefault1(), 'city' => $contact->getLayouterData()->getCity() ?? $element->getDefault2()],
|
||||||
|
ElementBinding::Firstname => $contact->getLayouterData()->getFirstname() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Lastname => $contact->getLayouterData()->getLastname() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Mobile => [
|
||||||
|
'areacode' => $contact->getLayouterData()->getMobileAreaCode() ?? $element->getDefault1(),
|
||||||
|
'prefix' => $contact->getLayouterData()->getMobilePrefix() ?? $element->getDefault2(),
|
||||||
|
'number' => $contact->getLayouterData()->getMobile() ?? $element->getDefault3(),
|
||||||
|
'appendix' => $contact->getLayouterData()->getMobileAppendix() ?? $element->getDefault4()],
|
||||||
|
ElementBinding::Fax => [
|
||||||
|
'areacode' => $contact->getLayouterData()->getFaxAreaCode() ?? $element->getDefault1(),
|
||||||
|
'prefix' => $contact->getLayouterData()->getFaxPrefix() ?? $element->getDefault2(),
|
||||||
|
'number' => $contact->getLayouterData()->getFax() ?? $element->getDefault3(),
|
||||||
|
'appendix' => $contact->getLayouterData()->getFaxAppendix() ?? $element->getDefault4()],
|
||||||
|
ElementBinding::UsernameLogin => $contact->getEmail() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Company => $contact->getLayouterData()->getCompany() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Company2 => $contact->getLayouterData()->getCompany2() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Title => $contact->getLayouterData()->getTitle() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Position => $contact->getLayouterData()->getPosition() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Function => $contact->getLayouterData()->getFunction() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::UserCountry => $contact->getCountryCode() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Fon => [
|
||||||
|
'areacode' => $contact->getLayouterData()->getPhoneAreaCode() ?? $element->getDefault1(),
|
||||||
|
'prefix' => $contact->getLayouterData()->getPhonePrefix() ?? $element->getDefault2(),
|
||||||
|
'number' => $contact->getLayouterData()->getPhone() ?? $element->getDefault3(),
|
||||||
|
'appendix' => $contact->getLayouterData()->getPhoneAppendix() ?? $element->getDefault4()],
|
||||||
|
ElementBinding::Abteilung => $contact->getLayouterData()->getAbteilung() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom1 => $contact->getCustom1() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom2 => $contact->getCustom2() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom3 => $contact->getCustom3() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom4 => $contact->getCustom4() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom5 => $contact->getCustom5() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom6 => $contact->getCustom6() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom7 => $contact->getCustom7() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom8 => $contact->getCustom8() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom9 => $contact->getCustom9() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom10 => $contact->getCustom10() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom11 => $contact->getCustom11() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom12 => $contact->getCustom12() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom13 => $contact->getCustom13() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom14 => $contact->getCustom14() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom15 => $contact->getCustom15() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom16 => $contact->getCustom16() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom17 => $contact->getCustom17() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom18 => $contact->getCustom18() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom19 => $contact->getCustom19() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom20 => $contact->getCustom20() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom21 => $contact->getCustom21() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom22 => $contact->getCustom22() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom23 => $contact->getCustom23() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Custom24 => $contact->getCustom24() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::LayouterMail => $contact->getLayouterData()->getEmail() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::LayouterCountryName => $contact->getLayouterData()->getCountryName() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::LayouterCountryCode => $contact->getLayouterData()->getCountryCode() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Birthday => $contact->getLayouterData()->getBirthday() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Homepages => $contact->getLayouterData()->getHomepage() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Salutation => $contact->getLayouterData()->getSalutation() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::UstId => $contact->getLayouterData()->getUstid() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::KSt => $contact->getLayouterData()->getKst() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::State => $contact->getLayouterData()->getState() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::District => $contact->getLayouterData()->getDistrict() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Image1 => $contact->getLayouterData()->getImage1() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Image2 => $contact->getLayouterData()->getImage2() ?? $element->getDefault1(),
|
||||||
|
};
|
||||||
|
|
||||||
|
if ($elm = $data->getElement($element, $contact)) {
|
||||||
|
if ($element->getType() == ElementType::Image && $elm['value'] != "") {
|
||||||
|
$media = $this->mediaManager->getModelByUuid($elm['value']);
|
||||||
|
$elmMedia = $media->getVariant($element->getImage()->aspectRatio);
|
||||||
|
$formData[$element->getId()] = ['value' => $elmMedia, 'enable' => (bool)$elm['enable']];
|
||||||
|
} else {
|
||||||
|
$formData[$element->getId()] = ['value' => $elm['value'], 'enable' => (bool)$elm['enable']];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$formData[$element->getId()] = ['value' => $value, 'enable' => $element->getOptional() ? $element->getOptionalDefault() : true];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($setting->getBasketField1Format() != "") {
|
||||||
|
$twigBF1 = $this->twig->createTemplate($setting->getBasketField1Format());
|
||||||
|
$basketField1 = $twigBF1->render(['form' => $formData]);
|
||||||
|
}
|
||||||
|
if ($setting->getBasketField2Format() != "") {
|
||||||
|
$twigBF2 = $this->twig->createTemplate($setting->getBasketField2Format());
|
||||||
|
$basketField2 = $twigBF2->render(['form' => $formData]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$layoutDesignData = new Layoutdesigndata();
|
||||||
|
$layoutDesignData->setUuid($data->getLayouterUuid());
|
||||||
|
$layoutDesignData->setArticleUuid($data->getProductUuid());
|
||||||
|
$layoutDesignData->setDesign(['data' => $data->getData(), 'contactUuid' => $data->getContactUuid(), 'pdf' => $this->saveFilesHelper->getPdfFile(), 'previews' => $this->saveFilesHelper->getImages()]);
|
||||||
|
|
||||||
|
$this->entityManager->persist($layoutDesignData);
|
||||||
|
$this->entityManager->flush();
|
||||||
|
|
||||||
|
$layouterSession = $this->entityManager->getRepository(LayouterSession::class)->findOneBy(['uuid' => $data->getLayouterUuid()]);
|
||||||
|
|
||||||
|
$layouterDesignDataDoc = new \PSC\Shop\EntityBundle\Document\LayouterSession();
|
||||||
|
$layouterDesignDataDoc->setUid((string)$layouterSession->getUID());
|
||||||
|
$layouterDesignDataDoc->setKst($basketField2);
|
||||||
|
$layouterDesignDataDoc->setRef($basketField1);
|
||||||
|
|
||||||
|
$this->documentManager->persist($layouterDesignDataDoc);
|
||||||
|
$this->documentManager->flush();
|
||||||
|
|
||||||
|
if ($data->isSek()) {
|
||||||
|
$this->requestStack->getSession()->getFlashBag()->add('success', 'Produkt in den Warenkorb gelegt');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->json(['success' => true, 'basketField1' => $basketField1, 'basketField2' => $basketField2]);
|
||||||
|
}
|
||||||
|
|
||||||
#[Route(path: '/save/{uuid}', methods: ['PUT'])]
|
#[Route(path: '/save/{uuid}', methods: ['PUT'])]
|
||||||
#[ParamConverter('data', class: Input::class, converter: 'psc_rest.request_body')]
|
#[ParamConverter('data', class: Input::class, converter: 'psc_rest.request_body')]
|
||||||
#[Tag('Plugin/Custom/PSC/CollectLayouter')]
|
#[Tag('Plugin/Custom/PSC/CollectLayouter')]
|
||||||
|
|||||||
@ -171,7 +171,7 @@
|
|||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
url: '/apps/api/plugin/custom/psc/collectlayouter/save/' + productUUId,
|
url: '/apps/api/plugin/custom/psc/collectlayouter/savecollect/' + productUUId + (contactUuid? '/' + contactUuid:''),
|
||||||
contentType: "application/json",
|
contentType: "application/json",
|
||||||
data: JSON.stringify({
|
data: JSON.stringify({
|
||||||
sek: true,
|
sek: true,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user