From b6af9ddff10d1bcde1246f982a58b255be6459b6 Mon Sep 17 00:00:00 2001 From: lo4k Date: Fri, 20 Jun 2025 15:58:14 +0200 Subject: [PATCH] WIP : Thelia 2.6 --- .../LocalPickupLocalAddressResource.php | 383 ++++++++++++++++++ Api/State/LocalPickupLocalAddressProvider.php | 68 ++++ Config/module.xml | 2 +- LocalPickup.php | 2 +- 4 files changed, 453 insertions(+), 2 deletions(-) create mode 100644 Api/Resource/LocalPickupLocalAddressResource.php create mode 100644 Api/State/LocalPickupLocalAddressProvider.php diff --git a/Api/Resource/LocalPickupLocalAddressResource.php b/Api/Resource/LocalPickupLocalAddressResource.php new file mode 100644 index 0000000..368dff6 --- /dev/null +++ b/Api/Resource/LocalPickupLocalAddressResource.php @@ -0,0 +1,383 @@ + [LocalPickupLocalAddressResource::GROUP_FRONT_READ]] +)] +class LocalPickupLocalAddressResource +{ + public const GROUP_FRONT_READ = 'front:local_pickup_address:read'; + + /** + * @var int|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?int $id = null; + + /** + * @var string|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?string $label = null; + + /** + * @var int|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?int $customer = null; + + /** + * @var int|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?int $title = null; + + /** + * @var string|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?string $company = null; + + /** + * @var string|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?string $firstname = null; + + /** + * @var string|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?string $lastname = null; + + /** + * @var string|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?string $address1 = null; + + /** + * @var string|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?string $address2 = null; + + /** + * @var string|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?string $address3 = null; + + /** + * @var string|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?string $zipcode = null; + + /** + * @var string|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?string $city = null; + + /** + * @var int|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?int $country = null; + + /** + * @var string|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?string $phone = null; + + /** + * @var string|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?string $cellphone = null; + + /** + * @var int|null + */ + #[Groups([self::GROUP_FRONT_READ])] + public ?int $default = null; + + /** + * @return int|null + */ + public function getId(): ?int + { + return $this->id; + } + + /** + * @param int|null $id + * @return void + */ + public function setId(?int $id): void + { + $this->id = $id; + } + + /** + * @return string|null + */ + public function getLabel(): ?string + { + return $this->label; + } + + /** + * @param string|null $label + * @return void + */ + public function setLabel(?string $label): void + { + $this->label = $label; + } + + /** + * @return int|null + */ + public function getCustomer(): ?int + { + return $this->customer; + } + + /** + * @param int|null $customer + * @return void + */ + public function setCustomer(?int $customer): void + { + $this->customer = $customer; + } + + /** + * @return int|null + */ + public function getTitle(): ?int + { + return $this->title; + } + + /** + * @param int|null $title + * @return void + */ + public function setTitle(?int $title): void + { + $this->title = $title; + } + + /** + * @return string|null + */ + public function getLastname(): ?string + { + return $this->lastname; + } + + /** + * @param string|null $lastname + * @return void + */ + public function setLastname(?string $lastname): void + { + $this->lastname = $lastname; + } + + /** + * @param string|null $address1 + * @return void + */ + public function setAddress1(?string $address1): void + { + $this->address1 = $address1; + } + + /** + * @return string|null + */ + public function getAddress2(): ?string + { + return $this->address2; + } + + /** + * @param string|null $address2 + * @return void + */ + public function setAddress2(?string $address2): void + { + $this->address2 = $address2; + } + + /** + * @return string|null + */ + public function getAddress3(): ?string + { + return $this->address3; + } + + /** + * @param string|null $address3 + * @return void + */ + public function setAddress3(?string $address3): void + { + $this->address3 = $address3; + } + + /** + * @return string|null + */ + public function getZipcode(): ?string + { + return $this->zipcode; + } + + /** + * @param string|null $zipcode + * @return void + */ + public function setZipcode(?string $zipcode): void + { + $this->zipcode = $zipcode; + } + + /** + * @return string|null + */ + public function getCity(): ?string + { + return $this->city; + } + + /** + * @param string|null $city + * @return void + */ + public function setCity(?string $city): void + { + $this->city = $city; + } + + /** + * @return int|null + */ + public function getCountry(): ?int + { + return $this->country; + } + + /** + * @param int|null $country + * @return void + */ + public function setCountry(?int $country): void + { + $this->country = $country; + } + + /** + * @return string|null + */ + public function getPhone(): ?string + { + return $this->phone; + } + + /** + * @param string|null $phone + * @return void + */ + public function setPhone(?string $phone): void + { + $this->phone = $phone; + } + + /** + * @return string|null + */ + public function getCellphone(): ?string + { + return $this->cellphone; + } + + /** + * @param string|null $cellphone + * @return void + */ + public function setCellphone(?string $cellphone): void + { + $this->cellphone = $cellphone; + } + + /** + * @return int|null + */ + public function getDefault(): ?int + { + return $this->default; + } + + /** + * @param int|null $default + * @return void + */ + public function setDefault(?int $default): void + { + $this->default = $default; + } + + /** + * @return string|null + */ + public function getCompany(): ?string + { + return $this->company; + } + + /** + * @param string|null $company + * @return void + */ + public function setCompany(?string $company): void + { + $this->company = $company; + } + + /** + * @return string|null + */ + public function getFirstname(): ?string + { + return $this->firstname; + } + + /** + * @param string|null $firstname + * @return void + */ + public function setFirstname(?string $firstname): void + { + $this->firstname = $firstname; + } +} diff --git a/Api/State/LocalPickupLocalAddressProvider.php b/Api/State/LocalPickupLocalAddressProvider.php new file mode 100644 index 0000000..ef09653 --- /dev/null +++ b/Api/State/LocalPickupLocalAddressProvider.php @@ -0,0 +1,68 @@ +requestStack->getCurrentRequest(); + $session = $request?->getSession(); + + if (!isset($uriVariables['id'])) { + return null; + } + + $customer = $session?->getCustomerUser(); + if (!$customer) { + throw new Exception("No customer in session"); + } + + $address = AddressQuery::create() + ->filterByCustomerId($customer->getId()) + ->findPk($uriVariables['id']); + + if (null === $address) { + throw new Exception("The requested address doesn't exist"); + } + + $resource = new LocalPickupLocalAddressResource(); + $resource->id = 0; + $resource->label = $address->getLabel(); + $resource->customer = $address->getCustomerId(); + $resource->title = $address->getTitleId(); + $resource->company = ConfigQuery::read('store_name'); + $resource->firstname = $customer->getFirstname(); + $resource->lastname = $customer->getLastname(); + $resource->address1 = ConfigQuery::read('store_address1'); + $resource->address2 = ConfigQuery::read('store_address2'); + $resource->address3 = ConfigQuery::read('store_address3'); + $resource->zipcode = ConfigQuery::read('store_zipcode'); + $resource->city = ConfigQuery::read('store_city'); + $resource->country = ConfigQuery::read('store_country'); + $resource->phone = $address->getPhone(); + $resource->cellphone = $address->getCellphone(); + $resource->default = 0; + + return $resource; + } +} diff --git a/Config/module.xml b/Config/module.xml index 97173ba..3f89cee 100755 --- a/Config/module.xml +++ b/Config/module.xml @@ -7,7 +7,7 @@ Retrait sur place - 2.1.3 + 2.1.4 Thelia info@thelia.net diff --git a/LocalPickup.php b/LocalPickup.php index e06cc91..aaf2b21 100755 --- a/LocalPickup.php +++ b/LocalPickup.php @@ -121,7 +121,7 @@ public function getDeliveryMode() public static function configureServices(ServicesConfigurator $servicesConfigurator): void { $servicesConfigurator->load(self::getModuleCode().'\\', __DIR__) - ->exclude([THELIA_MODULE_DIR.ucfirst(self::getModuleCode()).'/I18n/*']) + ->exclude(["/I18n/*"]) ->autowire(true) ->autoconfigure(true); }