예제 #1
0
 public static function getAreas()
 {
     $data = new Address_getAreas();
     $data->setRef('7150813d-9b87-11de-822f-000c2965ae0e');
     $data->setPage(1);
     return Address::getAreas($data);
 }
예제 #2
0
 public function initData()
 {
     $this->initAreas(Address::getAreas()->data);
     $this->initCities(Address::getCities()->data);
     $this->initWarehouses(Address::getWarehouses()->data);
     $this->dateInit = new DateTime();
 }
예제 #3
0
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function npSync()
 {
     Config::setApiKey(Setting::get('integration.np'));
     $unitArr = Address::getWarehouses();
     $adrArr = Address::getCities();
     NPCity::truncate();
     NPUnit::truncate();
     foreach ($adrArr->data as $value) {
         NPCity::create(['name' => $value->DescriptionRu, 'ref' => $value->Ref]);
     }
     foreach ($unitArr->data as $value) {
         NPUnit::create(['name' => $value->DescriptionRu, 'ref' => $value->CityRef]);
     }
 }
예제 #4
0
 public function initData()
 {
     Address::batch();
     $data = [Address::getAreas() => 'Areas', Address::getCities() => 'Cities', Address::getWarehouses() => 'Warehouses'];
     $result = Address::getResponseBatch();
     /** @var DataContainerResponse $itemResponse */
     foreach ($result as $key => $itemResponse) {
         if (!$itemResponse->success) {
             return;
         }
         $this->{'init' . $data[$key]}($itemResponse->data);
     }
     $this->dateInit = new DateTime();
 }
예제 #5
0
파일: NPSync.php 프로젝트: skosm/LaraShop
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     //
     Config::setApiKey(Setting::get('integration.np'));
     NPCity::truncate();
     $this->info('NP City table cleared');
     NPUnit::truncate();
     $this->info('NP Unit table cleared');
     $unitArr = Address::getWarehouses();
     $this->info('NP unit fetched');
     $adrArr = Address::getCities();
     $this->info('NP city fethed');
     foreach ($adrArr->data as $value) {
         NPCity::create(['name' => $value->DescriptionRu, 'ref' => $value->Ref]);
     }
     $this->info('City table filled.');
     foreach ($unitArr->data as $value) {
         NPUnit::create(['name' => $value->DescriptionRu, 'ref' => $value->CityRef]);
     }
     $this->info('Units table filled');
     $this->info('NP SYNC SUCCESSFULL!');
 }
