From bb4272066bfbe6a9e32d37eb5ce8f2171c09f8f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=B6ck?= Date: Wed, 9 Oct 2019 17:00:15 +0200 Subject: [PATCH 1/9] added OrderInvoice and OrderInvoiceItem serializer definition and fixed Sale and QuoteItem spelling mistakes --- .../config/serializer/Model.OrderInvoice.yml | 39 +++++++++++++++++++ .../serializer/Model.OrderInvoiceItem.yml | 3 ++ .../config/serializer/Model.QuoteItem.yml | 2 +- .../config/serializer/Model.Sale.yml | 4 +- 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml create mode 100644 src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoiceItem.yml diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml new file mode 100644 index 0000000000..4a95b9ccf2 --- /dev/null +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml @@ -0,0 +1,39 @@ +CoreShop\Component\Order\Model\OrderInvoice: + exclusion_policy: ALL + xml_root_name: order_invoice + virtual_properties: + o_id: + serialized_name: o_id + exp: object.getId() + type: integer + groups: [Detailed] + documentType: + serialized_name: documentType + exp: object.getDocumentType() + type: string + groups: [Detailed] + totalTax: + serialized_name: totalTax + exp: object.getTotalTax() + type: integer + groups: [Detailed] + invoiceDate: + serialized_name: invoiceDate + exp: object.getInvoiceDate() + type: integer + groups: [Detailed] + documentNumber: + serialized_name: documentNumber + exp: object.getDocumentNumber() + type: string + groups: [Detailed] + totalNet: + serialized_name: totalNet + exp: object.getTotal(false) + type: integer + groups: [Detailed] + totalGross: + serialized_name: totalGross + exp: object.getTotal(true) + type: integer + groups: [Detailed] \ No newline at end of file diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoiceItem.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoiceItem.yml new file mode 100644 index 0000000000..f18203bfcd --- /dev/null +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoiceItem.yml @@ -0,0 +1,3 @@ +CoreShop\Component\Order\Model\OrderInvoiceItem: + exclusion_policy: ALL + xml_root_name: order_invoice_item \ No newline at end of file diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.QuoteItem.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.QuoteItem.yml index a602f6f1b9..84374f4978 100644 --- a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.QuoteItem.yml +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.QuoteItem.yml @@ -1,4 +1,4 @@ CoreShop\Component\Order\Model\QuoteItem: exclusion_policy: ALL - xml_root_name: order_item + xml_root_name: quote_item diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Sale.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Sale.yml index 645219d099..b0908fed67 100644 --- a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Sale.yml +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Sale.yml @@ -96,7 +96,7 @@ CoreShop\Component\Order\Model\Sale: exp: object.getTotal(false) type: integer groups: [Detailed] - totaGross: + totalGross: serialized_name: totalGross exp: object.getTotal(true) type: integer @@ -106,7 +106,7 @@ CoreShop\Component\Order\Model\Sale: exp: object.getBaseTotal(false) type: integer groups: [Detailed] - baseTotaGross: + baseTotalGross: serialized_name: baseTotalGross exp: object.getBaseTotal(true) type: integer From 2db93362e944922c0b71e1714ce8400cb1690a83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=B6ck?= Date: Wed, 9 Oct 2019 17:39:56 +0200 Subject: [PATCH 2/9] invoices and shipments now serialized with jms serializer --- .../Controller/AbstractSaleDetailController.php | 17 ++++++++++++----- .../OrderBundle/Controller/OrderController.php | 11 +++++++---- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php b/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php index 340da8481f..b983b75954 100644 --- a/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php +++ b/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php @@ -138,7 +138,7 @@ public function findSaleAction(Request $request) */ protected function prepareSale(SaleInterface $sale) { - $date = (int) $sale->getSaleDate()->getTimestamp(); + $date = (int)$sale->getSaleDate()->getTimestamp(); $element = [ 'o_id' => $sale->getId(), @@ -219,15 +219,14 @@ protected function getDetails(SaleInterface $sale) $jsonSale['customer'] = $sale->getCustomer() instanceof CustomerInterface ? $this->getDataForObject($sale->getCustomer()) : null; $jsonSale['currency'] = $this->getCurrency($sale->getCurrency() ?: $sale->getStore()->getCurrency()); $jsonSale['store'] = $sale->getStore() instanceof StoreInterface ? $this->getStore($sale->getStore()) : null; - } - else { - $jsonSale = $this->get('jms_serializer')->toArray($sale); + } else { + $jsonSale = $this->getSerializer()->toArray($sale); } if ($jsonSale['items'] === null) { $jsonSale['items'] = []; } - + $jsonSale['details'] = $this->getItemDetails($sale); $jsonSale['summary'] = $this->getSummary($sale); $jsonSale['mailCorrespondence'] = $this->getMailCorrespondence($sale); @@ -465,4 +464,12 @@ private function getAddressFormatter() { return $this->get('coreshop.address.formatter'); } + + /** + * @return \JMS\Serializer\Serializer + */ + protected function getSerializer() + { + return $this->get('jms_serializer'); + } } diff --git a/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php b/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php index 89ff7f6943..3b61a6672f 100644 --- a/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php +++ b/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php @@ -246,9 +246,12 @@ protected function getDetails(SaleInterface $sale) $order['availableOrderTransitions'] = $availableTransitions; $order['statesHistory'] = $this->getStatesHistory($sale); + + $invoices = $this->getInvoices($sale); + + $order['editable'] = count($invoices) > 0 ? false : true; + $order['invoices'] = $invoices; $order['payments'] = $this->getPayments($sale); - $order['editable'] = count($this->getInvoices($sale)) > 0 ? false : true; - $order['invoices'] = $this->getInvoices($sale); $order['shipments'] = $this->getShipments($sale); $order['paymentCreationAllowed'] = !in_array($sale->getOrderState(), [OrderStates::STATE_CANCELLED, OrderStates::STATE_COMPLETE]); $order['invoiceCreationAllowed'] = $this->getInvoiceProcessableHelper()->isProcessable($sale); @@ -300,7 +303,7 @@ protected function getInvoices($order) 'cancel', ], false); - $data = $this->getDataForObject($invoice); + $data = $this->getSerializer()->toArray($invoice); $data['stateInfo'] = $this->getWorkflowStateManager()->getStateInfo('coreshop_invoice', $invoice->getState(), false); $data['transitions'] = $availableTransitions; @@ -327,7 +330,7 @@ protected function getShipments($order) $shipmentArray = []; foreach ($shipments as $shipment) { - $data = $this->getDataForObject($shipment); + $data = $this->getSerializer()->toArray($shipment); //This should be in CoreBundle, but for BC reasons, we keep it here if (method_exists($shipment, 'getCarrier')) { From 5e765c265e116c42238a00b9a1238320b00250df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=B6ck?= Date: Wed, 9 Oct 2019 18:08:31 +0200 Subject: [PATCH 3/9] renamed to invoiceDate --- .../Resources/config/serializer/Model.OrderInvoice.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml index 4a95b9ccf2..c3c7ab441a 100644 --- a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml @@ -22,8 +22,8 @@ CoreShop\Component\Order\Model\OrderInvoice: exp: object.getInvoiceDate() type: integer groups: [Detailed] - documentNumber: - serialized_name: documentNumber + invoiceNumber: + serialized_name: invoiceNumber exp: object.getDocumentNumber() type: string groups: [Detailed] From 600f617999e1ea4ff94d962d953d277f46184d7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=B6ck?= Date: Wed, 9 Oct 2019 18:26:41 +0200 Subject: [PATCH 4/9] shipments now completely serialized via JMS serializer --- .../config/serializer/Model.OrderShipment.yml | 15 +++++++ .../Controller/OrderController.php | 5 --- .../config/serializer/Model.OrderShipment.yml | 39 +++++++++++++++++++ .../serializer/Model.OrderShipmentItem.yml | 14 +++++++ 4 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 src/CoreShop/Bundle/CoreBundle/Resources/config/serializer/Model.OrderShipment.yml create mode 100644 src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipment.yml create mode 100644 src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipmentItem.yml diff --git a/src/CoreShop/Bundle/CoreBundle/Resources/config/serializer/Model.OrderShipment.yml b/src/CoreShop/Bundle/CoreBundle/Resources/config/serializer/Model.OrderShipment.yml new file mode 100644 index 0000000000..303bef5b91 --- /dev/null +++ b/src/CoreShop/Bundle/CoreBundle/Resources/config/serializer/Model.OrderShipment.yml @@ -0,0 +1,15 @@ +CoreShop\Component\Core\Model\OrderShipment: + exclusion_policy: ALL + xml_root_name: order_shipment + virtual_properties: + carrierName: + serialized_name: carrierName + exp: 'object.getCarrier() != null ? object.getCarrier().getIdentifier() : null' + type: string + groups: [Detailed] + weight: + serialized_name: weight + exp: object.getWeight() + type: double + groups: [Detailed] + diff --git a/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php b/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php index 3b61a6672f..83925cd9b1 100644 --- a/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php +++ b/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php @@ -332,11 +332,6 @@ protected function getShipments($order) foreach ($shipments as $shipment) { $data = $this->getSerializer()->toArray($shipment); - //This should be in CoreBundle, but for BC reasons, we keep it here - if (method_exists($shipment, 'getCarrier')) { - $data['carrierName'] = $shipment->getCarrier()->getTitle(); - } - $availableTransitions = $this->getWorkflowStateManager()->parseTransitions($shipment, 'coreshop_shipment', [ 'create', 'ship', diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipment.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipment.yml new file mode 100644 index 0000000000..e6b48f705b --- /dev/null +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipment.yml @@ -0,0 +1,39 @@ +CoreShop\Component\Order\Model\OrderShipment: + exclusion_policy: ALL + xml_root_name: order_shipment + virtual_properties: + o_id: + serialized_name: o_id + exp: object.getId() + type: integer + groups: [Detailed] + documentType: + serialized_name: documentType + exp: object.getDocumentType() + type: string + groups: [Detailed] + shipmentDate: + serialized_name: invoiceDate + exp: object.getShipmentDate() + type: integer + groups: [Detailed] + documentDate: + serialized_name: documentDate + exp: object.getDocumentDate() + type: integer + groups: [Detailed] + shipmentNumber: + serialized_name: shipmentNumber + exp: object.getShipmentNumber() + type: string + groups: [Detailed] + trackingCode: + serialized_name: trackingCode + exp: object.getTrackingCode() + type: integer + groups: [Detailed] + items: + serialized_name: items + exp: object.getItems() + type: array + groups: [Detailed] \ No newline at end of file diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipmentItem.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipmentItem.yml new file mode 100644 index 0000000000..ff77579cc0 --- /dev/null +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipmentItem.yml @@ -0,0 +1,14 @@ +CoreShop\Component\Order\Model\OrderShipmentItem: + exclusion_policy: ALL + xml_root_name: order_shipment_item + virtual_properties: + _itemName: + serialized_name: _itemName + exp: 'object.getOrderItem() != null ? object.getOrderItem().getName() : null' + type: string + groups: [Detailed] + name: + serialized_name: name + exp: 'object.getOrderItem() != null ? object.getOrderItem().getName() : null' + type: string + groups: [Detailed] From 9e1fef940664e6f5459412d96bcc9b8644d40407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=B6ck?= Date: Wed, 9 Oct 2019 19:22:01 +0200 Subject: [PATCH 5/9] items now serialized via JMS --- .../Controller/AbstractSaleDetailController.php | 2 +- .../OrderBundle/Controller/OrderController.php | 15 +++++---------- .../config/serializer/Model.OrderInvoice.yml | 5 +++++ .../config/serializer/Model.OrderInvoiceItem.yml | 13 ++++++++++++- .../config/serializer/Model.OrderShipmentItem.yml | 4 ++-- 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php b/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php index b983b75954..778faca33e 100644 --- a/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php +++ b/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php @@ -460,7 +460,7 @@ abstract protected function getSaleNumberField(); /** * @return AddressFormatterInterface */ - private function getAddressFormatter() + protected function getAddressFormatter() { return $this->get('coreshop.address.formatter'); } diff --git a/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php b/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php index 83925cd9b1..61213bb1a7 100644 --- a/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php +++ b/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php @@ -341,11 +341,6 @@ protected function getShipments($order) $data['stateInfo'] = $this->getWorkflowStateManager()->getStateInfo('coreshop_shipment', $shipment->getState(), false); $data['transitions'] = $availableTransitions; - // better solution? - foreach ($shipment->getItems() as $index => $item) { - $data['items'][$index]['_itemName'] = $item->getOrderItem()->getName(); - } - $shipmentArray[] = $data; } @@ -367,7 +362,7 @@ protected function getSummary(SaleInterface $sale) /** * @return ProcessableInterface */ - private function getInvoiceProcessableHelper() + protected function getInvoiceProcessableHelper() { return $this->get('coreshop.order.invoice.processable'); } @@ -375,7 +370,7 @@ private function getInvoiceProcessableHelper() /** * @return ProcessableInterface */ - private function getShipmentProcessableHelper() + protected function getShipmentProcessableHelper() { return $this->get('coreshop.order.shipment.processable'); } @@ -383,7 +378,7 @@ private function getShipmentProcessableHelper() /** * @return OrderInvoiceRepositoryInterface */ - private function getOrderInvoiceRepository() + protected function getOrderInvoiceRepository() { return $this->get('coreshop.repository.order_invoice'); } @@ -391,7 +386,7 @@ private function getOrderInvoiceRepository() /** * @return OrderShipmentRepositoryInterface */ - private function getOrderShipmentRepository() + protected function getOrderShipmentRepository() { return $this->get('coreshop.repository.order_shipment'); } @@ -399,7 +394,7 @@ private function getOrderShipmentRepository() /** * @return WorkflowStateInfoManagerInterface */ - private function getWorkflowStateManager() + protected function getWorkflowStateManager() { return $this->get('coreshop.workflow.state_info_manager'); } diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml index c3c7ab441a..87403a7ce3 100644 --- a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml @@ -36,4 +36,9 @@ CoreShop\Component\Order\Model\OrderInvoice: serialized_name: totalGross exp: object.getTotal(true) type: integer + groups: [Detailed] + items: + serialized_name: items + exp: object.getItems + type: array groups: [Detailed] \ No newline at end of file diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoiceItem.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoiceItem.yml index f18203bfcd..762580e805 100644 --- a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoiceItem.yml +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoiceItem.yml @@ -1,3 +1,14 @@ CoreShop\Component\Order\Model\OrderInvoiceItem: exclusion_policy: ALL - xml_root_name: order_invoice_item \ No newline at end of file + xml_root_name: order_invoice_item + virtual_properties: + _itemName: + serialized_name: _itemName + exp: 'object.getOrderItem() != null ? object.getOrderItem().getName() : null' # TODO: add interface check when upgrading to JMS Serializer > 3.0 + type: string + groups: [Detailed] + name: + serialized_name: name + exp: 'object.getOrderItem() != null ? object.getOrderItem().getName() : null' # TODO: add interface check when upgrading to JMS Serializer > 3.0 + type: string + groups: [Detailed] diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipmentItem.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipmentItem.yml index ff77579cc0..6479fa99d0 100644 --- a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipmentItem.yml +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipmentItem.yml @@ -4,11 +4,11 @@ CoreShop\Component\Order\Model\OrderShipmentItem: virtual_properties: _itemName: serialized_name: _itemName - exp: 'object.getOrderItem() != null ? object.getOrderItem().getName() : null' + exp: 'object.getOrderItem() != null ? object.getOrderItem().getName() : null' # TODO: add interface check when upgrading to JMS Serializer > 3.0 type: string groups: [Detailed] name: serialized_name: name - exp: 'object.getOrderItem() != null ? object.getOrderItem().getName() : null' + exp: 'object.getOrderItem() != null ? object.getOrderItem().getName() : null' # TODO: add interface check when upgrading to JMS Serializer > 3.0 type: string groups: [Detailed] From 0c8394bde0ba513d6b6a54f00a36f6108ec639e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=B6ck?= Date: Wed, 9 Oct 2019 19:32:39 +0200 Subject: [PATCH 6/9] fixed wrong param in OrderShipment --- .../Resources/config/serializer/Model.OrderShipment.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipment.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipment.yml index e6b48f705b..086845186e 100644 --- a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipment.yml +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderShipment.yml @@ -13,15 +13,10 @@ CoreShop\Component\Order\Model\OrderShipment: type: string groups: [Detailed] shipmentDate: - serialized_name: invoiceDate + serialized_name: shipmentDate exp: object.getShipmentDate() type: integer groups: [Detailed] - documentDate: - serialized_name: documentDate - exp: object.getDocumentDate() - type: integer - groups: [Detailed] shipmentNumber: serialized_name: shipmentNumber exp: object.getShipmentNumber() From d5a3762b6cb57eee45fe122c6e1e1e41e05e80ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=B6ck?= Date: Wed, 9 Oct 2019 19:48:03 +0200 Subject: [PATCH 7/9] minor changes --- .../OrderBundle/Resources/config/serializer/Model.Cart.yml | 2 +- .../OrderBundle/Resources/config/serializer/Model.Order.yml | 1 + .../Resources/config/serializer/Model.OrderInvoice.yml | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Cart.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Cart.yml index 129cfff5bb..841a994517 100644 --- a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Cart.yml +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Cart.yml @@ -56,4 +56,4 @@ CoreShop\Component\Order\Model\Cart: serialized_name: paymentProvider exp: object.getPaymentProvider(true) type: relation - groups: [Detailed] + groups: [Detailed] \ No newline at end of file diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Order.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Order.yml index e20977630d..1ac60e2c6c 100644 --- a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Order.yml +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.Order.yml @@ -21,3 +21,4 @@ CoreShop\Component\Order\Model\Order: exp: object.getPaymentSettings() type: array groups: [Detailed] + diff --git a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml index 87403a7ce3..fd6aad7beb 100644 --- a/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml +++ b/src/CoreShop/Bundle/OrderBundle/Resources/config/serializer/Model.OrderInvoice.yml @@ -24,7 +24,7 @@ CoreShop\Component\Order\Model\OrderInvoice: groups: [Detailed] invoiceNumber: serialized_name: invoiceNumber - exp: object.getDocumentNumber() + exp: object.getInvoiceNumber() type: string groups: [Detailed] totalNet: From 435e2ed1dae826b5b1611cfdf4705acb9b0501e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=B6ck?= Date: Wed, 9 Oct 2019 19:49:37 +0200 Subject: [PATCH 8/9] removed line at EOF --- .../CoreBundle/Resources/config/serializer/Model.Order.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CoreShop/Bundle/CoreBundle/Resources/config/serializer/Model.Order.yml b/src/CoreShop/Bundle/CoreBundle/Resources/config/serializer/Model.Order.yml index 3c13afd4db..bc7c1cffea 100644 --- a/src/CoreShop/Bundle/CoreBundle/Resources/config/serializer/Model.Order.yml +++ b/src/CoreShop/Bundle/CoreBundle/Resources/config/serializer/Model.Order.yml @@ -10,4 +10,4 @@ CoreShop\Component\Core\Model\Order: carrier: serialized_name: carrier exp: object.getCarrier() - groups: [Detailed] + groups: [Detailed] \ No newline at end of file From 25e369f1dc23813914a5c51043819b4f06d813ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=B6ck?= Date: Thu, 10 Oct 2019 08:41:54 +0200 Subject: [PATCH 9/9] added BC param check --- .../AbstractSaleDetailController.php | 10 ++++++- .../Controller/OrderController.php | 27 ++++++++++++++----- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php b/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php index 778faca33e..8f3c88e023 100644 --- a/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php +++ b/src/CoreShop/Bundle/OrderBundle/Controller/AbstractSaleDetailController.php @@ -211,7 +211,7 @@ protected function prepareAddress($address, $type) */ protected function getDetails(SaleInterface $sale) { - if ($this->getParameter('coreshop.order.legacy_serialization')) { + if ($this->useLegacySerialization()) { $jsonSale = $this->getDataForObject($sale); $jsonSale['o_id'] = $sale->getId(); $jsonSale['saleNumber'] = $sale->getSaleNumber(); @@ -472,4 +472,12 @@ protected function getSerializer() { return $this->get('jms_serializer'); } + + /** + * @return bool + */ + protected function useLegacySerialization() + { + return $this->getParameter('coreshop.order.legacy_serialization') === true; + } } diff --git a/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php b/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php index 61213bb1a7..51445f901d 100644 --- a/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php +++ b/src/CoreShop/Bundle/OrderBundle/Controller/OrderController.php @@ -303,16 +303,19 @@ protected function getInvoices($order) 'cancel', ], false); - $data = $this->getSerializer()->toArray($invoice); + if ($this->useLegacySerialization()) { + $data = $this->getDataForObject($invoice); + + foreach ($invoice->getItems() as $index => $item) { + $data['items'][$index]['_itemName'] = $item->getOrderItem()->getName(); + } + } else { + $data = $this->getSerializer()->toArray($invoice); + } $data['stateInfo'] = $this->getWorkflowStateManager()->getStateInfo('coreshop_invoice', $invoice->getState(), false); $data['transitions'] = $availableTransitions; - // better solution? - foreach ($invoice->getItems() as $index => $item) { - $data['items'][$index]['_itemName'] = $item->getOrderItem()->getName(); - } - $invoiceArray[] = $data; } @@ -330,7 +333,6 @@ protected function getShipments($order) $shipmentArray = []; foreach ($shipments as $shipment) { - $data = $this->getSerializer()->toArray($shipment); $availableTransitions = $this->getWorkflowStateManager()->parseTransitions($shipment, 'coreshop_shipment', [ 'create', @@ -338,6 +340,16 @@ protected function getShipments($order) 'cancel', ], false); + if ($this->useLegacySerialization()) { + $data = $this->getDataForObject($shipment); + + foreach ($shipment->getItems() as $index => $item) { + $data['items'][$index]['_itemName'] = $item->getOrderItem()->getName(); + } + } else { + $data = $this->getSerializer()->toArray($shipment); + } + $data['stateInfo'] = $this->getWorkflowStateManager()->getStateInfo('coreshop_shipment', $shipment->getState(), false); $data['transitions'] = $availableTransitions; @@ -446,4 +458,5 @@ protected function getSaleNumberField() { return 'orderNumber'; } + }