Example #1
0
 /**
  * Form array with appropriate structure for shipment request
  *
  * @param Varien_Object $request
  * @return array
  */
 protected function _formShipmentRequest(Varien_Object $request)
 {
     $r = new Varien_Object();
     $this->_request = $request;
     $this->_setAccessRequest($r);
     $packageItems = $request->getPackageItems();
     $shipRequest = new StdClass();
     $shipRequest->RequesterID = $r->getRequesterId();
     //$shipRequest->LabelSize = '4x8';
     if (Mage::getStoreConfig('carriers/wsaendicia/label_pdf')) {
         $shipRequest->ImageFormat = 'PDF';
         //EN-15
     }
     $shipRequest->AccountID = $r->getAccountId();
     $shipRequest->PassPhrase = $r->getPassword();
     $shipRequest->MailClass = $request->getShippingMethod();
     $shipRequest->CostCenter = 0;
     $shipRequest->Stealth = Mage::getStoreConfig('carriers/wsaendicia/stealth') ? 'TRUE' : 'FALSE';
     $shipRequest->Value = $request->getPackageValue();
     $shipRequest->Description = 'Goods purchased';
     $weightUnits = Zend_Measure_Weight::POUND;
     $shipDimensions = new stdClass();
     foreach ($request->getPackages() as $package) {
         $shipDimensions->Length = $this->_convertDimension($package['params']['length'], $package['params']['dimension_units']);
         $shipDimensions->Width = $this->_convertDimension($package['params']['width'], $package['params']['dimension_units']);
         $shipDimensions->Height = $this->_convertDimension($package['params']['height'], $package['params']['dimension_units']);
         $shipRequest->MailpieceShape = $this->checkContainerType($package['params']['container']);
         $weightUnits = $package['params']['weight_units'];
         break;
     }
     $shipRequest->WeightOz = $this->_convertWeight($request->getPackageWeight(), $weightUnits);
     $shipRequest->MailpieceDimensions = $shipDimensions;
     $isDomestic = $request->getRecipientAddressCountryCode() == self::USA_COUNTRY_ID;
     if (!$isDomestic) {
         $shipCustomsInfo = new stdClass();
         $shipCustomsInfo->ContentsType = 'Merchandise';
         $shipCustomsInfo->RestrictionType = 'None';
         $shipCustomsInfo->SendersCustomsReference = $request->getShipperContactCompanyName();
         $shipCustomsInfo->ImportersCustomsReference = $request->getRecipientContactPersonName();
         $shipCustomsInfo->LicenseNumber = '';
         $shipCustomsInfo->CertificateNumber = '';
         if ($invoice = $request->getOrderShipment()->getOrder()->getInvoice()) {
             $invoiceNum = $invoice->getIncrementId();
         } else {
             $invoiceNum = '';
         }
         $shipCustomsInfo->InvoiceNumber = $invoiceNum;
         $shipCustomsInfo->EelPfc = 'NOEEI 30.37(a)';
         $customItems = new stdClass();
         foreach ($packageItems as $item) {
             $oneCustomsItem = new stdClass();
             $oneCustomsItem->Description = $item['name'];
             $oneCustomsItem->Quantity = $item['qty'];
             $oneCustomsItem->Weight = $this->_convertWeight($item['weight'] * $item['qty'], $weightUnits);
             $oneCustomsItem->Value = $item['customs_value'] * $item['qty'];
             $customItems->CustomsItem[] = $oneCustomsItem;
         }
         $shipCustomsInfo->CustomsItems = $customItems;
         $shipRequest->CustomsInfo = $shipCustomsInfo;
         $shipRequest->CustomsCertify = 'FALSE';
         $shipRequest->CustomsSigner = '';
         $shipRequest->CustomsSendersCopy = 'true';
     }
     $shipRequest->SortType = 'Nonpresorted';
     $shipRequest->EntryFacility = "Other";
     $services = false;
     if ($isDomestic) {
         foreach ($this->getCode('delivery_conf_types') as $confCode => $description) {
             if ($request->getServices() != 'False' && $this->_mapServices($request->getServices()) == $confCode) {
                 if (!$services) {
                     $services = new stdClass();
                 }
                 $services->{$confCode} = "ON";
             }
         }
     }
     if ($request->getInsuranceRequired()) {
         if (!$services) {
             $services = new stdClass();
         }
         $services->InsuredMail = Mage::helper('wsaendicia')->getInsuranceProvider();
         $shipRequest->InsuredValue = $request->getInsuranceValue() ? $request->getInsuranceValue() : $request->getPackageValue();
     }
     if ($services) {
         $shipRequest->Services = $services;
     }
     $shipRequest->PartnerCustomerID = $request->getOrderShipment()->getOrder()->getIncrementId();
     $shipRequest->PartnerTransactionID = $request->getOrderShipment()->getOrder()->getIncrementId();
     if (Mage::getStoreConfig('carriers/wsaendicia/rubber_stamp_order')) {
         $shipRequest->RubberStamp1 = $request->getOrderShipment()->getOrder()->getIncrementId();
     }
     $rubberStamp1code = Mage::getStoreConfig('carriers/wsaendicia/rubber_stamp_1');
     $rubberStamp2code = Mage::getStoreConfig('carriers/wsaendicia/rubber_stamp_2');
     $rubberStamp3code = Mage::getStoreConfig('carriers/wsaendicia/rubber_stamp_3');
     if ($rubberStamp1code != '' || $rubberStamp2code != '' || $rubberStamp3code != '') {
         $product = new Varien_Object();
         foreach ($packageItems as $packageItem) {
             $product = Mage::getModel('catalog/product')->load($packageItem['product_id']);
             break;
         }
         try {
             if ($product->getData($rubberStamp1code)) {
                 $rubberStamp1 = $product->getAttributeText($rubberStamp1code) ? $product->getAttributeText($rubberStamp1code) : $product->getData($rubberStamp1code);
             } else {
                 $rubberStamp1 = "";
             }
             if ($product->getData($rubberStamp2code)) {
                 $rubberStamp2 = $product->getAttributeText($rubberStamp2code) ? $product->getAttributeText($rubberStamp2code) : $product->getData($rubberStamp2code);
             } else {
                 $rubberStamp2 = "";
             }
             if ($product->getData($rubberStamp3code)) {
                 $rubberStamp3 = $product->getAttributeText($rubberStamp3code) ? $product->getAttributeText($rubberStamp3code) : $product->getData($rubberStamp3code);
             } else {
                 $rubberStamp3 = "";
             }
             if ($rubberStamp1 != "") {
                 if (Mage::getStoreConfig('carriers/wsaendicia/rubber_stamp_order')) {
                     $shipRequest->RubberStamp1 = $request->getOrderShipment()->getOrder()->getIncrementId() . ": " . $rubberStamp1;
                 } else {
                     $shipRequest->RubberStamp1 = $rubberStamp1;
                 }
             }
             if ($rubberStamp2 != "") {
                 $shipRequest->RubberStamp2 = $rubberStamp2;
             }
             if ($rubberStamp3 != "") {
                 $shipRequest->RubberStamp3 = $rubberStamp3;
             }
         } catch (Exception $e) {
             Mage::logException($e);
         }
     }
     $shipRequest->FromName = $request->getShipperContactCompanyName();
     $shipRequest->ReturnAddress1 = $request->getShipperAddressStreet();
     $shipRequest->FromCity = $request->getShipperAddressCity();
     $shipRequest->FromState = $request->getShipperAddressStateOrProvinceCode();
     $shipRequest->FromPostalCode = substr($request->getShipperAddressPostalCode(), 0, 5);
     if ($isDomestic) {
         $shipRequest->FromCountry = $request->getShipperAddressCountryCode();
     }
     $shipRequest->FromPhone = $request->getShipperContactPhoneNumber();
     $shipRequest->ToName = $request->getRecipientContactPersonName();
     if ($request->getRecipientContactCompanyName()) {
         $shipRequest->ToCompany = $request->getRecipientContactCompanyName();
     }
     $shipRequest->ToAddress1 = $request->getRecipientAddressStreet();
     $shipRequest->ToCity = $request->getRecipientAddressCity();
     $shipRequest->ToState = $request->getRecipientAddressStateOrProvinceCode();
     $shipRequest->ToPostalCode = $isDomestic ? substr($request->getRecipientAddressPostalCode(), 0, 5) : substr($request->getRecipientAddressPostalCode(), 0, 15);
     if (!$isDomestic) {
         $shipRequest->ToCountryCode = $request->getRecipientAddressCountryCode();
     }
     if (!$isDomestic) {
         $shipRequest->ToCountry = Mage::getModel('directory/country')->load($request->getRecipientAddressCountryCode())->getName();
     }
     $shipRequest->ToPhone = $request->getRecipientContactPhoneNumber();
     $test = $this->getConfigFlag('sandbox_mode') ? 'YES' : "NO";
     $shipRequest->Test = $test;
     //  $shipRequest->ImageFormat = 'PDF';
     $wholeRequest = new stdClass();
     $wholeRequest->LabelRequest = $shipRequest;
     return $wholeRequest;
 }