/** * Create Label * * @return string * @throws Zend_Pdf_Exception * @throws InvalidArgumentException */ public function render() { $pdf = new Zend_Pdf(); $pdfBuilder = new Mage_Usa_Model_Shipping_Carrier_Dhl_Label_Pdf_PageBuilder(); $template = new Mage_Usa_Model_Shipping_Carrier_Dhl_Label_Pdf_Page(Zend_Pdf_Page::SIZE_A4_LANDSCAPE); $pdfBuilder->setPage($template)->addProductName((string) $this->_info->ProductShortName)->addProductContentCode((string) $this->_info->ProductContentCode)->addSenderInfo($this->_info->Shipper)->addOriginInfo((string) $this->_info->OriginServiceArea->ServiceAreaCode)->addReceiveInfo($this->_info->Consignee)->addDestinationFacilityCode((string) $this->_info->Consignee->CountryCode, (string) $this->_info->DestinationServiceArea->ServiceAreaCode, (string) $this->_info->DestinationServiceArea->FacilityCode)->addServiceFeaturesCodes()->addDeliveryDateCode()->addShipmentInformation($this->_request->getOrderShipment())->addDateInfo($this->_info->ShipmentDate)->addWeightInfo((string) $this->_info->ChargeableWeight, (string) $this->_info->WeightUnit)->addWaybillBarcode((string) $this->_info->AirwayBillNumber, (string) $this->_info->Barcodes->AWBBarCode)->addRoutingBarcode((string) $this->_info->DHLRoutingCode, (string) $this->_info->DHLRoutingDataId, (string) $this->_info->Barcodes->DHLRoutingBarCode)->addBorder(); $packages = array_values($this->_request->getPackages()); $i = 0; foreach ($this->_info->Pieces->Piece as $piece) { $page = new Mage_Usa_Model_Shipping_Carrier_Dhl_Label_Pdf_Page($template); $pdfBuilder->setPage($page)->addPieceNumber((int) $piece->PieceNumber, (int) $this->_info->Piece)->addContentInfo($packages[$i])->addPieceIdBarcode((string) $piece->DataIdentifier, (string) $piece->LicensePlate, (string) $piece->LicensePlateBarCode); array_push($pdf->pages, $page); $i++; } return $pdf->render(); }
/** * Do request to shipment * * @param Mage_Shipping_Model_Shipment_Request $request * @return Varien_Object */ public function requestToShipment(Mage_Shipping_Model_Shipment_Request $request) { $packages = $request->getPackages(); if (!is_array($packages) || !$packages) { Mage::throwException(Mage::helper('usa')->__('No packages for request')); } $result = $this->_doShipmentRequest($request); $response = new Varien_Object(array('info' => array(array('tracking_number' => $result->getTrackingNumber(), 'label_content' => $result->getShippingLabelContent())))); $request->setMasterTrackingId($result->getTrackingNumber()); return $response; }
/** * Do request to shipment * * @param Mage_Shipping_Model_Shipment_Request $request * @return array */ public function requestToShipment(Mage_Shipping_Model_Shipment_Request $request) { $packages = $request->getPackages(); if (!is_array($packages) || !$packages) { Mage::throwException(Mage::helper('usa')->__('No packages for request')); } if ($request->getStoreId() != null) { $this->setStore($request->getStoreId()); } $data = array(); foreach ($packages as $packageId => $package) { $request->setPackageId($packageId); $request->setPackagingType($package['params']['container']); $request->setPackageWeight($package['params']['weight']); $request->setPackageParams(new Varien_Object($package['params'])); $request->setPackageItems($package['items']); $result = $this->_doShipmentRequest($request); if ($result->hasErrors()) { $this->rollBack($data); break; } else { $data[] = array('tracking_number' => $result->getTrackingNumber(), 'label_content' => $result->getShippingLabelContent()); } if (!isset($isFirstRequest)) { $request->setMasterTrackingId($result->getTrackingNumber()); $isFirstRequest = false; } } $response = new Varien_Object(array('info' => $data)); if ($result->getErrors()) { $response->setErrors($result->getErrors()); } return $response; }
/** * Do request to shipment * * @param Mage_Shipping_Model_Shipment_Request $request * @return array */ public function requestToShipment(Mage_Shipping_Model_Shipment_Request $request) { $this->_debug = Mage::helper('wsalogger')->isDebug($this->_modName); $packages = $request->getPackages(); if (!is_array($packages) || !$packages) { Mage::throwException(Mage::helper('usa')->__('No packages for request')); } if ($request->getStoreId() != null) { $this->setStore($request->getStoreId()); } $data = array(); foreach ($packages as $packageId => $package) { $request->setPackageId($packageId); $request->setPackagingType($this->checkContainerType($package['params']['container'])); $request->setPackageWeight($package['params']['weight']); $request->setPackageValue($package['params']['customs_value']); $request->setServices($package['params']['delivery_confirmation']); $request->setPackageParams(new Varien_Object($package['params'])); $request->setPackageItems($package['items']); array_key_exists('add_insurance', $package['params']) ? $request->setInsuranceRequired($package['params']['add_insurance']) : $request->setInsuranceRequired(false); array_key_exists('insurance_value', $package['params']) ? $request->setInsuranceValue($package['params']['insurance_value']) : $request->setInsuranceValue(false); array_key_exists('endicia_shipmethod', $package['params']) ? $request->setShippingMethod($package['params']['endicia_shipmethod']) : $request->setSelectedShipMethod(false); $result = $this->_doShipmentRequest($request); if ($result->hasErrors()) { $this->rollBack($data); break; } else { $data[] = array('tracking_number' => $result->getTrackingNumber(), 'label_content' => $result->getShippingLabelContent()); } if (!isset($isFirstRequest)) { $request->setMasterTrackingId($result->getTrackingNumber()); $isFirstRequest = false; } } $response = new Varien_Object(array('info' => $data)); if ($result->getErrors()) { $response->setErrors($result->getErrors()); } return $response; }