// ПОДАТЕЛ: Клиент на EPS // ПОЛУЧАТЕЛ: ИВАНОВИ ООД, с лице за контакт ИВАН ИВАНОВ, тел. 0888 888 888 //------------------------------------------------------------------------------------------------------------------- // Данни за подател $sender = new ParamClientData(); $sender->setClientId($senderClientData->getClientId()); $sender->setContactName($clientConfiguration->contactName); $senderPhoneNumber = new ParamPhoneNumber(); $senderPhoneNumber->setNumber($clientConfiguration->contactPhone); $sender->setPhones(array(0 => $senderPhoneNumber)); echo "<br><br><br><br>"; echo "Данни за подател:<br>"; echo "-----------------<br>"; var_dump($sender); // Данни за получател $receiver = new ParamClientData(); //Предвиждаме пратката да е до поискване, в този случай не подаваме адрес на получател, //защото адреса на получателя е адреса на офиса до пискване //receiver.setAddress(receiverAddress); $receiver->setPartnerName($recieverData->partnerName); $paramPhoneNumber = new ParamPhoneNumber(); $paramPhoneNumber->setNumber($recieverData->contactPhone); $receiver->setPhones(array(0 => $paramPhoneNumber)); $receiver->setContactName($recieverData->contactName); echo "<br><br>"; echo "Данни за получател:<br>"; echo "-------------------<br>"; var_dump($receiver); /* // Данни за товарителница echo "<br><br><br><br>";
/** * Return standard class from this class * @return stdClass */ public function toStdClass() { $stdClass = new stdClass(); $stdClass->billOfLading = $this->_billOfLading; $stdClass->takingDate = $this->_takingDate; $stdClass->serviceTypeId = $this->_serviceTypeId; $stdClass->officeToBeCalledId = $this->_officeToBeCalledId; if (isset($this->_optionsBeforePayment)) { $stdClass->optionsBeforePayment = $this->_optionsBeforePayment->toStdClass(); } $stdClass->fixedTimeDelivery = $this->_fixedTimeDelivery; $stdClass->deferredDeliveryWorkDays = $this->_deferredDeliveryWorkDays; $stdClass->backDocumentsRequest = $this->_backDocumentsRequest; $stdClass->backReceiptRequest = $this->_backReceiptRequest; $stdClass->willBringToOffice = $this->_willBringToOffice; $stdClass->willBringToOfficeId = $this->_willBringToOfficeId; $stdClass->specialDeliveryId = $this->_specialDeliveryId; $stdClass->amountInsuranceBase = $this->_amountInsuranceBase; $stdClass->amountCodBase = $this->_amountCodBase; $stdClass->payCodToThirdParty = $this->_payCodToThirdParty; $stdClass->retMoneyTransferReqAmount = $this->_retMoneyTransferReqAmount; $stdClass->retThirdPartyPayer = $this->_retThirdPartyPayer; $stdClass->parcelsCount = $this->_parcelsCount; if (isset($this->_size)) { $stdClass->size = $this->_size->toStdClass(); } $stdClass->weightDeclared = $this->_weightDeclared; $stdClass->contents = $this->_contents; $stdClass->packing = $this->_packing; $arrStdClassParamPackings = array(); if (isset($this->_packings)) { if (is_array($this->_packings)) { for ($i = 0; $i < count($this->_packings); $i++) { $arrStdClassParamPackings[$i] = $this->_packings[$i]->toStdClass(); } } else { $arrStdClassParamPackings[0] = $this->_packings->toStdClass(); } } $stdClass->packings = $arrStdClassParamPackings; $stdClass->packId = $this->_packId; $stdClass->documents = $this->_documents; $stdClass->fragile = $this->_fragile; $stdClass->palletized = $this->_palletized; if (isset($this->_sender)) { $stdClass->sender = $this->_sender->toStdClass(); } if (isset($this->_receiver)) { $stdClass->receiver = $this->_receiver->toStdClass(); } $stdClass->payerType = $this->_payerType; $stdClass->payerRefId = $this->_payerRefId; $stdClass->payerTypeInsurance = $this->_payerTypeInsurance; $stdClass->payerTypePackings = $this->_payerTypePackings; $stdClass->payerRefInsuranceId = $this->_payerRefInsuranceId; $stdClass->payerRefPackingsId = $this->_payerRefPackingsId; $stdClass->noteClient = $this->_noteClient; if (isset($this->_discCalc)) { $stdClass->discCalc = $this->_discCalc->toStdClass(); } $stdClass->retToClientId = $this->_retToClientId; $stdClass->ref1 = $this->_ref1; $stdClass->ref2 = $this->_ref2; $stdClass->clientSystemId = $this->_clientSystemId; $arrStdClassParamParcelInfo = array(); if (isset($this->_parcels)) { if (is_array($this->_parcels)) { for ($i = 0; $i < count($this->_parcels); $i++) { $arrStdClassParamParcelInfo[$i] = $this->_parcels[$i]->toStdClass(); } } else { $arrStdClassParamParcelInfo[0] = $this->_parcels->toStdClass(); } } $stdClass->parcels = $arrStdClassParamParcelInfo; $stdClass->skipAutomaticParcelsCreation = $this->_skipAutomaticParcelsCreation; $stdClass->pendingParcelsDescription = $this->_pendingParcelsDescription; $stdClass->pendingShipmentDescription = $this->_pendingShipmentDescription; $arrStdClassParamReturnServiceRequest = array(); if (isset($this->_retServicesRequest)) { if (is_array($this->_retServicesRequest)) { for ($i = 0; $i < count($this->_retServicesRequest); $i++) { $arrStdClassParamReturnServiceRequest[$i] = $this->_retServicesRequest[$i]->toStdClass(); } } else { $arrStdClassParamReturnServiceRequest[0] = $this->_retServicesRequest->toStdClass(); } } $stdClass->retServicesRequest = $arrStdClassParamReturnServiceRequest; if (isset($this->_retShipmentRequest)) { $stdClass->retShipmentRequest = $this->_retShipmentRequest->toStdClass(); } return $stdClass; }
/** Creates bill of loading * @param $data * @param $order * @return array */ public function createBillOfLading($data, $order) { require_once __DIR__ . '/lib/speedy-eps-lib/ver01/ParamCalculation.class.php'; $this->_error = ''; $bol = array(); if (isset($this->resultLogin)) { try { $sender = new \ParamClientData(); $sender->setClientId($this->resultLogin->getClientId()); if ($this->config->get('speedy_telephone')) { $senderPhone = new \ParamPhoneNumber(); $senderPhone->setNumber($this->config->get('speedy_telephone')); $sender->setPhones(array(0 => $senderPhone)); } $receiverAddress = new \ParamAddress(); $receiverAddress->setSiteId($data['city_id']); if ($data['quarter']) { $receiverAddress->setQuarterName($data['quarter']); } if ($data['quarter_id']) { $receiverAddress->setQuarterId($data['quarter_id']); } if ($data['street']) { $receiverAddress->setStreetName($data['street']); } if ($data['street_id']) { $receiverAddress->setStreetId($data['street_id']); } if ($data['street_no']) { $receiverAddress->setStreetNo($data['street_no']); } if ($data['block_no']) { $receiverAddress->setBlockNo($data['block_no']); } if ($data['entrance_no']) { $receiverAddress->setEntranceNo($data['entrance_no']); } if ($data['floor_no']) { $receiverAddress->setFloorNo($data['floor_no']); } if ($data['apartment_no']) { $receiverAddress->setApartmentNo($data['apartment_no']); } if ($data['note']) { $receiverAddress->setAddressNote($data['note']); } $receiver = new \ParamClientData(); $receiver->setPartnerName($order['firstname'] . ' ' . $order['lastname']); $receiverPhone = new \ParamPhoneNumber(); $receiverPhone->setNumber($order['telephone']); $receiver->setPhones(array(0 => $receiverPhone)); $receiver->setEmail($order['email']); $picking = new \ParamPicking(); $picking->setClientSystemId(1310221100); //OpenCart $picking->setRef1($order['order_id']); if ($data['depth'] || $data['height'] || $data['width']) { $size = new Size(); if ($data['depth']) { $size->setDepth($data['depth']); } if ($data['height']) { $size->setHeight($data['height']); } if ($data['width']) { $size->setWidth($data['width']); } $picking->setSize($size); } if (!empty($data['fixed_time'])) { $picking->setFixedTimeDelivery($data['fixed_time']); } $picking->setServiceTypeId($data['shipping_method_id']); if ($data['to_office'] && $data['office_id']) { $picking->setOfficeToBeCalledId($data['office_id']); } else { $receiver->setAddress($receiverAddress); $picking->setOfficeToBeCalledId(null); } $picking->setBackDocumentsRequest($this->config->get('speedy_back_documents')); $picking->setBackReceiptRequest($this->config->get('speedy_back_receipt')); if ($this->config->get('speedy_from_office') && $this->config->get('speedy_office_id')) { $picking->setWillBringToOffice(true); $picking->setWillBringToOfficeId($this->config->get('speedy_office_id')); } else { $picking->setWillBringToOffice(false); } $picking->setParcelsCount($data['count']); $picking->setWeightDeclared($data['weight']); $picking->setContents($data['contents']); $picking->setPacking($data['packing']); $picking->setPackId(null); $picking->setDocuments($this->config->get('speedy_documents')); $picking->setPalletized(false); $payerType = $this->getPayerType($order['order_id'], $data['shipping_method_cost']); if ($data['insurance']) { if ($data['fragile']) { $picking->setFragile(true); } else { $picking->setFragile(false); } $picking->setAmountInsuranceBase($data['totalNoShipping']); /* if ($this->config->get('speedy_pricing') == 'free' || $this->config->get('speedy_pricing') == 'fixed') { $picking->setPayerTypeInsurance($payerType); } else { $picking->setPayerTypeInsurance($payerType); } */ $picking->setPayerTypeInsurance($payerType); } else { $picking->setFragile(false); } $picking->setSender($sender); $picking->setReceiver($receiver); /* if ($this->config->get('speedy_pricing') == 'free' || $this->config->get('speedy_pricing') == 'fixed') { $picking->setPayerType($payerType); } else { $picking->setPayerType($payerType); } */ $picking->setPayerType($payerType); $picking->setTakingDate($data['taking_date']); if ($data['deffered_days']) { $picking->setDeferredDeliveryWorkDays($data['deffered_days']); } if ($data['client_note']) { $picking->setNoteClient($data['client_note']); } if ($data['cod']) { $picking->setAmountCodBase($data['total']); } else { $picking->setAmountCodBase(0); } $result = $this->ePSFacade->createBillOfLading($picking); $parcels = $result->getGeneratedParcels(); $bol['bol_id'] = $parcels[0]->getParcelId(); $bol['total'] = $result->getAmounts()->getTotal(); } catch (\Exception $e) { $this->_error = $e->getMessage(); $this->log->addError('Speedy :: createBillOfLading :: ' . $e->getMessage()); } } return $bol; }