public function hookDisplayCarrierList($params) { self::$boxDisplayed = true; $binded = unserialize(Configuration::get(self::KONFIG_PREFIX . self::KONFIG_POWIAZANIA_KURIEROW)); $config['binded'] = $binded; if (is_array($binded)) { $kodPocztowy = $params['address']->postcode; $phone = $params['address']->phone_mobile != '' ? $params['address']->phone_mobile : $params['address']->phone; $userSettings = PakomatoUserSettings::getByCustomerId($params['cookie']->id_customer); $najblizszy = array(); $najblizszyCod = array(); if (is_array($userSettings) && count($userSettings) > 0) { $userSettings = $userSettings[0]; $userMachine = unserialize(base64_decode($userSettings->machine)); $userMachineCod = unserialize(base64_decode($userSettings->machine_cod)); if (Paczkomat::czyPaczkomatIstnieje($userMachine['name'], $userMachine['town']) && Paczkomat::czyPaczkomatIstnieje($userMachineCod['name'], $userMachineCod['town'])) { $najblizszy = $userMachine; $najblizszyCod = $userMachineCod; $phone = $userSettings->phone; } else { $najblizszy = Paczkomat::znajdzNajblizszy($kodPocztowy, true); $najblizszyCod = $najblizszy; $userSettings->machine = base64_encode(serialize($najblizszy)); $userSettings->machine_cod = base64_encode(serialize($najblizszy)); $userSettings->phone = $phone; $userSettings->save(); } } else { $najblizszy = Paczkomat::znajdzNajblizszy($kodPocztowy, true); $najblizszyCod = $najblizszy; $userSettings = new PakomatoUserSettings(); $userSettings->id_customer = $params['cookie']->id_customer; $userSettings->machine = base64_encode(serialize($najblizszy)); $userSettings->machine_cod = base64_encode(serialize($najblizszy)); $userSettings->phone = $phone; $userSettings->save(); } $this->context->smarty->assign(array('najblizszy' => $najblizszy, 'najblizszy_cod' => $najblizszyCod, 'carrier' => $params['cart']->id_carrier, 'phone' => $phone, 'config' => json_encode($config), 'ajax_url' => $this->context->link->getModuleLink('pakomato', 'ajax', array(), Configuration::get('PS_SSL_ENABLED') ? true : false), "moduleDir" => _MODULE_DIR_ . $this->name . "/", "carrier_selector" => Configuration::get(self::KONFIG_PREFIX . self::KONFIG_SELEKTOR_KURIEROW), "payment_selector" => Configuration::get(self::KONFIG_PREFIX . self::KONFIG_SELEKTOR_PLATNOSCI), "button_selector" => Configuration::get(self::KONFIG_PREFIX . self::KONFIG_SELEKTOR_PRZYCISKU), "np_message" => self::DOM_BRAK_TELEFONU_KOMUNIKAT, "opc" => Configuration::get(self::KONFIG_PRESTA_OPC))); return $this->display(PACZKOMATY_PATH, "carriersList.tpl"); } }
protected function ajax_createPackageAction() { $orderId = (int) Tools::getValue("id_order"); $order = new Order($orderId); $customer = new Customer($order->id_customer); $emp = new Employee($this->mCookie->id_employee); $pmOrder = PakomatoOrder::getByOrderId($orderId); $machine = unserialize(base64_decode($pmOrder->paczkomat)); $pmPack = new PakomatoPack(); $pmPack->customer_email = $customer->email; $pmPack->customer_phone = $pmOrder->customer_phone; $pmPack->id_order = $orderId; $pmPack->insurance = $pmOrder->insurance; $pmPack->pack_status = 0; $pmPack->selfsend = $pmOrder->selfsend; $pmPack->sticker_file = ''; $pmPack->cod = $pmOrder->cod; $pmPack->size = $pmOrder->size; //sprawdzanie paczkomatu klienta if (Paczkomat::czyPaczkomatIstnieje($machine['name'], $pmPack->cod > 0 ? true : false)) { $pmPack->customer_machine = $pmOrder->paczkomat; } else { if ($pmPack->cod > 0) { $this->jsonResponse(array("result" => "error", "message" => "Wybrany przez kienta paczkomat '" . $machine['name'] . "' nie obsługuje pobrania. Paczka nie została utworzona")); } else { $this->jsonResponse(array("result" => "error", "message" => "Wybrany przez klienta paczkomat '" . $machine['name'] . "' nie istnieje w systemie Inpost. Paczka nie została utworzona")); } } $senderMachineCode = ''; //sprawdzanie paczkomatu do wysyłki if ($pmPack->selfsend > 0) { $sendMachine = unserialize(base64_decode($pmOrder->sender_machine)); $senderMachineCode = $sendMachine['name']; $send = Paczkomat::pobierzDanePaczkomatu($senderMachineCode); if ($send['result'] == "ok") { $pmPack->sender_machine = base64_encode(serialize($send['paczkomat'])); } else { $this->jsonResponse(array("result" => "error", "message" => "Wybrany paczkomat do wysyłki '" . $senderMachineCode . "' nie istnieje w systemie Inpost. Paczka nie została utworzona")); } } else { $pmPack->sender_machine = ""; } $ref = "Zamówienie nr: " . sprintf(" %06d", $orderId); if (Configuration::get(self::KONFIG_PREFIX . self::KONFIG_REFETENCJA_TYP_INDEX) == 1 && isset($order->reference)) { $ref = "Zamówienie: " . $order->reference; } $config = array('customer_email' => $pmPack->customer_email, 'customer_phone' => $pmPack->customer_phone, 'customer_machine' => $machine['name'], 'size' => $pmPack->size, 'insurance' => $pmPack->insurance, 'cod' => $pmPack->cod, 'selfsend' => $pmOrder->selfsend, 'order_id' => $ref, 'sender_fname' => $emp->firstname, 'sender_lname' => $emp->lastname, 'sender_email' => Configuration::get($this->name . "_login"), 'sender_login' => Configuration::get($this->name . "_login"), 'sender_pass' => Configuration::get($this->name . "_haslo"), 'sender_machine' => $senderMachineCode, 'sender_data' => unserialize(base64_decode(Configuration::get(self::KONFIG_PREFIX . self::KONFIG_DANE_NADAWCY)))); $res = Paczkomat::wygenerujPaczke($config); if ($res['result'] == "ok") { $pmPack->tracking_number = $res['createdPack']['packcode']; if ($pmPack->selfsend > 0) { $pmPack->send_code = $res['createdPack']['customerdeliveringcode']; } $pmPack->save(); //PakomatoPack::updateInpostStatus($pmPack->id); } $this->jsonResponse($res); }