/** * @param \AvaTax\GetTaxRequest $soapRequest * * @return array */ public function normalizeGetTaxRequest(AvaTax\GetTaxRequest $soapRequest) { $isDevMode = Mage::getIsDeveloperMode(); if ($isDevMode) { Mage::setIsDeveloperMode(false); } $soapRequest->prepare(); $request = array('CompanyCode' => $soapRequest->getCompanyCode(), 'DocType' => $soapRequest->getDocType(), 'DocCode' => $soapRequest->getDocCode(), 'Commit' => $soapRequest->getCommit(), 'DetailLevel' => $soapRequest->getDetailLevel(), 'DocDate' => $soapRequest->getDocDate(), 'CustomerCode' => $soapRequest->getCustomerCode(), 'CurrencyCode' => $soapRequest->getCurrencyCode(), 'Discount' => $soapRequest->getDiscount(), 'BusinessIdentificationNo' => $soapRequest->getBusinessIdentificationNo(), 'Addresses' => array(), 'Lines' => array(), 'TaxOverride' => array()); foreach ($soapRequest->getAddresses() as $soapAddress) { /** @var AvaTax\Address $soapAddress */ $request['Addresses'][] = array('AddressCode' => $soapAddress->getAddressCode(), 'Line1' => $soapAddress->getLine1(), 'Line2' => $soapAddress->getLine2(), 'Line3' => $soapAddress->getLine3(), 'City' => $soapAddress->getCity(), 'Region' => $soapAddress->getRegion(), 'Country' => $soapAddress->getCountry(), 'PostalCode' => $soapAddress->getPostalCode()); } foreach ($soapRequest->getLines() as $soapLine) { /** @var AvaTax\Line $soapLine */ $request['Lines'][] = array("LineNo" => $soapLine->getNo(), "ItemCode" => $soapLine->getItemCode(), "Qty" => $soapLine->getQty(), "Amount" => $soapLine->getAmount(), "OriginCode" => $soapLine->getOriginAddress()->getAddressCode(), "DestinationCode" => $soapLine->getDestinationAddress()->getAddressCode(), "Description" => $soapLine->getDescription(), "TaxCode" => $soapLine->getTaxCode(), "Discounted" => $soapLine->getDiscounted(), "TaxIncluded" => $soapLine->getTaxIncluded(), "Ref1" => $soapLine->getRef1(), "Ref2" => $soapLine->getRef2()); } if ($soapRequest->getTaxOverride() instanceof AvaTax\TaxOverride) { /** @var AvaTax\TaxOverride $override */ $override = $soapRequest->getTaxOverride(); $request['TaxOverride']['TaxOverrideType'] = $override->getTaxOverrideType(); $request['TaxOverride']['TaxDate'] = $override->getTaxDate(); $request['TaxOverride']['TaxAmount'] = $override->getTaxAmount(); $request['TaxOverride']['Reason'] = $override->getReason(); } if ($isDevMode) { Mage::setIsDeveloperMode(true); } return $this->recursiveKeySort($request); }