/** * @param InkRouter_Models_Order $order */ public static function transform(InkRouter_Models_Order $order) { $orderItems = $order->getOrderItems(); foreach ($orderItems as &$orderItem) { /**@var InkRouter_Models_OrderItem $orderItem */ $newOrderItem = null; $mailingAttributes = null; $attributes = array(); foreach ($orderItem->getAttributes() as $attribute) { if ($attribute instanceof InkRouter_Models_Attributes_ScalarStringAttribute) { /** InkRouter_Models_Attributes_ScalarStringAttribute $attribute */ if ($attribute->getType() == 'ENVELOPE_TYPE') { $newOrderItem = new InkRouter_Models_OrderItem(); $newOrderItem->setPrintGroupId($orderItem->getPrintGroupId() . "E"); $newOrderItem->setProductType(self::getEnvelopeType($orderItem->getProductType())); $newOrderItem->setQuantity($orderItem->getQuantity()); $newOrderItem->setCost(0.0); $envelopeAttribute = new InkRouter_Models_Attributes_ScalarStringAttribute(); $envelopeAttribute->setType('MEDIA_COLOR')->setValue($attribute->getValue()); $newOrderItem->addAttributes($envelopeAttribute); } else { $attributes[] = $attribute; } } else { if ($attribute instanceof InkRouter_Models_Attributes_MailingAttributes) { /**@var InkRouter_Models_Attributes_MailingAttributes $attribute */ $mailingAttributes = new InkRouter_Models_Attributes_MailingAttributes(); $mailingAttributes->setMailClass($attribute->getMailClass()); $mailingAttributes->setShipExtra($attribute->getShipExtra()); $attributes[] = $attribute; } else { $attributes[] = $attribute; } } } $orderItem->setAttributes($attributes); if ($newOrderItem != null) { if ($mailingAttributes != null) { $newOrderItem->addAttributes($mailingAttributes); $idAttribute = new InkRouter_Models_Attributes_ScalarStringAttribute(); $idAttribute->setType('ENVELOPE_ORDER_ITEM')->setValue($newOrderItem->getPrintGroupId()); $orderItem->addAttributes($idAttribute); } $order->addOrderItem($newOrderItem); } } }