Files
interblue.pl/modules/GeisLogistic/GeisLogistic.php
2024-10-25 14:16:28 +02:00

1022 lines
47 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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