gilles.bourgeat@gmail.com> */ abstract class AbstractLabelRequest extends AbstractRequest { /** @var OutputFormat|null */ private $outputFormat; /** @var Letter */ private $letter; /** * @return OutputFormat|null */ public function getOutputFormat() { return $this->outputFormat; } /** * @param OutputFormat $outputFormat * @return self */ protected function setOutputFormat(OutputFormat $outputFormat) { $this->outputFormat = $outputFormat; return $this; } /** * @return Letter */ public function getLetter() { return $this->letter; } /** * @param Letter $letter * @return self */ protected function setLetter(Letter $letter) { $this->letter = $letter; return $this; } /** * @inheritdoc */ public function generateArrayRequest() { return array_merge_recursive(parent::generateArrayRequest(), [ 'outputFormat' => [ 'x' => $this->getOutputFormat()->getX(), 'y' => $this->getOutputFormat()->getY(), 'outputPrintingType' => $this->getOutputFormat()->getOutputPrintingType() ], 'letter' => [ 'service' => [ "productCode" => $this->getLetter()->getService()->getProductCode(), "depositDate" => $this->getLetter()->getService()->getDepositDate()->format('Y-m-d'), "orderNumber" => $this->getLetter()->getService()->getOrderNumber(), 'commercialName' => $this->getLetter()->getService()->getCommercialName() ], 'parcel' => [ 'weight' => $this->getLetter()->getParcel()->getWeight(), 'pickupLocationId' => $this->getLetter()->getParcel()->getPickupLocationId() ], 'sender' => [ 'senderParcelRef' => $this->getLetter()->getSender()->getSenderParcelRef(), 'address' => [ 'companyName' => $this->getLetter()->getSender()->getAddress()->getCompanyName(), 'lastName' => $this->getLetter()->getSender()->getAddress()->getLastName(), 'firstName' => $this->getLetter()->getSender()->getAddress()->getFirstName(), 'line0' => $this->getLetter()->getSender()->getAddress()->getLine0(), 'line1' => $this->getLetter()->getSender()->getAddress()->getLine1(), 'line2' => $this->getLetter()->getSender()->getAddress()->getLine2(), 'line3' => $this->getLetter()->getSender()->getAddress()->getLine3(), 'countryCode' => $this->getLetter()->getSender()->getAddress()->getCountryCode(), 'city' => $this->getLetter()->getSender()->getAddress()->getCity(), 'zipCode' => $this->getLetter()->getSender()->getAddress()->getZipCode(), 'phoneNumber' => $this->getLetter()->getSender()->getAddress()->getPhoneNumber(), 'mobileNumber' => $this->getLetter()->getSender()->getAddress()->getMobileNumber(), 'email'=> $this->getLetter()->getSender()->getAddress()->getEmail(), 'language' => $this->getLetter()->getSender()->getAddress()->getLanguage() ] ], 'addressee' => [ 'addresseeParcelRef' => $this->getLetter()->getAddressee()->getAddresseeParcelRef(), 'address' => [ 'companyName' => $this->getLetter()->getAddressee()->getAddress()->getCompanyName(), 'lastName' => $this->getLetter()->getAddressee()->getAddress()->getLastName(), 'firstName' => $this->getLetter()->getAddressee()->getAddress()->getFirstName(), 'line0' => $this->getLetter()->getAddressee()->getAddress()->getLine0(), 'line1' => $this->getLetter()->getAddressee()->getAddress()->getLine1(), 'line2' => $this->getLetter()->getAddressee()->getAddress()->getLine2(), 'line3' => $this->getLetter()->getAddressee()->getAddress()->getLine3(), 'countryCode' => $this->getLetter()->getAddressee()->getAddress()->getCountryCode(), 'city' => $this->getLetter()->getAddressee()->getAddress()->getCity(), 'zipCode' => $this->getLetter()->getAddressee()->getAddress()->getZipCode(), 'phoneNumber' => $this->getLetter()->getAddressee()->getAddress()->getPhoneNumber(), 'mobileNumber' => $this->getLetter()->getAddressee()->getAddress()->getMobileNumber(), 'email'=> $this->getLetter()->getAddressee()->getAddress()->getEmail(), 'language' => $this->getLetter()->getAddressee()->getAddress()->getLanguage() ] ] ] ]); } }