1022 lines
47 KiB
PHP
1022 lines
47 KiB
PHP
<?php
|
||
/**
|
||
* 2007-2019 PrestaShop
|
||
*
|
||
* NOTICE OF LICENSE
|
||
*
|
||
* This source file is subject to the Academic Free License (AFL 3.0)
|
||
* that is bundled with this package in the file LICENSE.txt.
|
||
* It is also available through the world-wide-web at this URL:
|
||
* http://opensource.org/licenses/afl-3.0.php
|
||
* If you did not receive a copy of the license and are unable to
|
||
* obtain it through the world-wide-web, please send an email
|
||
* to license@prestashop.com so we can send you a copy immediately.
|
||
*
|
||
* DISCLAIMER
|
||
*
|
||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||
* versions in the future. If you wish to customize PrestaShop for your
|
||
* needs please refer to http://www.prestashop.com for more information.
|
||
*
|
||
* @author PrestaShop SA <contact@prestashop.com>
|
||
* @copyright 2007-2019 PrestaShop SA
|
||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||
* International Registered Trademark & Property of PrestaShop SA
|
||
*/
|
||
|
||
if (!defined('_PS_VERSION_')) {
|
||
exit;
|
||
}
|
||
|
||
class GeisLogistic extends Module
|
||
{
|
||
protected $config_form = false;
|
||
|
||
public function __construct()
|
||
{
|
||
$this->name = 'GeisLogistic';
|
||
$this->tab = 'shipping_logistics';
|
||
$this->version = '1.0.0';
|
||
$this->author = 'europasaz.pl';
|
||
$this->need_instance = 1;
|
||
|
||
/**
|
||
* Set $this->bootstrap to true if your module is compliant with bootstrap (PrestaShop 1.6)
|
||
*/
|
||
$this->bootstrap = true;
|
||
|
||
parent::__construct();
|
||
|
||
$this->displayName = $this->l('GeisLogistic');
|
||
$this->description = $this->l('Module to integrate Geis Logistic with PrestaShop');
|
||
$this->ps_versions_compliancy = array('min' => '1.5', 'max' => _PS_VERSION_);
|
||
$this->confirmUninstall = $this->l('Are you shure?');
|
||
$this->secure_key = $this->name;
|
||
}
|
||
|
||
public function install()
|
||
{
|
||
if (extension_loaded('curl') == false)
|
||
{
|
||
$this->_errors[] = $this->l('You have to enable the cURL extension on your server to install this module');
|
||
return false;
|
||
}
|
||
Configuration::updateValue('GEISLOGISTIC_TEST', '1') //TRYB TEST RADIO
|
||
&& Configuration::updateValue('GEISLOGISTIC_COUNTRY', 'PL') //KRAJ S ok lang i url
|
||
&& Configuration::updateValue('GEISLOGISTIC_TYPE', '10') //TYP NADANIA
|
||
&& Configuration::updateValue('GEISLOGISTIC_CHANNEL', '1') //DistributionChannel
|
||
//&& Configuration::updateValue('GEISLOGISTIC_ROD', '0') //zwrot dokumentow
|
||
&& Configuration::updateValue('GEISLOGISTIC_COUNTER', '1') //ilosc paczek
|
||
//&& Configuration::updateValue('GEISLOGISTIC_ROD_TXT', 'RUA') //zwrot dokumentow
|
||
&& Configuration::updateValue('GEISLOGISTIC_DESCRIPTION', 'DESCRIPTION')
|
||
&& Configuration::updateValue('GEISLOGISTIC_WRAP', 'FP')
|
||
&& Configuration::updateValue('GEISLOGISTIC_WEIGHT', '5')
|
||
&& Configuration::updateValue('GEISLOGISTIC_WEIGHT_1', '5')
|
||
&& Configuration::updateValue('GEISLOGISTIC_WEIGHT_2', '5')
|
||
&& Configuration::updateValue('GEISLOGISTIC_FORMAT', '1')
|
||
&& Configuration::updateValue('GEISLOGISTIC_RESOLUTION', '200');
|
||
return parent::install() &&
|
||
$this->registerHook('adminOrder');
|
||
}
|
||
|
||
public function uninstall()
|
||
{
|
||
Configuration::deleteByName('GEISLOGISTIC_TEST')
|
||
&& Configuration::deleteByName('GEISLOGISTIC_CODE') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_API') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_EMAILSENDER')
|
||
&& Configuration::deleteByName('GEISLOGISTIC_NAMESENDER')
|
||
&& Configuration::deleteByName('GEISLOGISTIC_PHONESENDER')
|
||
&& Configuration::deleteByName('GEISLOGISTIC_COUNTRY') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_TYPE') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_CHANNEL') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_NOTE') // NOTATKA MAX50 ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_NOTEDRIVER') // NOTATKA KIEROWCA MAX50 ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_OID') //ok
|
||
//&& Configuration::deleteByName('GEISLOGISTIC_ROD') // ok
|
||
//&& Configuration::deleteByName('GEISLOGISTIC_ROD_TXT') //ok
|
||
//&& Configuration::deleteByName('GEISLOGISTIC_ROD_CODE') // OK
|
||
//&& Configuration::deleteByName('GEISLOGISTIC_ADL') // ok
|
||
//&& Configuration::deleteByName('GEISLOGISTIC_ADL_TXT') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_ADZ') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_ADZ_TXT') // ok
|
||
//&& Configuration::deleteByName('GEISLOGISTIC_AOZ') //ok
|
||
//&& Configuration::deleteByName('GEISLOGISTIC_AOZ_TXT') // ok
|
||
//&& Configuration::deleteByName('GEISLOGISTIC_APZ') // ok
|
||
//&& Configuration::deleteByName('GEISLOGISTIC_APZ_TXT') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_COD') // ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_COD_IBAN') // ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_POJ') // insurance
|
||
&& Configuration::deleteByName('GEISLOGISTIC_POJ_VAL') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_POJ_ISO') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_AVI') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_SMS') // ok
|
||
//&& Configuration::deleteByName('GEISLOGISTIC_GAR')//ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_EMA')//ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_DON')//ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_COUNTER')// il paczek standard 1
|
||
&& Configuration::deleteByName('GEISLOGISTIC_DESCRIPTION')//ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_WRAP')//ok wrap list services
|
||
&& Configuration::deleteByName('GEISLOGISTIC_WEIGHT')// waga wymagana dla pl
|
||
&& Configuration::deleteByName('GEISLOGISTIC_WEIGHT_1') //ok
|
||
&& Configuration::deleteByName('GEISLOGISTIC_WEIGHT_2')
|
||
&& Configuration::deleteByName('GEISLOGISTIC_FORMAT')
|
||
&& Configuration::deleteByName('GEISLOGISTIC_RESOLUTION'); // szerokosc w m 0.4 tylko 1
|
||
return parent::uninstall();
|
||
}
|
||
|
||
/**
|
||
* Load the configuration form
|
||
*/
|
||
public function getContent()
|
||
{
|
||
/**
|
||
* If values have been submitted in the form, process.
|
||
*/
|
||
$output = '';
|
||
|
||
$this->context->controller->addJqueryUI('ui.slider');
|
||
$this->context->controller->addJqueryUI('ui.datepicker');
|
||
|
||
$this->context->controller->addCSS($this->_path . 'css/jquery-ui-timepicker-addon.css', 'all');
|
||
$this->context->controller->addJS($this->_path . 'js/jquery-ui-timepicker-addon.js');
|
||
|
||
|
||
if (((bool)Tools::isSubmit('submitGeisLogisticModule')) == true) {
|
||
$this->postProcess();
|
||
$output .= $this->displayConfirmation($this->l('Settings updated'));
|
||
}
|
||
$this->uri = ToolsCore::getCurrentUrlProtocolPrefix() . $this->context->shop->domain_ssl . $this->context->shop->physical_uri;
|
||
$get_file_url = $this->uri . 'modules/GeisLogistic/views/lib/';
|
||
|
||
$this->context->smarty->assign('geisurl',$get_file_url);
|
||
$this->context->smarty->assign('geistoken', $this->secure_key);
|
||
$this->context->smarty->assign('healty', $this->ishealty());
|
||
$this->context->smarty->assign('wraplist', $this->WrapList());
|
||
$this->context->smarty->assign('services', $this->ServiceList());
|
||
$output .= $this->context->smarty->fetch($this->local_path .'views/templates/admin/module.tpl');
|
||
|
||
return $output.$this->renderForm();
|
||
}
|
||
|
||
/**
|
||
* Create the form that will be displayed in the configuration of your module.
|
||
*/
|
||
protected function renderForm()
|
||
{
|
||
$helper = new HelperForm();
|
||
|
||
$helper->show_toolbar = false;
|
||
$helper->table = $this->table;
|
||
$helper->module = $this;
|
||
$helper->default_form_language = $this->context->language->id;
|
||
$helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG', 0);
|
||
|
||
$helper->identifier = $this->identifier;
|
||
$helper->submit_action = 'submitGeisLogisticModule';
|
||
$helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false)
|
||
.'&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name;
|
||
$helper->token = Tools::getAdminTokenLite('AdminModules');
|
||
|
||
$helper->tpl_vars = array(
|
||
'fields_value' => $this->getConfigFormValues(), /* Add values for your inputs */
|
||
'languages' => $this->context->controller->getLanguages(),
|
||
'id_language' => $this->context->language->id,
|
||
);
|
||
|
||
return $helper->generateForm(array($this->getConfigForm()));
|
||
}
|
||
|
||
|
||
protected function createSelectOptions()
|
||
{
|
||
$selectOption['country'] = array(
|
||
array('id_option' => 'PL', 'name' => $this->l('Poland')),
|
||
array('id_option' => 'CZ', 'name' => $this->l('Czech')),
|
||
array('id_option' => 'SK', 'name' => $this->l('Slovakia')),
|
||
);
|
||
$selectOption['count'] = array(
|
||
array('id_option' => '1', 'name' => $this->l('One')),
|
||
array('id_option' => '2', 'name' => $this->l('Two')),
|
||
array('id_option' => '3', 'name' => $this->l('Three')),
|
||
);
|
||
$selectOption['channel'] = array(
|
||
array('id_option' => '1', 'name' => $this->l('Parcel')),
|
||
array('id_option' => '2', 'name' => $this->l('Cargo')),
|
||
);
|
||
$selectOption['rod'] = array(
|
||
array('id_option' => 'false', 'name' => $this->l('No')),
|
||
array('id_option' => 'RUA', 'name' => $this->l('RUA')),
|
||
array('id_option' => 'RWZ', 'name' => $this->l('RWZ')),
|
||
array('id_option' => 'RIM', 'name' => $this->l('RIM')),
|
||
array('id_option' => 'RAN', 'name' => $this->l('RAN')),
|
||
array('id_option' => 'RDW', 'name' => $this->l('RDW')),
|
||
array('id_option' => 'ROD', 'name' => $this->l('ROD')),
|
||
array('id_option' => 'RIN', 'name' => $this->l('RIN')),
|
||
array('id_option' => 'RUM', 'name' => $this->l('RUM')),
|
||
);
|
||
$selectOption['format'] = array(
|
||
array('id_option' => '1', 'name' => $this->l('PDF')),
|
||
array('id_option' => '2', 'name' => $this->l('EPL')),
|
||
array('id_option' => '3', 'name' => $this->l('ZPL')),
|
||
array('id_option' => '4', 'name' => $this->l('BMP')),
|
||
array('id_option' => '5', 'name' => $this->l('PDF 10x15')),
|
||
);
|
||
$selectOption['resolution'] = array(
|
||
array('id_option' => '200', 'name' => $this->l('200 DPI')),
|
||
array('id_option' => '300', 'name' => $this->l('300 DPI')),
|
||
);
|
||
$states = array();
|
||
$statesname = array();
|
||
$id_lang = configuration::get('PS_LANG_DEFAULT');
|
||
$order_states = OrderState::getOrderStates($id_lang);
|
||
foreach ($order_states as $value) {
|
||
$states['id_option'] = $value['id_order_state'];
|
||
$states['name'] = $value['name'];
|
||
$statesname[] = $states;
|
||
}
|
||
$selectOption['states'] = $statesname;
|
||
return $selectOption;
|
||
}
|
||
|
||
protected function getConfigForm()
|
||
{
|
||
$selectOption = $this->createSelectOptions();
|
||
$icon = 'icon-cogs';
|
||
$type = 'icon';
|
||
$radio = 'switch';
|
||
$class = '';
|
||
|
||
if (version_compare(_PS_VERSION_, '1.6.0.0', '<'))
|
||
{
|
||
$icon = _PS_ADMIN_IMG_ . 'cog.gif';
|
||
$type = 'image';
|
||
$class = 't';
|
||
$radio = 'radio';
|
||
}
|
||
return array(
|
||
'form' => array(
|
||
'legend' => array(
|
||
'title' => $this->l('Settings'),
|
||
'icon' => 'icon-cogs',
|
||
),
|
||
'input' => array(
|
||
array(
|
||
'type' => $radio,
|
||
'class' => $class,
|
||
'label' => $this->l('Test mode'),
|
||
'name' => 'GEISLOGISTIC_TEST',
|
||
'is_bool' => true,
|
||
'desc' => $this->l('Use this module in test mode'),
|
||
'values' => array(
|
||
array(
|
||
'id' => 'active_on',
|
||
'value' => 1,
|
||
'label' => $this->l('Enabled')
|
||
),
|
||
array(
|
||
'id' => 'active_off',
|
||
'value' => 0,
|
||
'label' => $this->l('Disabled')
|
||
)
|
||
),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'prefix' => '<i class="icon icon-envelope"></i>',
|
||
'desc' => $this->l('Enter a valid customer sender code ex. xxxxxxxx '),
|
||
'name' => 'GEISLOGISTIC_CODE',
|
||
'label' => $this->l('Code'),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'prefix' => '<i class="icon icon-envelope"></i>',
|
||
'desc' => $this->l('Enter a valid API key ex. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx'),
|
||
'name' => 'GEISLOGISTIC_API',
|
||
'label' => $this->l('Api - Password'),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'prefix' => '<i class="icon icon-envelope"></i>',
|
||
'desc' => $this->l('Sender email for pickup'),
|
||
'name' => 'GEISLOGISTIC_EMAILSENDER',
|
||
'label' => $this->l('Email '),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'prefix' => '<i class="icon icon-envelope"></i>',
|
||
'desc' => $this->l('Sender name for pickup'),
|
||
'name' => 'GEISLOGISTIC_NAMESENDER',
|
||
'label' => $this->l('Name'),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'prefix' => '<i class="icon icon-envelope"></i>',
|
||
'desc' => $this->l('Sender phone for pickup'),
|
||
'name' => 'GEISLOGISTIC_PHONESENDER',
|
||
'label' => $this->l('Phone'),
|
||
),
|
||
array(
|
||
'name' => 'GEISLOGISTIC_CHANNEL',
|
||
'type' => 'select',
|
||
'label' => $this->l('Distribution Channel'),
|
||
'desc' => $this->l('Type of transport service (1 – Parcel, 2 – Cargo)'),
|
||
'required' => true,
|
||
'options' => array(
|
||
'query' => $selectOption['channel'],
|
||
'id' => 'id_option',
|
||
'name' => 'name')),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'prefix' => '<i class="icon icon-info"></i>',
|
||
'desc' => $this->l('Type of used service'),
|
||
'name' => 'GEISLOGISTIC_TYPE',
|
||
'label' => $this->l('Type of service ex. 10 - Parcel'),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => false,
|
||
'prefix' => '<i class="icon icon-info"></i>',
|
||
'desc' => $this->l('Type of wrap'),
|
||
'name' => 'GEISLOGISTIC_WRAP',
|
||
'label' => $this->l('Type of wrap ex. EP'),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'prefix' => '<i class="icon icon-info"></i>',
|
||
'desc' => $this->l('Enter a description max 50 char.'),
|
||
'name' => 'GEISLOGISTIC_NOTE',
|
||
'label' => $this->l('Note to recipient'),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'prefix' => '<i class="icon icon-info"></i>',
|
||
'desc' => $this->l('Enter a note for courier max 50 char.'),
|
||
'name' => 'GEISLOGISTIC_NOTEDRIVER',
|
||
'label' => $this->l('Note for courier'),
|
||
),
|
||
array(
|
||
'name' => 'GEISLOGISTIC_COUNTRY',
|
||
'type' => 'select',
|
||
'label' => $this->l('Country'),
|
||
'desc' => $this->l('Company country'),
|
||
'required' => true,
|
||
'options' => array(
|
||
'query' => $selectOption['country'],
|
||
'id' => 'id_option',
|
||
'name' => 'name')),
|
||
// array(
|
||
// 'type' => $radio,
|
||
// 'class' => $class,
|
||
// 'label' => $this->l('Rod'),
|
||
// 'name' => 'GEISLOGISTIC_ROD',
|
||
// 'is_bool' => true,
|
||
// 'desc' => $this->l('Return of documents'),
|
||
// 'values' => array(
|
||
// array(
|
||
// 'id' => 'active_on',
|
||
// 'value' => 1,
|
||
// 'label' => $this->l('Enabled')
|
||
// ),
|
||
// array(
|
||
// 'id' => 'active_off',
|
||
// 'value' => 0,
|
||
// 'label' => $this->l('Disabled')
|
||
// )
|
||
// ),
|
||
// ),
|
||
// array(
|
||
// 'col' => 3,
|
||
// 'type' => 'text',
|
||
// 'desc' => $this->l('ROD code address for documents'),
|
||
// 'name' => 'GEISLOGISTIC_ROD_CODE',
|
||
// 'label' => $this->l('ROD code'),
|
||
// ),
|
||
// array(
|
||
// 'name' => 'GEISLOGISTIC_ROD_TXT',
|
||
// 'type' => 'select',
|
||
// 'label' => $this->l('Guaranteed delivery documents - only Parcel'),
|
||
// 'desc' => $this->l('Type: RUA, RWZ, RIM, RAN, RDW, ROD, RIN, RUM'),
|
||
// 'required' => true,
|
||
// 'options' => array(
|
||
// 'query' => $selectOption['rod'],
|
||
// 'id' => 'id_option',
|
||
// 'name' => 'name')),
|
||
array(
|
||
'type' => $radio,
|
||
'class' => $class,
|
||
'label' => $this->l('Order number'),
|
||
'name' => 'GEISLOGISTIC_OID',
|
||
'is_bool' => true,
|
||
'desc' => $this->l('Order Reference in label'),
|
||
'values' => array(
|
||
array(
|
||
'id' => 'active_on',
|
||
'value' => 1,
|
||
'label' => $this->l('Enabled')
|
||
),
|
||
array(
|
||
'id' => 'active_off',
|
||
'value' => 0,
|
||
'label' => $this->l('Disabled')
|
||
)
|
||
),
|
||
),
|
||
// array(
|
||
// 'type' => $radio,
|
||
// 'class' => $class,
|
||
// 'label' => $this->l('ADL'),
|
||
// 'name' => 'GEISLOGISTIC_ADL',
|
||
// 'is_bool' => true,
|
||
// 'desc' => $this->l('Scan to email returned documents - without VM'),
|
||
// 'values' => array(
|
||
// array(
|
||
// 'id' => 'active_on',
|
||
// 'value' => 1,
|
||
// 'label' => $this->l('Enabled')
|
||
// ),
|
||
// array(
|
||
// 'id' => 'active_off',
|
||
// 'value' => 0,
|
||
// 'label' => $this->l('Disabled')
|
||
// )
|
||
// ),
|
||
// ),
|
||
// array(
|
||
// 'col' => 3,
|
||
// 'type' => 'text',
|
||
// 'desc' => $this->l('Enter a email for scan - only Parcel'),
|
||
// 'name' => 'GEISLOGISTIC_ADL_TXT',
|
||
// 'label' => $this->l('Email'),
|
||
// ),
|
||
array(
|
||
'type' => $radio,
|
||
'class' => $class,
|
||
'label' => $this->l('ADZ'),
|
||
'name' => 'GEISLOGISTIC_ADZ',
|
||
'is_bool' => true,
|
||
'desc' => $this->l('Confirmation delivery shipment'),
|
||
'values' => array(
|
||
array(
|
||
'id' => 'active_on',
|
||
'value' => 1,
|
||
'label' => $this->l('Enabled')
|
||
),
|
||
array(
|
||
'id' => 'active_off',
|
||
'value' => 0,
|
||
'label' => $this->l('Disabled')
|
||
)
|
||
),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'desc' => $this->l('Enter a email or phone number with prefix - only Parcel'),
|
||
'name' => 'GEISLOGISTIC_ADZ_TXT',
|
||
'label' => $this->l('Email or phone'),
|
||
),
|
||
//array(
|
||
// 'type' => $radio,
|
||
// 'class' => $class,
|
||
// 'label' => $this->l('AOZ'),
|
||
// 'name' => 'GEISLOGISTIC_AOZ',
|
||
// 'is_bool' => true,
|
||
// 'desc' => $this->l('Notification damage on shipment'),
|
||
// 'values' => array(
|
||
// array(
|
||
// 'id' => 'active_on',
|
||
// 'value' => 1,
|
||
// 'label' => $this->l('Enabled')
|
||
// ),
|
||
// array(
|
||
// 'id' => 'active_off',
|
||
// 'value' => 0,
|
||
// 'label' => $this->l('Disabled')
|
||
// )
|
||
// ),
|
||
// ),
|
||
// array(
|
||
// 'col' => 3,
|
||
// 'type' => 'text',
|
||
// 'desc' => $this->l('Enter a email or phone number with prefix'),
|
||
// 'name' => 'GEISLOGISTIC_AOZ_TXT',
|
||
// 'label' => $this->l('Email or phone'),
|
||
// ),
|
||
//array(
|
||
// 'type' => $radio,
|
||
// 'class' => $class,
|
||
// 'label' => $this->l('APZ'),
|
||
// 'name' => 'GEISLOGISTIC_APZ',
|
||
// 'is_bool' => true,
|
||
// 'desc' => $this->l('Advising on a problematic shipment'),
|
||
// 'values' => array(
|
||
// array(
|
||
// 'id' => 'active_on',
|
||
// 'value' => 1,
|
||
// 'label' => $this->l('Enabled')
|
||
// ),
|
||
// array(
|
||
// 'id' => 'active_off',
|
||
// 'value' => 0,
|
||
// 'label' => $this->l('Disabled')
|
||
// )
|
||
// ),
|
||
// ),
|
||
// array(
|
||
// 'col' => 3,
|
||
// 'type' => 'text',
|
||
// 'desc' => $this->l('Enter a email or phone number with prefix - only Parcel'),
|
||
// 'name' => 'GEISLOGISTIC_APZ_TXT',
|
||
// 'label' => $this->l('Email or phone'),
|
||
// ),
|
||
array(
|
||
'name' => 'GEISLOGISTIC_COD',
|
||
'type' => 'select',
|
||
'label' => $this->l('COD state'),
|
||
'desc' => $this->l('Cash on delivery'),
|
||
'required' => true,
|
||
'options' => array(
|
||
'query' => $selectOption['states'],
|
||
'id' => 'id_option',
|
||
'name' => 'name')),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'desc' => $this->l('Enter a account number in IBAN FORMAT'),
|
||
'name' => 'GEISLOGISTIC_COD_TXT',
|
||
'label' => $this->l('IBAN'),
|
||
),
|
||
array(
|
||
'type' => $radio,
|
||
'class' => $class,
|
||
'label' => $this->l('Insurance'),
|
||
'name' => 'GEISLOGISTIC_POJ',
|
||
'is_bool' => true,
|
||
'desc' => $this->l('Insurance - POJ'),
|
||
'values' => array(
|
||
array(
|
||
'id' => 'active_on',
|
||
'value' => 1,
|
||
'label' => $this->l('Enabled')
|
||
),
|
||
array(
|
||
'id' => 'active_off',
|
||
'value' => 0,
|
||
'label' => $this->l('Disabled')
|
||
)
|
||
),
|
||
),
|
||
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'desc' => $this->l('Value of the insurance'),
|
||
'name' => 'GEISLOGISTIC_POJ_VAL',
|
||
'label' => $this->l('Value'),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'desc' => $this->l('ISO code for value insurance'),
|
||
'name' => 'GEISLOGISTIC_POJ_ISO',
|
||
'label' => $this->l('Iso code'),
|
||
),
|
||
array(
|
||
'type' => $radio,
|
||
'class' => $class,
|
||
'label' => $this->l('Phone advice'),
|
||
'name' => 'GEISLOGISTIC_AVI',
|
||
'is_bool' => true,
|
||
'desc' => $this->l('Telephone advice - recipient phone with prefix'),
|
||
'values' => array(
|
||
array(
|
||
'id' => 'active_on',
|
||
'value' => 1,
|
||
'label' => $this->l('Enabled')
|
||
),
|
||
array(
|
||
'id' => 'active_off',
|
||
'value' => 0,
|
||
'label' => $this->l('Disabled')
|
||
)
|
||
),
|
||
),
|
||
array(
|
||
'type' => $radio,
|
||
'class' => $class,
|
||
'label' => $this->l('SMS advice'),
|
||
'name' => 'GEISLOGISTIC_SMS',
|
||
'is_bool' => true,
|
||
'desc' => $this->l('Telephone advice - recipient phone without prefix'),
|
||
'values' => array(
|
||
array(
|
||
'id' => 'active_on',
|
||
'value' => 1,
|
||
'label' => $this->l('Enabled')
|
||
),
|
||
array(
|
||
'id' => 'active_off',
|
||
'value' => 0,
|
||
'label' => $this->l('Disabled')
|
||
)
|
||
),
|
||
),
|
||
//array(
|
||
// 'type' => $radio,
|
||
// 'class' => $class,
|
||
// 'label' => $this->l('Guaranteed delivery'),
|
||
// 'name' => 'GEISLOGISTIC_GAR',
|
||
// 'is_bool' => true,
|
||
// 'desc' => $this->l('Guaranteed delivery - required phone or email recipient'),
|
||
// 'values' => array(
|
||
// array(
|
||
// 'id' => 'active_on',
|
||
// 'value' => 1,
|
||
// 'label' => $this->l('Enabled')
|
||
// ),
|
||
// array(
|
||
// 'id' => 'active_off',
|
||
// 'value' => 0,
|
||
// 'label' => $this->l('Disabled')
|
||
// )
|
||
// ),
|
||
// ),
|
||
array(
|
||
'type' => $radio,
|
||
'class' => $class,
|
||
'label' => $this->l('Email to recipient'),
|
||
'name' => 'GEISLOGISTIC_EMA',
|
||
'is_bool' => true,
|
||
'desc' => $this->l('Required recipient, customer email'),
|
||
'values' => array(
|
||
array(
|
||
'id' => 'active_on',
|
||
'value' => 1,
|
||
'label' => $this->l('Enabled')
|
||
),
|
||
array(
|
||
'id' => 'active_off',
|
||
'value' => 0,
|
||
'label' => $this->l('Disabled')
|
||
)
|
||
),
|
||
),
|
||
array(
|
||
'type' => $radio,
|
||
'class' => $class,
|
||
'label' => $this->l('Additional fee'),
|
||
'name' => 'GEISLOGISTIC_DON',
|
||
'is_bool' => true,
|
||
'desc' => $this->l('Additional fee for nonstandard packagigng'),
|
||
'values' => array(
|
||
array(
|
||
'id' => 'active_on',
|
||
'value' => 1,
|
||
'label' => $this->l('Enabled')
|
||
),
|
||
array(
|
||
'id' => 'active_off',
|
||
'value' => 0,
|
||
'label' => $this->l('Disabled')
|
||
)
|
||
),
|
||
),
|
||
array(
|
||
'name' => 'GEISLOGISTIC_COUNTER',
|
||
'type' => 'select',
|
||
'label' => $this->l('Number of packages'),
|
||
'desc' => $this->l('Select number of packages'),
|
||
'required' => true,
|
||
'options' => array(
|
||
'query' => $selectOption['count'],
|
||
'id' => 'id_option',
|
||
'name' => 'name')),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'desc' => $this->l('Adidtional description'),
|
||
'name' => 'GEISLOGISTIC_DESCRIPTION',
|
||
'label' => $this->l('Description'),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'desc' => $this->l('Weight '),
|
||
'name' => 'GEISLOGISTIC_WEIGHT',
|
||
'label' => $this->l('Weight 1 package - 0.4'),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'desc' => $this->l('Weight 2'),
|
||
'name' => 'GEISLOGISTIC_WEIGHT_1',
|
||
'label' => $this->l('Weight 2 package - 0.4'),
|
||
),
|
||
array(
|
||
'col' => 3,
|
||
'type' => 'text',
|
||
'required' => true,
|
||
'desc' => $this->l('Weight 3'),
|
||
'name' => 'GEISLOGISTIC_WEIGHT_2',
|
||
'label' => $this->l('Weight 3 package - 0.3'),
|
||
),
|
||
array(
|
||
'name' => 'GEISLOGISTIC_FORMAT',
|
||
'type' => 'select',
|
||
'label' => $this->l('Label format'),
|
||
'desc' => $this->l('Select format for printed label'),
|
||
'required' => true,
|
||
'options' => array(
|
||
'query' => $selectOption['format'],
|
||
'id' => 'id_option',
|
||
'name' => 'name')),
|
||
array(
|
||
'name' => 'GEISLOGISTIC_RESOLUTION',
|
||
'type' => 'select',
|
||
'label' => $this->l('Label resolution'),
|
||
'desc' => $this->l('Select resolution for printed label only valid for EPL and ZPL'),
|
||
'required' => true,
|
||
'options' => array(
|
||
'query' => $selectOption['resolution'],
|
||
'id' => 'id_option',
|
||
'name' => 'name')),
|
||
),
|
||
'submit' => array(
|
||
'title' => $this->l('Save'),
|
||
),
|
||
),
|
||
);
|
||
}
|
||
|
||
/**
|
||
* Set values for the inputs.
|
||
*/
|
||
protected function getConfigFormValues()
|
||
{
|
||
return array(
|
||
'GEISLOGISTIC_CODE' => Configuration::get('GEISLOGISTIC_CODE'),
|
||
'GEISLOGISTIC_API' => Configuration::get('GEISLOGISTIC_API'),
|
||
'GEISLOGISTIC_EMAILSENDER' => Configuration::get('GEISLOGISTIC_EMAILSENDER'),
|
||
'GEISLOGISTIC_NAMESENDER' => Configuration::get('GEISLOGISTIC_NAMESENDER'),
|
||
'GEISLOGISTIC_PHONESENDER' => Configuration::get('GEISLOGISTIC_PHONESENDER'),
|
||
'GEISLOGISTIC_TEST' => Configuration::get('GEISLOGISTIC_TEST'),
|
||
'GEISLOGISTIC_COUNTRY' => Configuration::get('GEISLOGISTIC_COUNTRY'),
|
||
'GEISLOGISTIC_TYPE' => Configuration::get('GEISLOGISTIC_TYPE'), //ok
|
||
'GEISLOGISTIC_CHANNEL' => Configuration::get('GEISLOGISTIC_CHANNEL'),
|
||
//'GEISLOGISTIC_ROD' => Configuration::get('GEISLOGISTIC_ROD'), //ok
|
||
//'GEISLOGISTIC_ROD_TXT' => Configuration::get('GEISLOGISTIC_ROD_TXT'), //ok
|
||
//'GEISLOGISTIC_ROD_CODE' => Configuration::get('GEISLOGISTIC_ROD_CODE'), //ok
|
||
'GEISLOGISTIC_NOTE' => Configuration::get('GEISLOGISTIC_NOTE'), //ok
|
||
'GEISLOGISTIC_NOTEDRIVER' => Configuration::get('GEISLOGISTIC_NOTEDRIVER'), //ok
|
||
'GEISLOGISTIC_OID' => Configuration::get('GEISLOGISTIC_OID'), //ok
|
||
//'GEISLOGISTIC_ADL' => Configuration::get('GEISLOGISTIC_ADL'), //ok
|
||
//'GEISLOGISTIC_ADL_TXT' => Configuration::get('GEISLOGISTIC_ADL_TXT'), //ok
|
||
'GEISLOGISTIC_ADZ' => Configuration::get('GEISLOGISTIC_ADZ'), //ok
|
||
'GEISLOGISTIC_ADZ_TXT' => Configuration::get('GEISLOGISTIC_ADZ_TXT'), //ok
|
||
//'GEISLOGISTIC_AOZ' => Configuration::get('GEISLOGISTIC_AOZ'), //ok
|
||
//'GEISLOGISTIC_AOZ_TXT' => Configuration::get('GEISLOGISTIC_AOZ_TXT'), //ok
|
||
//'GEISLOGISTIC_APZ' => Configuration::get('GEISLOGISTIC_APZ'), //ok
|
||
//'GEISLOGISTIC_APZ_TXT' => Configuration::get('GEISLOGISTIC_APZ_TXT'), //ok
|
||
'GEISLOGISTIC_COD' => Configuration::get('GEISLOGISTIC_COD'), //ok
|
||
'GEISLOGISTIC_COD_TXT' => Configuration::get('GEISLOGISTIC_COD_TXT'), //iban from config
|
||
'GEISLOGISTIC_POJ' => Configuration::get('GEISLOGISTIC_POJ'), // ubezp from config
|
||
'GEISLOGISTIC_POJ_VAL' => Configuration::get('GEISLOGISTIC_POJ_VAL'), // jw
|
||
'GEISLOGISTIC_POJ_ISO' => Configuration::get('GEISLOGISTIC_POJ_ISO'), //jw
|
||
'GEISLOGISTIC_AVI' => Configuration::get('GEISLOGISTIC_AVI'), // ok +phone prefix
|
||
'GEISLOGISTIC_SMS' => Configuration::get('GEISLOGISTIC_SMS'), // ok without prefix
|
||
'GEISLOGISTIC_EMA' => Configuration::get('GEISLOGISTIC_EMA'), // ok with email
|
||
'GEISLOGISTIC_DON' => Configuration::get('GEISLOGISTIC_DON'), //ok
|
||
//'GEISLOGISTIC_GAR' => Configuration::get('GEISLOGISTIC_GAR'), //ok guaranted del with email or phone
|
||
'GEISLOGISTIC_COUNTER' => Configuration::get('GEISLOGISTIC_COUNTER'), //ok il pacz
|
||
'GEISLOGISTIC_DESCRIPTION' => Configuration::get('GEISLOGISTIC_DESCRIPTION'), //ok
|
||
'GEISLOGISTIC_WRAP' => Configuration::get('GEISLOGISTIC_WRAP'), //ok
|
||
'GEISLOGISTIC_WEIGHT' => Configuration::get('GEISLOGISTIC_WEIGHT'), //ok
|
||
'GEISLOGISTIC_WEIGHT_1' => Configuration::get('GEISLOGISTIC_WEIGHT_1'), //ok
|
||
'GEISLOGISTIC_WEIGHT_2' => Configuration::get('GEISLOGISTIC_WEIGHT_2'),
|
||
'GEISLOGISTIC_FORMAT' => Configuration::get('GEISLOGISTIC_FORMAT'), //ok
|
||
'GEISLOGISTIC_RESOLUTION' => Configuration::get('GEISLOGISTIC_RESOLUTION'),
|
||
);
|
||
}
|
||
|
||
/**
|
||
* Save form data.
|
||
*/
|
||
protected function postProcess()
|
||
{
|
||
$form_values = $this->getConfigFormValues();
|
||
|
||
foreach (array_keys($form_values) as $key) {
|
||
Configuration::updateValue($key, Tools::getValue($key));
|
||
}
|
||
}
|
||
|
||
|
||
public function hookDisplayAdminOrder($params)
|
||
{
|
||
$this->uri = ToolsCore::getCurrentUrlProtocolPrefix() . $this->context->shop->domain_ssl . $this->context->shop->physical_uri;
|
||
$get_file_url = $this->uri . 'modules/GeisLogistic/views/lib/';
|
||
|
||
$Order = new Order($params['id_order']);
|
||
$id_order = Tools::getValue('id_order');
|
||
|
||
$customer = new Customer($Order->id_customer);
|
||
$address = new Address($Order->id_address_delivery);
|
||
|
||
if (empty($address->company))
|
||
{
|
||
$namew = $address->firstname . ' ' . $address->lastname;
|
||
$geisb2c = 0;
|
||
} else
|
||
{
|
||
$namew = $address->company;
|
||
$geisb2c = 1;
|
||
}
|
||
|
||
if (empty($address->phone_mobile))
|
||
{
|
||
$this->context->smarty->assign(array('geisphone' => $address->phone));
|
||
} else
|
||
{
|
||
$this->context->smarty->assign(array('geisphone' => $address->phone_mobile));
|
||
} //ok
|
||
|
||
$trackingnumber = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT `tracking_number` FROM `' . _DB_PREFIX_ . 'order_carrier` WHERE `id_order` = ' . $id_order);
|
||
$totalorder = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT `total_paid_tax_incl` FROM `' . _DB_PREFIX_ . 'orders` WHERE `id_order` = ' . $id_order);
|
||
$id_order_state = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT `current_state` FROM `' . _DB_PREFIX_ . 'orders` WHERE `id_order` = ' . $id_order);
|
||
$geiscountry = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT `iso_code` FROM `' . _DB_PREFIX_ . 'country` WHERE `id_country` = ' . (int)($address->id_country));
|
||
$reference = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT `reference` FROM `' . _DB_PREFIX_ . 'orders` WHERE `id_order` = ' . $id_order);
|
||
$currency = $Order->id_currency;
|
||
$currencyiso = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT `iso_code` FROM `' . _DB_PREFIX_ . 'currency` WHERE `id_currency` = ' . (int)$currency);
|
||
|
||
$this->context->smarty->assign(array(
|
||
'secure_key' => $this->secure_key, //ok
|
||
'liburl' => $get_file_url, //ok
|
||
'trackingnumber' => $trackingnumber,
|
||
'geistotal' => Tools::ps_round($totalorder, '2'), //ok
|
||
'curentstate' => $id_order_state, //ok
|
||
'geisname' => $address->firstname .' '. $address->lastname, //ok fullname
|
||
'geisnazwa' => $namew, //d name
|
||
'geiszipcode' => $address->postcode, //ok
|
||
'geiscity' => $address->city, //ok
|
||
'geiscountry' => $geiscountry, //ok
|
||
'geisstreet' => $address->address1 .' '. $address->address2, //ok
|
||
'geisemail' => $this->context->customer->email, //ok
|
||
'geisidorder' => $reference, //ok hidden
|
||
'geisorder' => $id_order,
|
||
'geisprivate' => $geisb2c,
|
||
'geistype' => Configuration::get('GEISLOGISTIC_TYPE'), //ok
|
||
'geischannel' => Configuration::get('GEISLOGISTIC_CHANNEL'), //ok
|
||
'geiswrap' => Configuration::get('GEISLOGISTIC_WRAP'),//ok
|
||
//'geisrod' => Configuration::get('GEISLOGISTIC_ROD'), //ok
|
||
'geisnote' => Configuration::get('GEISLOGISTIC_NOTE'), //ok
|
||
'geisnotedriver' => Configuration::get('GEISLOGISTIC_NOTEDRIVER'), //ok
|
||
//'geisadl' => Configuration::get('GEISLOGISTIC_ADL'), //ok
|
||
'geisadz' => Configuration::get('GEISLOGISTIC_ADZ'), //ok
|
||
//'geisaoz' => Configuration::get('GEISLOGISTIC_AOZ'), //ok
|
||
//'geisapz' => Configuration::get('GEISLOGISTIC_APZ'), //ok
|
||
'geiscod' => Configuration::get('GEISLOGISTIC_COD'), //ok
|
||
'geisavi' => Configuration::get('GEISLOGISTIC_AVI'), //ok
|
||
'geissms' => Configuration::get('GEISLOGISTIC_SMS'), //ok
|
||
'geissemail' => Configuration::get('GEISLOGISTIC_EMA'), //ok
|
||
'geisaddfee' => Configuration::get('GEISLOGISTIC_DON'), //ok
|
||
//'geisguaranted' => Configuration::get('GEISLOGISTIC_GAR'), //ok
|
||
'geiscounter' => Configuration::get('GEISLOGISTIC_COUNTER'), //ok
|
||
'geisdecription' => Configuration::get('GEISLOGISTIC_DESCRIPTION'), //ok
|
||
'geisweight' => Configuration::get('GEISLOGISTIC_WEIGHT'), //ok
|
||
'geisweight1' => Configuration::get('GEISLOGISTIC_WEIGHT_1'), //ok
|
||
'geisweight2' => Configuration::get('GEISLOGISTIC_WEIGHT_2'), //ok
|
||
'geiscurrencyiso' => $currencyiso,
|
||
));
|
||
|
||
$outputorder = $this->context->smarty->fetch($this->local_path . 'views/templates/admin/configure.tpl');
|
||
return $outputorder;
|
||
}
|
||
public function ishealty()
|
||
{
|
||
ini_set("soap.wsdl_cache_enabled", "0");
|
||
try
|
||
{
|
||
$client = new SoapClient($this->wsdl(), array("trace" => 1));
|
||
$result = $client->IsHealthy();
|
||
}
|
||
catch (exception $ex)
|
||
{
|
||
return "BLAD: .$ex->faultcode .$ex->faultstring. \n\n";
|
||
}
|
||
if (isset($result->IsHealthyResult)) {
|
||
return $result->IsHealthyResult;
|
||
}else{
|
||
return false;
|
||
}
|
||
}
|
||
public function WrapList()
|
||
{
|
||
$apicode = Configuration::get('GEISLOGISTIC_CODE'); // CustomerCode
|
||
$apikey = Configuration::get('GEISLOGISTIC_API'); //Password
|
||
$country = Configuration::get('GEISLOGISTIC_COUNTRY');
|
||
|
||
if (empty($apicode) || empty($apikey) ) {
|
||
$result = 'No creditentials entered';
|
||
return $result;
|
||
}else{
|
||
ini_set("soap.wsdl_cache_enabled", "0");
|
||
try
|
||
{
|
||
$client = new SoapClient($this->wsdl(), array("trace" => 1));
|
||
$data['Request']['Header'] = array(
|
||
'CustomerCode' => $apicode,
|
||
'Language' => $country,
|
||
'Password' => $apikey,
|
||
);
|
||
$result = $client->WrapList($data);
|
||
}
|
||
catch (exception $ex)
|
||
{
|
||
return "BLAD: .$ex->faultcode .$ex->faultstring. \n\n";
|
||
}
|
||
if (isset($result->WrapListResult->ResponseObject->Wrap)) {
|
||
return $result->WrapListResult->ResponseObject->Wrap;
|
||
}else{
|
||
$result = false;
|
||
return $result;
|
||
}
|
||
}
|
||
}
|
||
|
||
public function ServiceList()
|
||
{
|
||
$apicode = Configuration::get('GEISLOGISTIC_CODE'); // CustomerCode
|
||
$apikey = Configuration::get('GEISLOGISTIC_API'); //Password
|
||
$country = Configuration::get('GEISLOGISTIC_COUNTRY');
|
||
|
||
if (empty($apicode) || empty($apikey) ) {
|
||
$result = 'No creditentials entered';
|
||
return $result;
|
||
}else{
|
||
ini_set("soap.wsdl_cache_enabled", "0");
|
||
try
|
||
{
|
||
$client = new SoapClient($this->wsdl(), array("trace" => 1));
|
||
$data['Request']['Header'] = array(
|
||
'CustomerCode' => $apicode,
|
||
'Language' => $country,
|
||
'Password' => $apikey,
|
||
);
|
||
$result = $client->ServiceList($data);
|
||
}
|
||
catch (exception $ex)
|
||
{
|
||
return "BLAD: .$ex->faultcode .$ex->faultstring. \n\n";
|
||
}
|
||
if (isset($result->ServiceListResult->ResponseObject->Service)) {
|
||
return $result->ServiceListResult->ResponseObject->Service;
|
||
}else{
|
||
$result = false;
|
||
return $result;
|
||
}
|
||
}
|
||
}
|
||
|
||
public function wsdl()
|
||
{
|
||
$testmode = Configuration::get('GEISLOGISTIC_TEST');
|
||
$country = Configuration::get('GEISLOGISTIC_COUNTRY');
|
||
|
||
if ($testmode == '0') {
|
||
if ($country == 'PL') {
|
||
$wsdl = 'https://gclient.geis.pl/GService/GService.svc?wsdl';
|
||
}else{
|
||
$wsdl = 'https://gclient.geis.cz/GService/GService.svc?wsdl';
|
||
}
|
||
}else{
|
||
if ($country == 'PL') {
|
||
$wsdl = 'https://gclient.geis.pl/GServiceTest/GService.svc?wsdl';
|
||
}else{
|
||
$wsdl = 'https://gclient.geis.cz/GServiceTest/GService.svc?wsdl';
|
||
}
|
||
}
|
||
return $wsdl;
|
||
}
|
||
}//end
|