예제 #6
0
 public static function createEN()
 {
     // Выбираем город отправителя
     $data = new \NovaPoshta\MethodParameters\Address_getCities();
     $data->setFindByString('Полтава');
     $result = \NovaPoshta\ApiModels\Address::getCities($data);
     $citySender = $result->data[0]->Ref;
     // Выбираем город получателя
     $result = \NovaPoshta\ApiModels\Address::getCities();
     // список городов
     $cityRecipient = $result->data[60]->Ref;
     // Выбираем тип контрагента
     $result = \NovaPoshta\ApiModels\Common::getTypesOfCounterparties();
     $counterpartyType = $result->data[1]->Ref;
     // со списка выбираем тип PrivatePerson
     // Создаем контрагента получателя
     $counterparty = new \NovaPoshta\ApiModels\Counterparty();
     $counterparty->setCounterpartyProperty(\NovaPoshta\ApiModels\Counterparty::RECIPIENT);
     $counterparty->setCityRef($cityRecipient);
     $counterparty->setCounterpartyType($counterpartyType);
     $counterparty->setFirstName('Пилипко');
     $counterparty->setLastName('Вася');
     $counterparty->setMiddleName('Сергеевич');
     $counterparty->setPhone('+380661122333');
     $counterparty->setEmail('*****@*****.**');
     $result = $counterparty->save();
     $counterpartyRecipient = $result->data[0]->Ref;
     // Если нет контрагента отправителя в городе Полтава, создаем там контрагента отправителя. Контрагент
     // создастся через несколько минут
     $data = new \NovaPoshta\MethodParameters\Counterparty_cloneLoyaltyCounterpartySender();
     $data->setCityRef($citySender);
     $result = \NovaPoshta\ApiModels\Counterparty::cloneLoyaltyCounterpartySender($data);
     // Если у Вас есть контрагент отправитель, то получаем его так же как контрагента получателя, только сюда:
     // setCounterpartyProperty передаем \NovaPoshta\ApiModels\Counterparty::SENDER.
     // Методом cloneLoyaltyCounterpartySender можно использовать только если Вы клиент лояльности, если Вы
     // корпоративный клиент, то у Вас уже должен быть контрагент отправитель в нужном городе.
     // Теперь получим контрагента отправителя
     $data = new \NovaPoshta\MethodParameters\Counterparty_getCounterparties();
     $data->setCityRef($citySender);
     $data->setCounterpartyProperty(\NovaPoshta\ApiModels\Counterparty::SENDER);
     $result = \NovaPoshta\ApiModels\Counterparty::getCounterparties($data);
     $counterpartySender = $result->data[0]->Ref;
     // Получим контактных персон для контрагентов
     $data = new \NovaPoshta\MethodParameters\Counterparty_getCounterpartyContactPersons();
     $data->setRef($counterpartySender);
     $result = \NovaPoshta\ApiModels\Counterparty::getCounterpartyContactPersons($data);
     $contactPersonSender = $result->data[0]->Ref;
     $data = new \NovaPoshta\MethodParameters\Counterparty_getCounterpartyContactPersons();
     $data->setRef($counterpartyRecipient);
     $result = \NovaPoshta\ApiModels\Counterparty::getCounterpartyContactPersons($data);
     $contactPersonRecipient = $result->data[0]->Ref;
     // Для контрагента отправителя получим склад отправки
     $data = new \NovaPoshta\MethodParameters\Address_getWarehouses();
     $data->setCityRef($citySender);
     $result = \NovaPoshta\ApiModels\Address::getWarehouses($data);
     $addressSender = $result->data[5]->Ref;
     // Cоздадим адрес для получателя
     $address = new \NovaPoshta\ApiModels\Address();
     $address->setCounterpartyRef($counterpartyRecipient);
     $address->setBuildingNumber('2/2');
     $address->setFlat('22');
     $address->setNote('Первый подъезд');
     $address->setStreetRef('c55c9056-4148-11dd-9198-001d60451983');
     $result = $address->save();
     $addressRecipient = $result->data[0]->Ref;
     // Теперь получим тип услуги
     $result = \NovaPoshta\ApiModels\Common::getServiceTypes();
     $serviceType = $result->data[3]->Ref;
     // Выбрали: WarehouseDoors
     // Выбираем плательщика
     $result = \NovaPoshta\ApiModels\Common::getTypesOfPayers();
     $payerType = $result->data[1]->Ref;
     // Выбрали: Recipient
     // Форму оплаты
     $result = \NovaPoshta\ApiModels\Common::getPaymentForms();
     $paymentMethod = $result->data[1]->Ref;
     // Выбрали: Cash
     // Тип груза
     $result = \NovaPoshta\ApiModels\Common::getCargoTypes();
     $cargoType = $result->data[0]->Ref;
     // Выбрали: Cargo
     // Мы выбрали все данные которые нам нужны для создания ЭН. Создаем ЭН:
     // Контрагент отправитель
     $sender = new \NovaPoshta\Models\CounterpartyContact();
     $sender->setCity($citySender)->setRef($counterpartySender)->setAddress($addressSender)->setContact($contactPersonSender)->setPhone('+380660000000');
     // Контрагент получатель
     $recipient = new \NovaPoshta\Models\CounterpartyContact();
     $recipient->setCity($cityRecipient)->setRef($counterpartyRecipient)->setAddress($addressRecipient)->setContact($contactPersonRecipient)->setPhone('+380660000000');
     // Выбираем тип
     $result = \NovaPoshta\ApiModels\Common::getTypesOfPayersForRedelivery();
     $redeliveryPayer = $result->data[1]->Ref;
     // Выбираем тип обратной доставки
     $result = \NovaPoshta\ApiModels\Common::getBackwardDeliveryCargoTypes();
     $redeliveryCargoType = $result->data[1]->Ref;
     // Обратная доставка ценные бумаги
     $backwardDeliveryData = new \NovaPoshta\Models\BackwardDeliveryData();
     $backwardDeliveryData->setPayerType($redeliveryPayer);
     $backwardDeliveryData->setCargoType($redeliveryCargoType);
     $backwardDeliveryData->setRedeliveryString(452);
     $internetDocument = new \NovaPoshta\ApiModels\InternetDocument();
     $internetDocument->setSender($sender)->setRecipient($recipient)->setServiceType($serviceType)->setPayerType($payerType)->setPaymentMethod($paymentMethod)->setCargoType($cargoType)->setWeight(1)->setSeatsAmount(1)->setCost(452)->setDescription('ТЦ')->setDateTime('10.09.2015')->addBackwardDeliveryData($backwardDeliveryData);
     $result = $internetDocument->save();
     $refInternetDocument = $result->data[0]->Ref;
     // Получить ссылку на печать ЭН
     $data = new \NovaPoshta\MethodParameters\InternetDocument_printDocument();
     $data->addDocumentRef($refInternetDocument);
     $data->setCopies(\NovaPoshta\ApiModels\InternetDocument::PRINT_COPIES_FOURFOLD);
     $link = \NovaPoshta\ApiModels\InternetDocument::printDocument($data);
     // После печати ЭН, клеем ЭН на коробку и отправляем груз))
     return $link;
 }