Version Notes
Version destinée à Magento 1.6.X et supérieures. Testée sur Magento 1.9.2.
------------
Intégration du mode de livraison Chrono Europe
Download this release
Release Info
Developer | Benjamin GOSSELET |
Extension | Chronopost |
Version | 1.4.0 |
Comparing to | |
See all releases |
Code changes from version 1.2.0 to 1.4.0
- app/code/community/Chronopost/Chronorelais/Block/Adminhtml/Form/Renderer/Config/Date.php +23 -23
- app/code/community/Chronopost/Chronorelais/Block/Adminhtml/Notification.php +81 -81
- app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Checklogin.php +44 -44
- app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Form/Field/Config.php +43 -43
- app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Form/Field/Enabled.php +19 -19
- app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Form/Fieldsetassurance.php +43 -43
- app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Form/Fieldsetconflicts.php +47 -47
- app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Rdvconfig.php +29 -29
- app/code/community/Chronopost/Chronorelais/Block/Checkout/Multishipping/Shipping/Method/Chronorelais.php +53 -53
- app/code/community/Chronopost/Chronorelais/Block/Checkout/Onepage/Shipping/Method/Chronopostsrdv.php +18 -18
- app/code/community/Chronopost/Chronorelais/Block/Checkout/Onepage/Shipping/Method/Chronorelais.php +62 -62
- app/code/community/Chronopost/Chronorelais/Block/Detail.php +17 -17
- app/code/community/Chronopost/Chronorelais/Block/Export/Orders.php +21 -21
- app/code/community/Chronopost/Chronorelais/Block/Export/Orders/Grid.php +278 -278
- app/code/community/Chronopost/Chronorelais/Block/Filter.php +28 -28
- app/code/community/Chronopost/Chronorelais/Block/Import/Form.php +11 -11
- app/code/community/Chronopost/Chronorelais/Block/Sales/Bordereau.php +13 -13
- app/code/community/Chronopost/Chronorelais/Block/Sales/Bordereau/Grid.php +161 -161
- app/code/community/Chronopost/Chronorelais/Block/Sales/Impression.php +15 -15
- app/code/community/Chronopost/Chronorelais/Block/Sales/Order/Shipment/View.php +27 -27
- app/code/community/Chronopost/Chronorelais/Block/Sales/Shipment/Grid.php +259 -259
- app/code/community/Chronopost/Chronorelais/Block/Sales/Shipment/Grid/Renderer/Retoursav.php +31 -31
- app/code/community/Chronopost/Chronorelais/Controller/Abstract.php +129 -129
- app/code/community/Chronopost/Chronorelais/Helper/Conflicts.php +159 -159
- app/code/community/Chronopost/Chronorelais/Helper/Data.php +463 -463
- app/code/community/Chronopost/Chronorelais/Helper/Webservice.php +733 -727
- app/code/community/Chronopost/Chronorelais/Model/Carrier/AbstractChronorelais.php +31 -31
- app/code/community/Chronopost/Chronorelais/Model/Carrier/AbstractChronorelaisShipping.php +517 -517
- app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronoexpress.php +4 -4
- app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronopost.php +4 -4
- app/code/community/Chronopost/Chronorelais/Model/Carrier/ChronopostC10.php +5 -5
- app/code/community/Chronopost/Chronorelais/Model/Carrier/ChronopostC18.php +5 -5
- app/code/community/Chronopost/Chronorelais/Model/Carrier/ChronopostCClassic.php +5 -5
- app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronopostsameday.php +33 -33
- app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronopostsrdv.php +85 -85
- app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronorelais.php +5 -5
- app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronorelaisdom.php +7 -7
- app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronorelaiseurope.php +6 -6
- app/code/community/Chronopost/Chronorelais/Model/Config/Backend/Date.php +17 -17
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/Civility.php +11 -11
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/Day.php +16 -16
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/EndOfLineCharacter.php +12 -12
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/FieldDelimiter.php +11 -11
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/FieldSeparator.php +11 -11
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/FileCharset.php +11 -11
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/FileExtension.php +12 -12
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/Hour.php +13 -13
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/Margetype.php +11 -11
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/Minute.php +13 -13
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/PrintMode.php +12 -12
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/Time.php +31 -31
- app/code/community/Chronopost/Chronorelais/Model/Config/Source/WeightUnit.php +11 -11
- app/code/community/Chronopost/Chronorelais/Model/Observer.php +270 -270
- app/code/community/Chronopost/Chronorelais/Model/Sales/Quote/Address/Total/Shipping.php +206 -206
- app/code/community/Chronopost/Chronorelais/Model/Sales/Quote/Address/Total/Shipping.toDel.php +206 -206
- app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/AjaxController.php +432 -432
- app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/ExportController.php +634 -634
- app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/ImportController.php +240 -240
- app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/Sales/BordereauController.php +328 -328
- app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/Sales/ImpressionController.php +1138 -1136
- app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/Sales/Order/ShipmentController.php +429 -429
- app/code/community/Chronopost/Chronorelais/controllers/Checkout/MultishippingController.php +104 -104
- app/code/community/Chronopost/Chronorelais/controllers/IndexController.php +10 -10
- app/code/community/Chronopost/Chronorelais/controllers/RelaisController.php +120 -120
- app/code/community/Chronopost/Chronorelais/controllers/SrdvController.php +37 -37
- app/code/community/Chronopost/Chronorelais/etc/config.xml +673 -673
- app/code/community/Chronopost/Chronorelais/etc/system.xml +1955 -2433
app/code/community/Chronopost/Chronorelais/Block/Adminhtml/Form/Renderer/Config/Date.php
CHANGED
@@ -1,23 +1,23 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Adminhtml_Form_Renderer_Config_Date extends Mage_Adminhtml_Block_System_Config_Form_Field
|
3 |
-
{
|
4 |
-
|
5 |
-
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
6 |
-
{
|
7 |
-
$element->setStyle('width:70px;')
|
8 |
-
->setName($element->getName() . '[]');
|
9 |
-
|
10 |
-
if ($element->getValue()) {
|
11 |
-
$values = explode(':', $element->getValue());
|
12 |
-
} else {
|
13 |
-
$values = array();
|
14 |
-
}
|
15 |
-
|
16 |
-
$date = $element->setValues(Mage::getSingleton('chronorelais/config_source_day')->toOptionArray())->setValue(isset($values[0]) ? $values[0] : null)->getElementHtml();
|
17 |
-
$heure = $element->setValues(Mage::getSingleton('chronorelais/config_source_hour')->toOptionArray())->setValue(isset($values[1]) ? $values[1] : null)->getElementHtml();
|
18 |
-
$minutes = $element->setValues(Mage::getSingleton('chronorelais/config_source_minute')->toOptionArray())->setValue(isset($values[2]) ? $values[2] : null)->getElementHtml();
|
19 |
-
return Mage::helper('adminhtml')->__('Date') . ' : ' . $date
|
20 |
-
. ' '
|
21 |
-
. Mage::helper('adminhtml')->__('Heure') . ' : ' . $heure.' '.$minutes;
|
22 |
-
}
|
23 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Adminhtml_Form_Renderer_Config_Date extends Mage_Adminhtml_Block_System_Config_Form_Field
|
3 |
+
{
|
4 |
+
|
5 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
6 |
+
{
|
7 |
+
$element->setStyle('width:70px;')
|
8 |
+
->setName($element->getName() . '[]');
|
9 |
+
|
10 |
+
if ($element->getValue()) {
|
11 |
+
$values = explode(':', $element->getValue());
|
12 |
+
} else {
|
13 |
+
$values = array();
|
14 |
+
}
|
15 |
+
|
16 |
+
$date = $element->setValues(Mage::getSingleton('chronorelais/config_source_day')->toOptionArray())->setValue(isset($values[0]) ? $values[0] : null)->getElementHtml();
|
17 |
+
$heure = $element->setValues(Mage::getSingleton('chronorelais/config_source_hour')->toOptionArray())->setValue(isset($values[1]) ? $values[1] : null)->getElementHtml();
|
18 |
+
$minutes = $element->setValues(Mage::getSingleton('chronorelais/config_source_minute')->toOptionArray())->setValue(isset($values[2]) ? $values[2] : null)->getElementHtml();
|
19 |
+
return Mage::helper('adminhtml')->__('Date') . ' : ' . $date
|
20 |
+
. ' '
|
21 |
+
. Mage::helper('adminhtml')->__('Heure') . ' : ' . $heure.' '.$minutes;
|
22 |
+
}
|
23 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Adminhtml/Notification.php
CHANGED
@@ -1,81 +1,81 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Adminhtml_Notification extends Mage_Core_Block_Template
|
3 |
-
{
|
4 |
-
const XML_SEVERITY_ICONS_URL_PATH = 'system/adminnotification/severity_icons_url';
|
5 |
-
|
6 |
-
const MODULE_RELEASES_XML_URL = 'http://connect20.magentocommerce.com/community/Chronopost/releases.xml';
|
7 |
-
//all community packages => http://connect20.magentocommerce.com/community/packages.xml
|
8 |
-
|
9 |
-
protected function _prepareLayout()
|
10 |
-
{
|
11 |
-
parent::_prepareLayout();
|
12 |
-
if (!$this->getTemplate()) {
|
13 |
-
$this->setTemplate('chronorelais/notification.phtml');
|
14 |
-
}
|
15 |
-
return $this;
|
16 |
-
}
|
17 |
-
|
18 |
-
public function getSeverityIconsUrl()
|
19 |
-
{
|
20 |
-
return (Mage::app()->getFrontController()->getRequest()->isSecure() ? 'https://' : 'http://')
|
21 |
-
. sprintf(Mage::getStoreConfig(self::XML_SEVERITY_ICONS_URL_PATH), Mage::getVersion(),
|
22 |
-
'SEVERITY_NOTICE');
|
23 |
-
}
|
24 |
-
|
25 |
-
public function canShow()
|
26 |
-
{
|
27 |
-
if (!Mage::getSingleton('admin/session')->isFirstPageAfterLogin()) {
|
28 |
-
return false;
|
29 |
-
}
|
30 |
-
return true;
|
31 |
-
}
|
32 |
-
|
33 |
-
public function getNotifications()
|
34 |
-
{
|
35 |
-
$notifications = array();
|
36 |
-
/* test if WS is ok */
|
37 |
-
$_helper = Mage::helper('chronorelais');
|
38 |
-
$account_number = $_helper->getConfigurationAccountNumber();
|
39 |
-
$password = $_helper->getConfigurationAccountPass();
|
40 |
-
$origin_postcode = $_helper->getConfigurationShipperInfo('zipcode');
|
41 |
-
|
42 |
-
$WSParams = array(
|
43 |
-
'accountNumber' => $account_number,
|
44 |
-
'password' => $password,
|
45 |
-
'depCountryCode' => $_helper->getConfigurationShipperInfo('country'),
|
46 |
-
'depZipCode' => $origin_postcode,
|
47 |
-
'arrCountryCode' => $_helper->getConfigurationShipperInfo('country'),
|
48 |
-
'arrZipCode' => $origin_postcode,
|
49 |
-
'arrCity' => $_helper->getConfigurationShipperInfo('city'),
|
50 |
-
'type' => 'M',
|
51 |
-
'weight' => 1
|
52 |
-
);
|
53 |
-
|
54 |
-
$helperWS = Mage::helper('chronorelais/webservice');
|
55 |
-
$webservbt = $helperWS->checkLogin($WSParams);
|
56 |
-
|
57 |
-
if(!$webservbt) {
|
58 |
-
$notifications[] = 'quickcost_not_available';
|
59 |
-
} else {
|
60 |
-
$webservbt = (array)$webservbt;
|
61 |
-
if(isset($webservbt['errorCode']) && $webservbt['errorCode'] != 0) {
|
62 |
-
$notifications[] = 'quickcost_not_available';
|
63 |
-
}
|
64 |
-
}
|
65 |
-
|
66 |
-
/* test if new version is available */
|
67 |
-
$currentVersion = (string)Mage::getConfig()->getModuleConfig("Chronopost_Chronorelais")->version;
|
68 |
-
|
69 |
-
$xml = simplexml_load_file(self::MODULE_RELEASES_XML_URL);
|
70 |
-
$nbRelease = count($xml->children());
|
71 |
-
$releases = $xml->children();
|
72 |
-
$lastRelease = $releases[0];
|
73 |
-
if(version_compare($lastRelease->v, $currentVersion, '>')) {
|
74 |
-
$notifications[] = 'new_version';
|
75 |
-
}
|
76 |
-
|
77 |
-
return $notifications;
|
78 |
-
|
79 |
-
}
|
80 |
-
|
81 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Adminhtml_Notification extends Mage_Core_Block_Template
|
3 |
+
{
|
4 |
+
const XML_SEVERITY_ICONS_URL_PATH = 'system/adminnotification/severity_icons_url';
|
5 |
+
|
6 |
+
const MODULE_RELEASES_XML_URL = 'http://connect20.magentocommerce.com/community/Chronopost/releases.xml';
|
7 |
+
//all community packages => http://connect20.magentocommerce.com/community/packages.xml
|
8 |
+
|
9 |
+
protected function _prepareLayout()
|
10 |
+
{
|
11 |
+
parent::_prepareLayout();
|
12 |
+
if (!$this->getTemplate()) {
|
13 |
+
$this->setTemplate('chronorelais/notification.phtml');
|
14 |
+
}
|
15 |
+
return $this;
|
16 |
+
}
|
17 |
+
|
18 |
+
public function getSeverityIconsUrl()
|
19 |
+
{
|
20 |
+
return (Mage::app()->getFrontController()->getRequest()->isSecure() ? 'https://' : 'http://')
|
21 |
+
. sprintf(Mage::getStoreConfig(self::XML_SEVERITY_ICONS_URL_PATH), Mage::getVersion(),
|
22 |
+
'SEVERITY_NOTICE');
|
23 |
+
}
|
24 |
+
|
25 |
+
public function canShow()
|
26 |
+
{
|
27 |
+
if (!Mage::getSingleton('admin/session')->isFirstPageAfterLogin()) {
|
28 |
+
return false;
|
29 |
+
}
|
30 |
+
return true;
|
31 |
+
}
|
32 |
+
|
33 |
+
public function getNotifications()
|
34 |
+
{
|
35 |
+
$notifications = array();
|
36 |
+
/* test if WS is ok */
|
37 |
+
$_helper = Mage::helper('chronorelais');
|
38 |
+
$account_number = $_helper->getConfigurationAccountNumber();
|
39 |
+
$password = $_helper->getConfigurationAccountPass();
|
40 |
+
$origin_postcode = $_helper->getConfigurationShipperInfo('zipcode');
|
41 |
+
|
42 |
+
$WSParams = array(
|
43 |
+
'accountNumber' => $account_number,
|
44 |
+
'password' => $password,
|
45 |
+
'depCountryCode' => $_helper->getConfigurationShipperInfo('country'),
|
46 |
+
'depZipCode' => $origin_postcode,
|
47 |
+
'arrCountryCode' => $_helper->getConfigurationShipperInfo('country'),
|
48 |
+
'arrZipCode' => $origin_postcode,
|
49 |
+
'arrCity' => $_helper->getConfigurationShipperInfo('city'),
|
50 |
+
'type' => 'M',
|
51 |
+
'weight' => 1
|
52 |
+
);
|
53 |
+
|
54 |
+
$helperWS = Mage::helper('chronorelais/webservice');
|
55 |
+
$webservbt = $helperWS->checkLogin($WSParams);
|
56 |
+
|
57 |
+
if(!$webservbt) {
|
58 |
+
$notifications[] = 'quickcost_not_available';
|
59 |
+
} else {
|
60 |
+
$webservbt = (array)$webservbt;
|
61 |
+
if(isset($webservbt['errorCode']) && $webservbt['errorCode'] != 0) {
|
62 |
+
$notifications[] = 'quickcost_not_available';
|
63 |
+
}
|
64 |
+
}
|
65 |
+
|
66 |
+
/* test if new version is available */
|
67 |
+
$currentVersion = (string)Mage::getConfig()->getModuleConfig("Chronopost_Chronorelais")->version;
|
68 |
+
|
69 |
+
$xml = simplexml_load_file(self::MODULE_RELEASES_XML_URL);
|
70 |
+
$nbRelease = count($xml->children());
|
71 |
+
$releases = $xml->children();
|
72 |
+
$lastRelease = $releases[0];
|
73 |
+
if(version_compare($lastRelease->v, $currentVersion, '>')) {
|
74 |
+
$notifications[] = 'new_version';
|
75 |
+
}
|
76 |
+
|
77 |
+
return $notifications;
|
78 |
+
|
79 |
+
}
|
80 |
+
|
81 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Checklogin.php
CHANGED
@@ -1,44 +1,44 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Checklogin extends Mage_Adminhtml_Block_System_Config_Form_Field
|
3 |
-
{
|
4 |
-
protected function _prepareLayout()
|
5 |
-
{
|
6 |
-
parent::_prepareLayout();
|
7 |
-
if (!$this->getTemplate()) {
|
8 |
-
$this->setTemplate('chronorelais/config/checklogin.phtml');
|
9 |
-
}
|
10 |
-
return $this;
|
11 |
-
}
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Unset some non-related element parameters
|
15 |
-
*
|
16 |
-
* @param Varien_Data_Form_Element_Abstract $element
|
17 |
-
* @return string
|
18 |
-
*/
|
19 |
-
public function render(Varien_Data_Form_Element_Abstract $element)
|
20 |
-
{
|
21 |
-
$element->unsScope()->unsCanUseWebsiteValue()->unsCanUseDefaultValue();
|
22 |
-
return parent::render($element);
|
23 |
-
}
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Get the button and scripts contents
|
27 |
-
*
|
28 |
-
* @param Varien_Data_Form_Element_Abstract $element
|
29 |
-
* @return string
|
30 |
-
*/
|
31 |
-
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
32 |
-
{
|
33 |
-
$html = parent::_getElementHtml($element);
|
34 |
-
$originalData = $element->getOriginalData();
|
35 |
-
$this->addData(array(
|
36 |
-
'button_label' => Mage::helper('chronorelais')->__($originalData['button_label']),
|
37 |
-
'html_id' => $element->getHtmlId(),
|
38 |
-
'ajax_url' => Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/chronorelais_ajax/checklogin')
|
39 |
-
));
|
40 |
-
|
41 |
-
|
42 |
-
return $html.$this->_toHtml();
|
43 |
-
}
|
44 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Checklogin extends Mage_Adminhtml_Block_System_Config_Form_Field
|
3 |
+
{
|
4 |
+
protected function _prepareLayout()
|
5 |
+
{
|
6 |
+
parent::_prepareLayout();
|
7 |
+
if (!$this->getTemplate()) {
|
8 |
+
$this->setTemplate('chronorelais/config/checklogin.phtml');
|
9 |
+
}
|
10 |
+
return $this;
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Unset some non-related element parameters
|
15 |
+
*
|
16 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
17 |
+
* @return string
|
18 |
+
*/
|
19 |
+
public function render(Varien_Data_Form_Element_Abstract $element)
|
20 |
+
{
|
21 |
+
$element->unsScope()->unsCanUseWebsiteValue()->unsCanUseDefaultValue();
|
22 |
+
return parent::render($element);
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Get the button and scripts contents
|
27 |
+
*
|
28 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
29 |
+
* @return string
|
30 |
+
*/
|
31 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
32 |
+
{
|
33 |
+
$html = parent::_getElementHtml($element);
|
34 |
+
$originalData = $element->getOriginalData();
|
35 |
+
$this->addData(array(
|
36 |
+
'button_label' => Mage::helper('chronorelais')->__($originalData['button_label']),
|
37 |
+
'html_id' => $element->getHtmlId(),
|
38 |
+
'ajax_url' => Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/chronorelais_ajax/checklogin')
|
39 |
+
));
|
40 |
+
|
41 |
+
|
42 |
+
return $html.$this->_toHtml();
|
43 |
+
}
|
44 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Form/Field/Config.php
CHANGED
@@ -1,43 +1,43 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Form_Field_Config extends Mage_Adminhtml_Block_System_Config_Form_Field
|
4 |
-
{
|
5 |
-
private static $JS_INCLUDED = false;
|
6 |
-
|
7 |
-
private function label($input) {
|
8 |
-
return str_replace(array("\r\n","\r","\n","'"),array("\\n","\\n","\\n","\\'"),$this->__($input));
|
9 |
-
}
|
10 |
-
|
11 |
-
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
12 |
-
{
|
13 |
-
$output = '';
|
14 |
-
if (!self::$JS_INCLUDED) {
|
15 |
-
$include_path = Mage::getBaseUrl('js').'chronopost/chronorelais';
|
16 |
-
$output = "<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js\"></script>\n"
|
17 |
-
."<script type=\"text/javascript\" src=\"".$include_path."/ocseditor.js?t=".time()."\"></script>\n"
|
18 |
-
."<script type=\"text/javascript\">\n"
|
19 |
-
."//<![CDATA[\n"
|
20 |
-
."jQuery.noConflict();\n"
|
21 |
-
."var ocseditor = new OCSEditor({\n"
|
22 |
-
."ajax_url: '".$this->getUrl('adminhtml/chronorelais_ajax')."?isAjax=true',\n"
|
23 |
-
."form_key: FORM_KEY,\n"
|
24 |
-
."menu_item_dissociate_label: '".$this->label('Dissociate')."',\n"
|
25 |
-
."menu_item_remove_label: '".$this->label('Remove')."',\n"
|
26 |
-
."menu_item_edit_label: '".$this->label('Edit')."',\n"
|
27 |
-
."prompt_new_value_label: '".$this->label('Enter the new value:')."',\n"
|
28 |
-
."default_row_label: '".$this->label('[No label]')."',\n"
|
29 |
-
."loading_label: '".$this->label('Loading...')."'\n"
|
30 |
-
."});\n"
|
31 |
-
."//]]>\n"
|
32 |
-
."</script>\n"
|
33 |
-
."<link type=\"text/css\" href=\"".$include_path."/ocseditor.css?t=".time()."\" rel=\"stylesheet\" media=\"all\"/>\n"
|
34 |
-
;
|
35 |
-
self::$JS_INCLUDED = true;
|
36 |
-
}
|
37 |
-
|
38 |
-
return $output
|
39 |
-
.'<div style="margin-bottom:1px;"><button type="button" class="scalable" onclick="ocseditor.open(this);"><span>'.$this->__("Open editor").'</span></button></div>'
|
40 |
-
.$element->getElementHtml().'<br/>'
|
41 |
-
;
|
42 |
-
}
|
43 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Form_Field_Config extends Mage_Adminhtml_Block_System_Config_Form_Field
|
4 |
+
{
|
5 |
+
private static $JS_INCLUDED = false;
|
6 |
+
|
7 |
+
private function label($input) {
|
8 |
+
return str_replace(array("\r\n","\r","\n","'"),array("\\n","\\n","\\n","\\'"),$this->__($input));
|
9 |
+
}
|
10 |
+
|
11 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
12 |
+
{
|
13 |
+
$output = '';
|
14 |
+
if (!self::$JS_INCLUDED) {
|
15 |
+
$include_path = Mage::getBaseUrl('js').'chronopost/chronorelais';
|
16 |
+
$output = "<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js\"></script>\n"
|
17 |
+
."<script type=\"text/javascript\" src=\"".$include_path."/ocseditor.js?t=".time()."\"></script>\n"
|
18 |
+
."<script type=\"text/javascript\">\n"
|
19 |
+
."//<![CDATA[\n"
|
20 |
+
."jQuery.noConflict();\n"
|
21 |
+
."var ocseditor = new OCSEditor({\n"
|
22 |
+
."ajax_url: '".$this->getUrl('adminhtml/chronorelais_ajax')."?isAjax=true',\n"
|
23 |
+
."form_key: FORM_KEY,\n"
|
24 |
+
."menu_item_dissociate_label: '".$this->label('Dissociate')."',\n"
|
25 |
+
."menu_item_remove_label: '".$this->label('Remove')."',\n"
|
26 |
+
."menu_item_edit_label: '".$this->label('Edit')."',\n"
|
27 |
+
."prompt_new_value_label: '".$this->label('Enter the new value:')."',\n"
|
28 |
+
."default_row_label: '".$this->label('[No label]')."',\n"
|
29 |
+
."loading_label: '".$this->label('Loading...')."'\n"
|
30 |
+
."});\n"
|
31 |
+
."//]]>\n"
|
32 |
+
."</script>\n"
|
33 |
+
."<link type=\"text/css\" href=\"".$include_path."/ocseditor.css?t=".time()."\" rel=\"stylesheet\" media=\"all\"/>\n"
|
34 |
+
;
|
35 |
+
self::$JS_INCLUDED = true;
|
36 |
+
}
|
37 |
+
|
38 |
+
return $output
|
39 |
+
.'<div style="margin-bottom:1px;"><button type="button" class="scalable" onclick="ocseditor.open(this);"><span>'.$this->__("Open editor").'</span></button></div>'
|
40 |
+
.$element->getElementHtml().'<br/>'
|
41 |
+
;
|
42 |
+
}
|
43 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Form/Field/Enabled.php
CHANGED
@@ -1,19 +1,19 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Form_Field_Enabled extends Mage_Adminhtml_Block_System_Config_Form_Field
|
4 |
-
{
|
5 |
-
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
6 |
-
{
|
7 |
-
/* si mode de livraison pas dans son contrat => on le désactive */
|
8 |
-
$id = $element->getId();
|
9 |
-
$carrier = explode('_', $id);
|
10 |
-
$carrier = $carrier[1];
|
11 |
-
if(!Mage::helper('chronorelais')->shippingMethodEnabled($carrier))
|
12 |
-
{
|
13 |
-
$element->setDisabled('disabled');
|
14 |
-
$element->setValue(0);
|
15 |
-
}
|
16 |
-
|
17 |
-
return $element->getElementHtml();
|
18 |
-
}
|
19 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Form_Field_Enabled extends Mage_Adminhtml_Block_System_Config_Form_Field
|
4 |
+
{
|
5 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
6 |
+
{
|
7 |
+
/* si mode de livraison pas dans son contrat => on le désactive */
|
8 |
+
$id = $element->getId();
|
9 |
+
$carrier = explode('_', $id);
|
10 |
+
$carrier = $carrier[1];
|
11 |
+
if(!Mage::helper('chronorelais')->shippingMethodEnabled($carrier))
|
12 |
+
{
|
13 |
+
$element->setDisabled('disabled');
|
14 |
+
$element->setValue(0);
|
15 |
+
}
|
16 |
+
|
17 |
+
return $element->getElementHtml();
|
18 |
+
}
|
19 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Form/Fieldsetassurance.php
CHANGED
@@ -1,43 +1,43 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Form_Fieldsetassurance
|
3 |
-
extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Return footer html for fieldset
|
8 |
-
* Add extra tooltip comments to elements
|
9 |
-
*
|
10 |
-
* @param Varien_Data_Form_Element_Abstract $element
|
11 |
-
* @return string
|
12 |
-
*/
|
13 |
-
protected function _getFooterHtml($element)
|
14 |
-
{
|
15 |
-
$tooltipsExist = false;
|
16 |
-
$html = '</tbody></table>';
|
17 |
-
|
18 |
-
$html .= '<div class="chronorelais_assurance">';
|
19 |
-
$html .= '<div class="chronorelais_assurance_picto">';
|
20 |
-
$html .= '<img src="'.Mage::getDesign()->getSkinUrl('chronorelais/picto.gif').'" id="chronorelais_assurance_picto_img"/>';
|
21 |
-
$html .= '</div>';
|
22 |
-
$html .= '<div class="chronorelais_assurance_infobulle" id="chronorelais_assurance_infobulle" style="display:none;">';
|
23 |
-
$html .= '<div class="chronorelais_assurance_infobulle_header">';
|
24 |
-
$html .= '<div class="chronorelais_assurance_infobulle_header_title">POP-UP INFORMATION</div>';
|
25 |
-
$html .= '<div class="chronorelais_assurance_infobulle_header_close" id="chronorelais_assurance_infobulle_header_close"><button class="scalable close" type="button"><span>Close</span></button></div>';
|
26 |
-
$html .= '<div class="clear"></div>';
|
27 |
-
$html .= '</div>';
|
28 |
-
$html .= '<div class="chronorelais_assurance_infobulle_content">';
|
29 |
-
$html .= 'En activant cette option, pour chaque colis dépassant le montant que vous renseignez, votre envoi sera assuré à hauteur du montant des articles de ce dernier (maximum 20 000€).';
|
30 |
-
$html .= '</div>';
|
31 |
-
$html .= '</div>';
|
32 |
-
$html .= '</div>';
|
33 |
-
|
34 |
-
$html .= '</fieldset>' . $this->_getExtraJs($element, $tooltipsExist);
|
35 |
-
|
36 |
-
if ($element->getIsNested()) {
|
37 |
-
$html .= '</div></td></tr>';
|
38 |
-
} else {
|
39 |
-
$html .= '</div>';
|
40 |
-
}
|
41 |
-
return $html;
|
42 |
-
}
|
43 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Form_Fieldsetassurance
|
3 |
+
extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Return footer html for fieldset
|
8 |
+
* Add extra tooltip comments to elements
|
9 |
+
*
|
10 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
11 |
+
* @return string
|
12 |
+
*/
|
13 |
+
protected function _getFooterHtml($element)
|
14 |
+
{
|
15 |
+
$tooltipsExist = false;
|
16 |
+
$html = '</tbody></table>';
|
17 |
+
|
18 |
+
$html .= '<div class="chronorelais_assurance">';
|
19 |
+
$html .= '<div class="chronorelais_assurance_picto">';
|
20 |
+
$html .= '<img src="'.Mage::getDesign()->getSkinUrl('chronorelais/picto.gif').'" id="chronorelais_assurance_picto_img"/>';
|
21 |
+
$html .= '</div>';
|
22 |
+
$html .= '<div class="chronorelais_assurance_infobulle" id="chronorelais_assurance_infobulle" style="display:none;">';
|
23 |
+
$html .= '<div class="chronorelais_assurance_infobulle_header">';
|
24 |
+
$html .= '<div class="chronorelais_assurance_infobulle_header_title">POP-UP INFORMATION</div>';
|
25 |
+
$html .= '<div class="chronorelais_assurance_infobulle_header_close" id="chronorelais_assurance_infobulle_header_close"><button class="scalable close" type="button"><span>Close</span></button></div>';
|
26 |
+
$html .= '<div class="clear"></div>';
|
27 |
+
$html .= '</div>';
|
28 |
+
$html .= '<div class="chronorelais_assurance_infobulle_content">';
|
29 |
+
$html .= 'En activant cette option, pour chaque colis dépassant le montant que vous renseignez, votre envoi sera assuré à hauteur du montant des articles de ce dernier (maximum 20 000€).';
|
30 |
+
$html .= '</div>';
|
31 |
+
$html .= '</div>';
|
32 |
+
$html .= '</div>';
|
33 |
+
|
34 |
+
$html .= '</fieldset>' . $this->_getExtraJs($element, $tooltipsExist);
|
35 |
+
|
36 |
+
if ($element->getIsNested()) {
|
37 |
+
$html .= '</div></td></tr>';
|
38 |
+
} else {
|
39 |
+
$html .= '</div>';
|
40 |
+
}
|
41 |
+
return $html;
|
42 |
+
}
|
43 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Form/Fieldsetconflicts.php
CHANGED
@@ -1,47 +1,47 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Form_Fieldsetconflicts
|
3 |
-
extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
|
4 |
-
{
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Return footer html for fieldset
|
8 |
-
* Add extra tooltip comments to elements
|
9 |
-
*
|
10 |
-
* @param Varien_Data_Form_Element_Abstract $element
|
11 |
-
* @return string
|
12 |
-
*/
|
13 |
-
protected function _getFooterHtml($element)
|
14 |
-
{
|
15 |
-
$tooltipsExist = false;
|
16 |
-
$html = '</tbody></table>';
|
17 |
-
|
18 |
-
$html .= '<div class="chronorelais_conflicts">';
|
19 |
-
$html .= '<button onclick="javascript:checkConflicts(); return false;" class="scalable" type="button" id="chronorelais_conflicts">';
|
20 |
-
$html .= ' <span>Lancer la vérification</span>';
|
21 |
-
$html .= '</button>';
|
22 |
-
$html .= '<div id="chronorelais_conflicts_result"></div>';
|
23 |
-
$html .= '</div>';
|
24 |
-
|
25 |
-
$html .= '</fieldset>' . $this->_getExtraJs($element, $tooltipsExist);
|
26 |
-
|
27 |
-
$html .= '<script type="text/javascript">' . "\r\n";
|
28 |
-
$html .= '//<![CDATA[' . "\r\n";
|
29 |
-
$html .= ' function checkConflicts() {' . "\r\n";
|
30 |
-
$html .= ' new Ajax.Request(\'' . Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/chronorelais_ajax/checkConflicts') . '\', {' . "\r\n";
|
31 |
-
$html .= ' onSuccess: function(data) {' . "\r\n";
|
32 |
-
$html .= ' var response = data.responseText;' . "\r\n";
|
33 |
-
$html .= ' $(\'chronorelais_conflicts_result\').update(response).show();' . "\r\n";
|
34 |
-
$html .= ' }' . "\r\n";
|
35 |
-
$html .= ' });' . "\r\n";
|
36 |
-
$html .= ' }' . "\r\n";
|
37 |
-
$html .= '//]]>' . "\r\n";
|
38 |
-
$html .= '</script>' . "\r\n";
|
39 |
-
|
40 |
-
if ($element->getIsNested()) {
|
41 |
-
$html .= '</div></td></tr>';
|
42 |
-
} else {
|
43 |
-
$html .= '</div>';
|
44 |
-
}
|
45 |
-
return $html;
|
46 |
-
}
|
47 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Form_Fieldsetconflicts
|
3 |
+
extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
|
4 |
+
{
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Return footer html for fieldset
|
8 |
+
* Add extra tooltip comments to elements
|
9 |
+
*
|
10 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
11 |
+
* @return string
|
12 |
+
*/
|
13 |
+
protected function _getFooterHtml($element)
|
14 |
+
{
|
15 |
+
$tooltipsExist = false;
|
16 |
+
$html = '</tbody></table>';
|
17 |
+
|
18 |
+
$html .= '<div class="chronorelais_conflicts">';
|
19 |
+
$html .= '<button onclick="javascript:checkConflicts(); return false;" class="scalable" type="button" id="chronorelais_conflicts">';
|
20 |
+
$html .= ' <span>Lancer la vérification</span>';
|
21 |
+
$html .= '</button>';
|
22 |
+
$html .= '<div id="chronorelais_conflicts_result"></div>';
|
23 |
+
$html .= '</div>';
|
24 |
+
|
25 |
+
$html .= '</fieldset>' . $this->_getExtraJs($element, $tooltipsExist);
|
26 |
+
|
27 |
+
$html .= '<script type="text/javascript">' . "\r\n";
|
28 |
+
$html .= '//<![CDATA[' . "\r\n";
|
29 |
+
$html .= ' function checkConflicts() {' . "\r\n";
|
30 |
+
$html .= ' new Ajax.Request(\'' . Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/chronorelais_ajax/checkConflicts') . '\', {' . "\r\n";
|
31 |
+
$html .= ' onSuccess: function(data) {' . "\r\n";
|
32 |
+
$html .= ' var response = data.responseText;' . "\r\n";
|
33 |
+
$html .= ' $(\'chronorelais_conflicts_result\').update(response).show();' . "\r\n";
|
34 |
+
$html .= ' }' . "\r\n";
|
35 |
+
$html .= ' });' . "\r\n";
|
36 |
+
$html .= ' }' . "\r\n";
|
37 |
+
$html .= '//]]>' . "\r\n";
|
38 |
+
$html .= '</script>' . "\r\n";
|
39 |
+
|
40 |
+
if ($element->getIsNested()) {
|
41 |
+
$html .= '</div></td></tr>';
|
42 |
+
} else {
|
43 |
+
$html .= '</div>';
|
44 |
+
}
|
45 |
+
return $html;
|
46 |
+
}
|
47 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Adminhtml/System/Config/Rdvconfig.php
CHANGED
@@ -1,29 +1,29 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Rdvconfig extends Mage_Adminhtml_Block_System_Config_Form_Field
|
3 |
-
{
|
4 |
-
protected function _prepareLayout()
|
5 |
-
{
|
6 |
-
parent::_prepareLayout();
|
7 |
-
if (!$this->getTemplate()) {
|
8 |
-
$this->setTemplate('chronorelais/config/rdvconfig.phtml');
|
9 |
-
}
|
10 |
-
return $this;
|
11 |
-
}
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Get the button and scripts contents
|
15 |
-
*
|
16 |
-
* @param Varien_Data_Form_Element_Abstract $element
|
17 |
-
* @return string
|
18 |
-
*/
|
19 |
-
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
20 |
-
{
|
21 |
-
$html = parent::_getElementHtml($element);
|
22 |
-
$this->addData(array(
|
23 |
-
'html_id' => $element->getHtmlId(),
|
24 |
-
'value' => $element->getValue()
|
25 |
-
));
|
26 |
-
|
27 |
-
return $html.$this->_toHtml();
|
28 |
-
}
|
29 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Adminhtml_System_Config_Rdvconfig extends Mage_Adminhtml_Block_System_Config_Form_Field
|
3 |
+
{
|
4 |
+
protected function _prepareLayout()
|
5 |
+
{
|
6 |
+
parent::_prepareLayout();
|
7 |
+
if (!$this->getTemplate()) {
|
8 |
+
$this->setTemplate('chronorelais/config/rdvconfig.phtml');
|
9 |
+
}
|
10 |
+
return $this;
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Get the button and scripts contents
|
15 |
+
*
|
16 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
17 |
+
* @return string
|
18 |
+
*/
|
19 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
20 |
+
{
|
21 |
+
$html = parent::_getElementHtml($element);
|
22 |
+
$this->addData(array(
|
23 |
+
'html_id' => $element->getHtmlId(),
|
24 |
+
'value' => $element->getValue()
|
25 |
+
));
|
26 |
+
|
27 |
+
return $html.$this->_toHtml();
|
28 |
+
}
|
29 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Checkout/Multishipping/Shipping/Method/Chronorelais.php
CHANGED
@@ -1,53 +1,53 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Magento
|
4 |
-
*
|
5 |
-
* NOTICE OF LICENSE
|
6 |
-
*
|
7 |
-
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
-
* that is bundled with this package in the file LICENSE.txt.
|
9 |
-
* It is also available through the world-wide-web at this URL:
|
10 |
-
* http://opensource.org/licenses/osl-3.0.php
|
11 |
-
* If you did not receive a copy of the license and are unable to
|
12 |
-
* obtain it through the world-wide-web, please send an email
|
13 |
-
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
-
*
|
15 |
-
* DISCLAIMER
|
16 |
-
*
|
17 |
-
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
-
* versions in the future. If you wish to customize Magento for your
|
19 |
-
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
-
*
|
21 |
-
* @category Mage
|
22 |
-
* @package Mage_Checkout
|
23 |
-
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
24 |
-
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
-
*/
|
26 |
-
|
27 |
-
/**
|
28 |
-
* One page checkout status
|
29 |
-
*
|
30 |
-
* @category Mage
|
31 |
-
* @category Mage
|
32 |
-
* @package Mage_Checkout
|
33 |
-
* @author Magento Core Team <core@magentocommerce.com>
|
34 |
-
*/
|
35 |
-
class Chronopost_Chronorelais_Block_Checkout_Multishipping_Shipping_Method_Chronorelais extends Mage_Checkout_Block_Onepage_Abstract
|
36 |
-
{
|
37 |
-
protected $_chronorelais;
|
38 |
-
|
39 |
-
public function getChronorelais()
|
40 |
-
{
|
41 |
-
if (empty($this->_chronorelais)) {
|
42 |
-
$postcode = Mage::getSingleton('core/session')->getMultiPostcode();
|
43 |
-
|
44 |
-
$helper = Mage::helper('chronorelais/webservice');
|
45 |
-
$webservbt = $helper->getPointsRelaisByCp($postcode);
|
46 |
-
|
47 |
-
$this->_chronorelais = $webservbt;
|
48 |
-
}
|
49 |
-
|
50 |
-
return $this->_chronorelais;
|
51 |
-
}
|
52 |
-
|
53 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Checkout
|
23 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* One page checkout status
|
29 |
+
*
|
30 |
+
* @category Mage
|
31 |
+
* @category Mage
|
32 |
+
* @package Mage_Checkout
|
33 |
+
* @author Magento Core Team <core@magentocommerce.com>
|
34 |
+
*/
|
35 |
+
class Chronopost_Chronorelais_Block_Checkout_Multishipping_Shipping_Method_Chronorelais extends Mage_Checkout_Block_Onepage_Abstract
|
36 |
+
{
|
37 |
+
protected $_chronorelais;
|
38 |
+
|
39 |
+
public function getChronorelais()
|
40 |
+
{
|
41 |
+
if (empty($this->_chronorelais)) {
|
42 |
+
$postcode = Mage::getSingleton('core/session')->getMultiPostcode();
|
43 |
+
|
44 |
+
$helper = Mage::helper('chronorelais/webservice');
|
45 |
+
$webservbt = $helper->getPointsRelaisByCp($postcode);
|
46 |
+
|
47 |
+
$this->_chronorelais = $webservbt;
|
48 |
+
}
|
49 |
+
|
50 |
+
return $this->_chronorelais;
|
51 |
+
}
|
52 |
+
|
53 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Checkout/Onepage/Shipping/Method/Chronopostsrdv.php
CHANGED
@@ -1,18 +1,18 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Block_Checkout_Onepage_Shipping_Method_Chronopostsrdv extends Mage_Checkout_Block_Onepage_Abstract {
|
4 |
-
|
5 |
-
protected function getCarrierModel() {
|
6 |
-
return Mage::getSingleton("chronorelais/carrier_chronopostsrdv");
|
7 |
-
}
|
8 |
-
public function getSearchDeliverySlot() {
|
9 |
-
/* appel WS SearchDeliverySlot pour récupérer les créneaux de livraison permettant de construire le semainier */
|
10 |
-
$helper = Mage::helper('chronorelais/webservice');
|
11 |
-
return $helper->getSearchDeliverySlot($this->getSrdvConfig());
|
12 |
-
}
|
13 |
-
|
14 |
-
public function getSrdvConfig() {
|
15 |
-
$carrierModel = $this->getCarrierModel();
|
16 |
-
return Mage::getStoreConfig('carriers/'.$carrierModel->getCarrierCode().'/rdv_config');
|
17 |
-
}
|
18 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Block_Checkout_Onepage_Shipping_Method_Chronopostsrdv extends Mage_Checkout_Block_Onepage_Abstract {
|
4 |
+
|
5 |
+
protected function getCarrierModel() {
|
6 |
+
return Mage::getSingleton("chronorelais/carrier_chronopostsrdv");
|
7 |
+
}
|
8 |
+
public function getSearchDeliverySlot() {
|
9 |
+
/* appel WS SearchDeliverySlot pour récupérer les créneaux de livraison permettant de construire le semainier */
|
10 |
+
$helper = Mage::helper('chronorelais/webservice');
|
11 |
+
return $helper->getSearchDeliverySlot($this->getSrdvConfig());
|
12 |
+
}
|
13 |
+
|
14 |
+
public function getSrdvConfig() {
|
15 |
+
$carrierModel = $this->getCarrierModel();
|
16 |
+
return Mage::getStoreConfig('carriers/'.$carrierModel->getCarrierCode().'/rdv_config');
|
17 |
+
}
|
18 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Checkout/Onepage/Shipping/Method/Chronorelais.php
CHANGED
@@ -1,62 +1,62 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Magento
|
5 |
-
*
|
6 |
-
* NOTICE OF LICENSE
|
7 |
-
*
|
8 |
-
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
-
* that is bundled with this package in the file LICENSE.txt.
|
10 |
-
* It is also available through the world-wide-web at this URL:
|
11 |
-
* http://opensource.org/licenses/osl-3.0.php
|
12 |
-
* If you did not receive a copy of the license and are unable to
|
13 |
-
* obtain it through the world-wide-web, please send an email
|
14 |
-
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
-
*
|
16 |
-
* DISCLAIMER
|
17 |
-
*
|
18 |
-
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
19 |
-
* versions in the future. If you wish to customize Magento for your
|
20 |
-
* needs please refer to http://www.magentocommerce.com for more information.
|
21 |
-
*
|
22 |
-
* @category Mage
|
23 |
-
* @package Mage_Checkout
|
24 |
-
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
25 |
-
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
26 |
-
*/
|
27 |
-
|
28 |
-
/**
|
29 |
-
* One page checkout status
|
30 |
-
*
|
31 |
-
* @category Mage
|
32 |
-
* @category Mage
|
33 |
-
* @package Mage_Checkout
|
34 |
-
* @author Magento Core Team <core@magentocommerce.com>
|
35 |
-
*/
|
36 |
-
class Chronopost_Chronorelais_Block_Checkout_Onepage_Shipping_Method_Chronorelais extends Mage_Checkout_Block_Onepage_Abstract {
|
37 |
-
|
38 |
-
protected $_chronorelais;
|
39 |
-
|
40 |
-
public function getChronorelais() {
|
41 |
-
$quote = Mage::getSingleton('checkout/cart')->getQuote();
|
42 |
-
$helper = Mage::helper('chronorelais/webservice');
|
43 |
-
$params = $this->getRequest()->getParams();
|
44 |
-
if(isset($params['mappostalcode']))
|
45 |
-
{
|
46 |
-
$webservbt = $helper->getPointsRelaisByCp($params['mappostalcode']);
|
47 |
-
}
|
48 |
-
else
|
49 |
-
{
|
50 |
-
$shippingMethodCode = '';
|
51 |
-
if(isset($params['shipping_method'])) {
|
52 |
-
$shippingMethodCode = explode("_", $params['shipping_method']);
|
53 |
-
$shippingMethodCode = $shippingMethodCode[0];
|
54 |
-
}
|
55 |
-
$webservbt = $helper->getPointRelaisByAddress($shippingMethodCode);
|
56 |
-
}
|
57 |
-
$this->_chronorelais = $webservbt;
|
58 |
-
|
59 |
-
return $this->_chronorelais;
|
60 |
-
}
|
61 |
-
|
62 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* DISCLAIMER
|
17 |
+
*
|
18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
19 |
+
* versions in the future. If you wish to customize Magento for your
|
20 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category Mage
|
23 |
+
* @package Mage_Checkout
|
24 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
25 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
26 |
+
*/
|
27 |
+
|
28 |
+
/**
|
29 |
+
* One page checkout status
|
30 |
+
*
|
31 |
+
* @category Mage
|
32 |
+
* @category Mage
|
33 |
+
* @package Mage_Checkout
|
34 |
+
* @author Magento Core Team <core@magentocommerce.com>
|
35 |
+
*/
|
36 |
+
class Chronopost_Chronorelais_Block_Checkout_Onepage_Shipping_Method_Chronorelais extends Mage_Checkout_Block_Onepage_Abstract {
|
37 |
+
|
38 |
+
protected $_chronorelais;
|
39 |
+
|
40 |
+
public function getChronorelais() {
|
41 |
+
$quote = Mage::getSingleton('checkout/cart')->getQuote();
|
42 |
+
$helper = Mage::helper('chronorelais/webservice');
|
43 |
+
$params = $this->getRequest()->getParams();
|
44 |
+
if(isset($params['mappostalcode']))
|
45 |
+
{
|
46 |
+
$webservbt = $helper->getPointsRelaisByCp($params['mappostalcode']);
|
47 |
+
}
|
48 |
+
else
|
49 |
+
{
|
50 |
+
$shippingMethodCode = '';
|
51 |
+
if(isset($params['shipping_method'])) {
|
52 |
+
$shippingMethodCode = explode("_", $params['shipping_method']);
|
53 |
+
$shippingMethodCode = $shippingMethodCode[0];
|
54 |
+
}
|
55 |
+
$webservbt = $helper->getPointRelaisByAddress($shippingMethodCode);
|
56 |
+
}
|
57 |
+
$this->_chronorelais = $webservbt;
|
58 |
+
|
59 |
+
return $this->_chronorelais;
|
60 |
+
}
|
61 |
+
|
62 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Detail.php
CHANGED
@@ -1,18 +1,18 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Detail extends Mage_Core_Block_Template
|
3 |
-
{
|
4 |
-
public function getRelaisPoint(){
|
5 |
-
|
6 |
-
|
7 |
-
$btcode = $this->getRequest()->getParam ( 'btcode' );
|
8 |
-
|
9 |
-
if($btcode){
|
10 |
-
$result = Mage::getModel('shipping/rate_result');
|
11 |
-
ini_set("soap.wsdl_cache_enabled", "0");
|
12 |
-
$helper = Mage::helper('chronorelais/webservice');
|
13 |
-
return $helper->getDetailRelaisPoint($btcode);
|
14 |
-
}
|
15 |
-
return false;
|
16 |
-
}
|
17 |
-
}
|
18 |
?>
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Detail extends Mage_Core_Block_Template
|
3 |
+
{
|
4 |
+
public function getRelaisPoint(){
|
5 |
+
|
6 |
+
|
7 |
+
$btcode = $this->getRequest()->getParam ( 'btcode' );
|
8 |
+
|
9 |
+
if($btcode){
|
10 |
+
$result = Mage::getModel('shipping/rate_result');
|
11 |
+
ini_set("soap.wsdl_cache_enabled", "0");
|
12 |
+
$helper = Mage::helper('chronorelais/webservice');
|
13 |
+
return $helper->getDetailRelaisPoint($btcode);
|
14 |
+
}
|
15 |
+
return false;
|
16 |
+
}
|
17 |
+
}
|
18 |
?>
|
app/code/community/Chronopost/Chronorelais/Block/Export/Orders.php
CHANGED
@@ -1,21 +1,21 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Chronopost Chronorelais module
|
4 |
-
*
|
5 |
-
* @category Chronopost
|
6 |
-
* @package Chronopost_Chronorelais
|
7 |
-
* @license http://www.opensource.org/licenses/gpl-3.0.html GNU General Public License version 3
|
8 |
-
*/
|
9 |
-
class Chronopost_Chronorelais_Block_Export_Orders extends Mage_Adminhtml_Block_Widget_Grid_Container
|
10 |
-
{
|
11 |
-
|
12 |
-
public function __construct()
|
13 |
-
{
|
14 |
-
$this->_blockGroup = 'chronorelais';
|
15 |
-
$this->_controller = 'export_orders';
|
16 |
-
$this->_headerText = Mage::helper('chronorelais')->__('Exporter vers ChronoShip Office ou ChronoShip Station');
|
17 |
-
parent::__construct();
|
18 |
-
$this->_removeButton('add');
|
19 |
-
}
|
20 |
-
|
21 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Chronopost Chronorelais module
|
4 |
+
*
|
5 |
+
* @category Chronopost
|
6 |
+
* @package Chronopost_Chronorelais
|
7 |
+
* @license http://www.opensource.org/licenses/gpl-3.0.html GNU General Public License version 3
|
8 |
+
*/
|
9 |
+
class Chronopost_Chronorelais_Block_Export_Orders extends Mage_Adminhtml_Block_Widget_Grid_Container
|
10 |
+
{
|
11 |
+
|
12 |
+
public function __construct()
|
13 |
+
{
|
14 |
+
$this->_blockGroup = 'chronorelais';
|
15 |
+
$this->_controller = 'export_orders';
|
16 |
+
$this->_headerText = Mage::helper('chronorelais')->__('Exporter vers ChronoShip Office ou ChronoShip Station');
|
17 |
+
parent::__construct();
|
18 |
+
$this->_removeButton('add');
|
19 |
+
}
|
20 |
+
|
21 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Export/Orders/Grid.php
CHANGED
@@ -1,278 +1,278 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Export_Orders_Grid extends Mage_Adminhtml_Block_Widget_Grid
|
3 |
-
{
|
4 |
-
|
5 |
-
public function __construct()
|
6 |
-
{
|
7 |
-
parent::__construct();
|
8 |
-
$this->setId('chronorelais_export_order_grid');
|
9 |
-
$this->setUseAjax(false);
|
10 |
-
$this->setDefaultSort('created_at');
|
11 |
-
$this->setDefaultDir('DESC');
|
12 |
-
$this->setSaveParametersInSession(true);
|
13 |
-
}
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Retrieve collection class
|
17 |
-
*
|
18 |
-
* @return string
|
19 |
-
*/
|
20 |
-
protected function _getCollectionClass()
|
21 |
-
{
|
22 |
-
return 'sales/order_grid_collection';
|
23 |
-
}
|
24 |
-
|
25 |
-
protected function _prepareCollection()
|
26 |
-
{
|
27 |
-
$_chronopost_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronopost/deliver_on_saturday');
|
28 |
-
$_chronorelais_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronorelais/deliver_on_saturday');
|
29 |
-
if($_chronopost_deliver_saturday==1) {
|
30 |
-
$_chronopost_deliver_saturday = 'Yes';
|
31 |
-
} else {
|
32 |
-
$_chronopost_deliver_saturday = 'No';
|
33 |
-
}
|
34 |
-
if($_chronorelais_deliver_saturday==1) {
|
35 |
-
$_chronorelais_deliver_saturday = 'Yes';
|
36 |
-
} else {
|
37 |
-
$_chronorelais_deliver_saturday = 'No';
|
38 |
-
}
|
39 |
-
|
40 |
-
$collection = Mage::getResourceModel($this->_getCollectionClass());
|
41 |
-
$collection->join('order', 'main_table.entity_id = order.entity_id', 'shipping_description');
|
42 |
-
$collection->join('order_payment', 'main_table.entity_id = order_payment.parent_id', 'method');
|
43 |
-
$collection->getSelect()->joinLeft(array('oes' => Mage::getSingleton('core/resource')->getTableName('sales_chronopost_order_export_status')), 'main_table.entity_id = oes.order_id', array(new Zend_Db_Expr("if(isNull(oes.livraison_le_samedi), CASE LOWER(SUBSTRING_INDEX(order.shipping_method,'_','1')) WHEN 'chronopost' THEN '$_chronopost_deliver_saturday' WHEN 'chronorelais' THEN '$_chronorelais_deliver_saturday' WHEN 'chronoexpress' THEN '--' ELSE 'No' END, oes.livraison_le_samedi) as livraison_le_samedi")));
|
44 |
-
$collection->getSelect()->where('order.shipping_method LIKE "chronorelais%" OR order.shipping_method LIKE "chronopost%" OR order.shipping_method LIKE "chronoexpress%"');
|
45 |
-
|
46 |
-
$this->setCollection($collection);
|
47 |
-
return parent::_prepareCollection();
|
48 |
-
}
|
49 |
-
|
50 |
-
protected function _addColumnFilterToCollection($column)
|
51 |
-
{
|
52 |
-
if ($this->getCollection()) {
|
53 |
-
$field = ( $column->getFilterIndex() ) ? $column->getFilterIndex() : $column->getIndex();
|
54 |
-
if ($column->getFilterConditionCallback()) {
|
55 |
-
call_user_func($column->getFilterConditionCallback(), $this->getCollection(), $column);
|
56 |
-
} else {
|
57 |
-
$cond = $column->getFilter()->getCondition();
|
58 |
-
if ($field && isset($cond)) {
|
59 |
-
// Le champ status est ambigu, il faut donc sp�cifier sa table lors de l'ajout pour filtrage
|
60 |
-
$this->getCollection()->addFieldToFilter($field == "status" ? "main_table.status" : $field, $cond);
|
61 |
-
}
|
62 |
-
}
|
63 |
-
}
|
64 |
-
return $this;
|
65 |
-
}
|
66 |
-
|
67 |
-
protected function _prepareColumns()
|
68 |
-
{
|
69 |
-
|
70 |
-
$this->addColumn('real_order_id', array(
|
71 |
-
'header'=> Mage::helper('sales')->__('Order #'),
|
72 |
-
'width' => '80px',
|
73 |
-
'type' => 'text',
|
74 |
-
'index' => 'increment_id',
|
75 |
-
'filter' => false,
|
76 |
-
));
|
77 |
-
|
78 |
-
if (!Mage::app()->isSingleStoreMode()) {
|
79 |
-
$this->addColumn('store_id', array(
|
80 |
-
'header' => Mage::helper('sales')->__('Purchased From (Store)'),
|
81 |
-
'index' => 'store_id',
|
82 |
-
'type' => 'store',
|
83 |
-
'store_view'=> true,
|
84 |
-
'display_deleted' => true,
|
85 |
-
'filter' => false,
|
86 |
-
));
|
87 |
-
}
|
88 |
-
|
89 |
-
$this->addColumn('created_at', array(
|
90 |
-
'header' => Mage::helper('sales')->__('Purchased On'),
|
91 |
-
'index' => 'created_at',
|
92 |
-
'type' => 'datetime',
|
93 |
-
'width' => '100px',
|
94 |
-
'filter' => false,
|
95 |
-
));
|
96 |
-
|
97 |
-
$this->addColumn('billing_name', array(
|
98 |
-
'header' => Mage::helper('sales')->__('Bill to Name'),
|
99 |
-
'index' => 'billing_name',
|
100 |
-
'filter' => false,
|
101 |
-
));
|
102 |
-
|
103 |
-
$this->addColumn('shipping_name', array(
|
104 |
-
'header' => Mage::helper('sales')->__('Ship to Name'),
|
105 |
-
'index' => 'shipping_name',
|
106 |
-
'filter' => false,
|
107 |
-
));
|
108 |
-
|
109 |
-
$this->addColumn('base_grand_total', array(
|
110 |
-
'header' => Mage::helper('sales')->__('G.T. (Base)'),
|
111 |
-
'index' => 'base_grand_total',
|
112 |
-
'type' => 'currency',
|
113 |
-
'currency' => 'base_currency_code',
|
114 |
-
'filter' => false,
|
115 |
-
));
|
116 |
-
|
117 |
-
$this->addColumn('grand_total', array(
|
118 |
-
'header' => Mage::helper('sales')->__('G.T. (Purchased)'),
|
119 |
-
'index' => 'grand_total',
|
120 |
-
'type' => 'currency',
|
121 |
-
'currency' => 'order_currency_code',
|
122 |
-
'filter' => false,
|
123 |
-
));
|
124 |
-
|
125 |
-
$this->addColumn('shipping_description', array(
|
126 |
-
'header'=> Mage::helper('sales')->__('Shipping Method'),
|
127 |
-
'width' => '80px',
|
128 |
-
'type' => 'text',
|
129 |
-
'index' => 'shipping_description',
|
130 |
-
'filter' => false,
|
131 |
-
'truncate' => 30,
|
132 |
-
'escape' => true,
|
133 |
-
));
|
134 |
-
|
135 |
-
$this->addColumn('payment', array(
|
136 |
-
'header' => Mage::helper('sales')->__('Mode de Paiement'),
|
137 |
-
'index' => 'method',
|
138 |
-
'width' => '100px',
|
139 |
-
'type' => 'text',
|
140 |
-
'filter' => false,
|
141 |
-
));
|
142 |
-
|
143 |
-
if(Mage::helper('chronorelais')->isSendingDay()) {
|
144 |
-
$this->addColumn('livraison_le_samedi', array(
|
145 |
-
'header' => Mage::helper('sales')->__('Livraison le Samedi'),
|
146 |
-
'index' => 'livraison_le_samedi',
|
147 |
-
'width' => '100px',
|
148 |
-
'class' => 'a-center',
|
149 |
-
'filter' => false,
|
150 |
-
));
|
151 |
-
}
|
152 |
-
|
153 |
-
$this->addColumn('status', array(
|
154 |
-
'header' => Mage::helper('sales')->__('Status'),
|
155 |
-
'index' => 'status',
|
156 |
-
'type' => 'options',
|
157 |
-
'width' => '70px',
|
158 |
-
'options' => Mage::getSingleton('sales/order_config')->getStatuses(),
|
159 |
-
));
|
160 |
-
|
161 |
-
if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/view')) {
|
162 |
-
$this->addColumn('action',
|
163 |
-
array(
|
164 |
-
'header' => Mage::helper('sales')->__('Action'),
|
165 |
-
'width' => '50px',
|
166 |
-
'type' => 'action',
|
167 |
-
'getter' => 'getId',
|
168 |
-
'actions' => array(
|
169 |
-
array(
|
170 |
-
'caption' => Mage::helper('sales')->__('View'),
|
171 |
-
'url' => array('base'=>'adminhtml/sales_order/view'),
|
172 |
-
'field' => 'order_id'
|
173 |
-
)
|
174 |
-
),
|
175 |
-
'filter' => false,
|
176 |
-
'sortable' => false,
|
177 |
-
'index' => 'stores',
|
178 |
-
'is_system' => true,
|
179 |
-
));
|
180 |
-
}
|
181 |
-
|
182 |
-
return parent::_prepareColumns();
|
183 |
-
}
|
184 |
-
|
185 |
-
protected function _prepareMassaction111()
|
186 |
-
{
|
187 |
-
$this->setMassactionIdField('entity_id');
|
188 |
-
$this->getMassactionBlock()->setFormFieldName('order_ids');
|
189 |
-
$this->getMassactionBlock()->setUseSelectAll(false);
|
190 |
-
|
191 |
-
$this->getMassactionBlock()->addItem('export_css', array(
|
192 |
-
'label'=> Mage::helper('chronorelais')->__('Export CSS'),
|
193 |
-
'url' => $this->getUrl('*/*/exportcss'),
|
194 |
-
));
|
195 |
-
$this->getMassactionBlock()->addItem('export_cso', array(
|
196 |
-
'label'=> Mage::helper('chronorelais')->__('Export CSO'),
|
197 |
-
'url' => $this->getUrl('*/*/exportcso'),
|
198 |
-
));
|
199 |
-
|
200 |
-
return $this;
|
201 |
-
}
|
202 |
-
|
203 |
-
protected function _prepareMassaction()
|
204 |
-
{
|
205 |
-
$this->setMassactionIdField('entity_id');
|
206 |
-
$this->getMassactionBlock()->setFormFieldName('order_ids');
|
207 |
-
$this->getMassactionBlock()->setUseSelectAll(false);
|
208 |
-
|
209 |
-
if(Mage::helper('chronorelais')->isSendingDay()) {
|
210 |
-
$shipping = array(
|
211 |
-
'Yes' => Mage::helper('chronorelais')->__('Yes'),
|
212 |
-
'No' => Mage::helper('chronorelais')->__('No'));
|
213 |
-
$this->getMassactionBlock()->addItem('shipping', array(
|
214 |
-
'label' => Mage::helper('chronorelais')->__('Livraison le Samedi'),
|
215 |
-
'url' => $this->getUrl('*/*/massLivraisonSamediStatus', array('_current'=>true)),
|
216 |
-
'additional' => array(
|
217 |
-
'visibility' => array(
|
218 |
-
'name' => 'status',
|
219 |
-
'type' => 'select',
|
220 |
-
'class' => 'required-entry',
|
221 |
-
'style' => 'width:80px',
|
222 |
-
'label' => Mage::helper('chronorelais')->__('Status'),
|
223 |
-
'values' => $shipping
|
224 |
-
)
|
225 |
-
)
|
226 |
-
));
|
227 |
-
}
|
228 |
-
|
229 |
-
$export = array(
|
230 |
-
'css' => Mage::helper('chronorelais')->__('CSS Format'),
|
231 |
-
'cso' => Mage::helper('chronorelais')->__('CSO Format'));
|
232 |
-
array_unshift($export, array('label'=>'', 'value'=>''));
|
233 |
-
$this->getMassactionBlock()->addItem('export', array(
|
234 |
-
'label'=> Mage::helper('chronorelais')->__('Export'),
|
235 |
-
'url' => $this->getUrl('*/*/massExport', array('_current'=>true)),
|
236 |
-
'additional' => array(
|
237 |
-
'visibility' => array(
|
238 |
-
'name' => 'format',
|
239 |
-
'type' => 'select',
|
240 |
-
'class' => 'required-entry',
|
241 |
-
'label' => Mage::helper('chronorelais')->__('Format'),
|
242 |
-
'values' => $export
|
243 |
-
)
|
244 |
-
)
|
245 |
-
));
|
246 |
-
return $this;
|
247 |
-
}
|
248 |
-
|
249 |
-
public function getRowUrl($row)
|
250 |
-
{
|
251 |
-
if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/view')) {
|
252 |
-
return $this->getUrl('adminhtml/sales_order/view', array('order_id' => $row->getId()));
|
253 |
-
}
|
254 |
-
return false;
|
255 |
-
}
|
256 |
-
|
257 |
-
public function getGridUrl()
|
258 |
-
{
|
259 |
-
return $this->getUrl('*/*/*', array('_current'=>true));
|
260 |
-
}
|
261 |
-
|
262 |
-
public function getAdditionalJavaScript()
|
263 |
-
{
|
264 |
-
echo "
|
265 |
-
var element = document.getElementById('chronorelais_export_order_grid_massaction-select');
|
266 |
-
element.selectedIndex = 1;
|
267 |
-
if ('fireEvent' in element)
|
268 |
-
element.fireEvent('onchange');
|
269 |
-
else
|
270 |
-
{
|
271 |
-
var evt = document.createEvent('HTMLEvents');
|
272 |
-
evt.initEvent('change', false, true);
|
273 |
-
element.dispatchEvent(evt);
|
274 |
-
}
|
275 |
-
";
|
276 |
-
}
|
277 |
-
|
278 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Export_Orders_Grid extends Mage_Adminhtml_Block_Widget_Grid
|
3 |
+
{
|
4 |
+
|
5 |
+
public function __construct()
|
6 |
+
{
|
7 |
+
parent::__construct();
|
8 |
+
$this->setId('chronorelais_export_order_grid');
|
9 |
+
$this->setUseAjax(false);
|
10 |
+
$this->setDefaultSort('created_at');
|
11 |
+
$this->setDefaultDir('DESC');
|
12 |
+
$this->setSaveParametersInSession(true);
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Retrieve collection class
|
17 |
+
*
|
18 |
+
* @return string
|
19 |
+
*/
|
20 |
+
protected function _getCollectionClass()
|
21 |
+
{
|
22 |
+
return 'sales/order_grid_collection';
|
23 |
+
}
|
24 |
+
|
25 |
+
protected function _prepareCollection()
|
26 |
+
{
|
27 |
+
$_chronopost_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronopost/deliver_on_saturday');
|
28 |
+
$_chronorelais_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronorelais/deliver_on_saturday');
|
29 |
+
if($_chronopost_deliver_saturday==1) {
|
30 |
+
$_chronopost_deliver_saturday = 'Yes';
|
31 |
+
} else {
|
32 |
+
$_chronopost_deliver_saturday = 'No';
|
33 |
+
}
|
34 |
+
if($_chronorelais_deliver_saturday==1) {
|
35 |
+
$_chronorelais_deliver_saturday = 'Yes';
|
36 |
+
} else {
|
37 |
+
$_chronorelais_deliver_saturday = 'No';
|
38 |
+
}
|
39 |
+
|
40 |
+
$collection = Mage::getResourceModel($this->_getCollectionClass());
|
41 |
+
$collection->join('order', 'main_table.entity_id = order.entity_id', 'shipping_description');
|
42 |
+
$collection->join('order_payment', 'main_table.entity_id = order_payment.parent_id', 'method');
|
43 |
+
$collection->getSelect()->joinLeft(array('oes' => Mage::getSingleton('core/resource')->getTableName('sales_chronopost_order_export_status')), 'main_table.entity_id = oes.order_id', array(new Zend_Db_Expr("if(isNull(oes.livraison_le_samedi), CASE LOWER(SUBSTRING_INDEX(order.shipping_method,'_','1')) WHEN 'chronopost' THEN '$_chronopost_deliver_saturday' WHEN 'chronorelais' THEN '$_chronorelais_deliver_saturday' WHEN 'chronoexpress' THEN '--' ELSE 'No' END, oes.livraison_le_samedi) as livraison_le_samedi")));
|
44 |
+
$collection->getSelect()->where('order.shipping_method LIKE "chronorelais%" OR order.shipping_method LIKE "chronopost%" OR order.shipping_method LIKE "chronoexpress%"');
|
45 |
+
|
46 |
+
$this->setCollection($collection);
|
47 |
+
return parent::_prepareCollection();
|
48 |
+
}
|
49 |
+
|
50 |
+
protected function _addColumnFilterToCollection($column)
|
51 |
+
{
|
52 |
+
if ($this->getCollection()) {
|
53 |
+
$field = ( $column->getFilterIndex() ) ? $column->getFilterIndex() : $column->getIndex();
|
54 |
+
if ($column->getFilterConditionCallback()) {
|
55 |
+
call_user_func($column->getFilterConditionCallback(), $this->getCollection(), $column);
|
56 |
+
} else {
|
57 |
+
$cond = $column->getFilter()->getCondition();
|
58 |
+
if ($field && isset($cond)) {
|
59 |
+
// Le champ status est ambigu, il faut donc sp�cifier sa table lors de l'ajout pour filtrage
|
60 |
+
$this->getCollection()->addFieldToFilter($field == "status" ? "main_table.status" : $field, $cond);
|
61 |
+
}
|
62 |
+
}
|
63 |
+
}
|
64 |
+
return $this;
|
65 |
+
}
|
66 |
+
|
67 |
+
protected function _prepareColumns()
|
68 |
+
{
|
69 |
+
|
70 |
+
$this->addColumn('real_order_id', array(
|
71 |
+
'header'=> Mage::helper('sales')->__('Order #'),
|
72 |
+
'width' => '80px',
|
73 |
+
'type' => 'text',
|
74 |
+
'index' => 'increment_id',
|
75 |
+
'filter' => false,
|
76 |
+
));
|
77 |
+
|
78 |
+
if (!Mage::app()->isSingleStoreMode()) {
|
79 |
+
$this->addColumn('store_id', array(
|
80 |
+
'header' => Mage::helper('sales')->__('Purchased From (Store)'),
|
81 |
+
'index' => 'store_id',
|
82 |
+
'type' => 'store',
|
83 |
+
'store_view'=> true,
|
84 |
+
'display_deleted' => true,
|
85 |
+
'filter' => false,
|
86 |
+
));
|
87 |
+
}
|
88 |
+
|
89 |
+
$this->addColumn('created_at', array(
|
90 |
+
'header' => Mage::helper('sales')->__('Purchased On'),
|
91 |
+
'index' => 'created_at',
|
92 |
+
'type' => 'datetime',
|
93 |
+
'width' => '100px',
|
94 |
+
'filter' => false,
|
95 |
+
));
|
96 |
+
|
97 |
+
$this->addColumn('billing_name', array(
|
98 |
+
'header' => Mage::helper('sales')->__('Bill to Name'),
|
99 |
+
'index' => 'billing_name',
|
100 |
+
'filter' => false,
|
101 |
+
));
|
102 |
+
|
103 |
+
$this->addColumn('shipping_name', array(
|
104 |
+
'header' => Mage::helper('sales')->__('Ship to Name'),
|
105 |
+
'index' => 'shipping_name',
|
106 |
+
'filter' => false,
|
107 |
+
));
|
108 |
+
|
109 |
+
$this->addColumn('base_grand_total', array(
|
110 |
+
'header' => Mage::helper('sales')->__('G.T. (Base)'),
|
111 |
+
'index' => 'base_grand_total',
|
112 |
+
'type' => 'currency',
|
113 |
+
'currency' => 'base_currency_code',
|
114 |
+
'filter' => false,
|
115 |
+
));
|
116 |
+
|
117 |
+
$this->addColumn('grand_total', array(
|
118 |
+
'header' => Mage::helper('sales')->__('G.T. (Purchased)'),
|
119 |
+
'index' => 'grand_total',
|
120 |
+
'type' => 'currency',
|
121 |
+
'currency' => 'order_currency_code',
|
122 |
+
'filter' => false,
|
123 |
+
));
|
124 |
+
|
125 |
+
$this->addColumn('shipping_description', array(
|
126 |
+
'header'=> Mage::helper('sales')->__('Shipping Method'),
|
127 |
+
'width' => '80px',
|
128 |
+
'type' => 'text',
|
129 |
+
'index' => 'shipping_description',
|
130 |
+
'filter' => false,
|
131 |
+
'truncate' => 30,
|
132 |
+
'escape' => true,
|
133 |
+
));
|
134 |
+
|
135 |
+
$this->addColumn('payment', array(
|
136 |
+
'header' => Mage::helper('sales')->__('Mode de Paiement'),
|
137 |
+
'index' => 'method',
|
138 |
+
'width' => '100px',
|
139 |
+
'type' => 'text',
|
140 |
+
'filter' => false,
|
141 |
+
));
|
142 |
+
|
143 |
+
if(Mage::helper('chronorelais')->isSendingDay()) {
|
144 |
+
$this->addColumn('livraison_le_samedi', array(
|
145 |
+
'header' => Mage::helper('sales')->__('Livraison le Samedi'),
|
146 |
+
'index' => 'livraison_le_samedi',
|
147 |
+
'width' => '100px',
|
148 |
+
'class' => 'a-center',
|
149 |
+
'filter' => false,
|
150 |
+
));
|
151 |
+
}
|
152 |
+
|
153 |
+
$this->addColumn('status', array(
|
154 |
+
'header' => Mage::helper('sales')->__('Status'),
|
155 |
+
'index' => 'status',
|
156 |
+
'type' => 'options',
|
157 |
+
'width' => '70px',
|
158 |
+
'options' => Mage::getSingleton('sales/order_config')->getStatuses(),
|
159 |
+
));
|
160 |
+
|
161 |
+
if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/view')) {
|
162 |
+
$this->addColumn('action',
|
163 |
+
array(
|
164 |
+
'header' => Mage::helper('sales')->__('Action'),
|
165 |
+
'width' => '50px',
|
166 |
+
'type' => 'action',
|
167 |
+
'getter' => 'getId',
|
168 |
+
'actions' => array(
|
169 |
+
array(
|
170 |
+
'caption' => Mage::helper('sales')->__('View'),
|
171 |
+
'url' => array('base'=>'adminhtml/sales_order/view'),
|
172 |
+
'field' => 'order_id'
|
173 |
+
)
|
174 |
+
),
|
175 |
+
'filter' => false,
|
176 |
+
'sortable' => false,
|
177 |
+
'index' => 'stores',
|
178 |
+
'is_system' => true,
|
179 |
+
));
|
180 |
+
}
|
181 |
+
|
182 |
+
return parent::_prepareColumns();
|
183 |
+
}
|
184 |
+
|
185 |
+
protected function _prepareMassaction111()
|
186 |
+
{
|
187 |
+
$this->setMassactionIdField('entity_id');
|
188 |
+
$this->getMassactionBlock()->setFormFieldName('order_ids');
|
189 |
+
$this->getMassactionBlock()->setUseSelectAll(false);
|
190 |
+
|
191 |
+
$this->getMassactionBlock()->addItem('export_css', array(
|
192 |
+
'label'=> Mage::helper('chronorelais')->__('Export CSS'),
|
193 |
+
'url' => $this->getUrl('*/*/exportcss'),
|
194 |
+
));
|
195 |
+
$this->getMassactionBlock()->addItem('export_cso', array(
|
196 |
+
'label'=> Mage::helper('chronorelais')->__('Export CSO'),
|
197 |
+
'url' => $this->getUrl('*/*/exportcso'),
|
198 |
+
));
|
199 |
+
|
200 |
+
return $this;
|
201 |
+
}
|
202 |
+
|
203 |
+
protected function _prepareMassaction()
|
204 |
+
{
|
205 |
+
$this->setMassactionIdField('entity_id');
|
206 |
+
$this->getMassactionBlock()->setFormFieldName('order_ids');
|
207 |
+
$this->getMassactionBlock()->setUseSelectAll(false);
|
208 |
+
|
209 |
+
if(Mage::helper('chronorelais')->isSendingDay()) {
|
210 |
+
$shipping = array(
|
211 |
+
'Yes' => Mage::helper('chronorelais')->__('Yes'),
|
212 |
+
'No' => Mage::helper('chronorelais')->__('No'));
|
213 |
+
$this->getMassactionBlock()->addItem('shipping', array(
|
214 |
+
'label' => Mage::helper('chronorelais')->__('Livraison le Samedi'),
|
215 |
+
'url' => $this->getUrl('*/*/massLivraisonSamediStatus', array('_current'=>true)),
|
216 |
+
'additional' => array(
|
217 |
+
'visibility' => array(
|
218 |
+
'name' => 'status',
|
219 |
+
'type' => 'select',
|
220 |
+
'class' => 'required-entry',
|
221 |
+
'style' => 'width:80px',
|
222 |
+
'label' => Mage::helper('chronorelais')->__('Status'),
|
223 |
+
'values' => $shipping
|
224 |
+
)
|
225 |
+
)
|
226 |
+
));
|
227 |
+
}
|
228 |
+
|
229 |
+
$export = array(
|
230 |
+
'css' => Mage::helper('chronorelais')->__('CSS Format'),
|
231 |
+
'cso' => Mage::helper('chronorelais')->__('CSO Format'));
|
232 |
+
array_unshift($export, array('label'=>'', 'value'=>''));
|
233 |
+
$this->getMassactionBlock()->addItem('export', array(
|
234 |
+
'label'=> Mage::helper('chronorelais')->__('Export'),
|
235 |
+
'url' => $this->getUrl('*/*/massExport', array('_current'=>true)),
|
236 |
+
'additional' => array(
|
237 |
+
'visibility' => array(
|
238 |
+
'name' => 'format',
|
239 |
+
'type' => 'select',
|
240 |
+
'class' => 'required-entry',
|
241 |
+
'label' => Mage::helper('chronorelais')->__('Format'),
|
242 |
+
'values' => $export
|
243 |
+
)
|
244 |
+
)
|
245 |
+
));
|
246 |
+
return $this;
|
247 |
+
}
|
248 |
+
|
249 |
+
public function getRowUrl($row)
|
250 |
+
{
|
251 |
+
if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/view')) {
|
252 |
+
return $this->getUrl('adminhtml/sales_order/view', array('order_id' => $row->getId()));
|
253 |
+
}
|
254 |
+
return false;
|
255 |
+
}
|
256 |
+
|
257 |
+
public function getGridUrl()
|
258 |
+
{
|
259 |
+
return $this->getUrl('*/*/*', array('_current'=>true));
|
260 |
+
}
|
261 |
+
|
262 |
+
public function getAdditionalJavaScript()
|
263 |
+
{
|
264 |
+
echo "
|
265 |
+
var element = document.getElementById('chronorelais_export_order_grid_massaction-select');
|
266 |
+
element.selectedIndex = 1;
|
267 |
+
if ('fireEvent' in element)
|
268 |
+
element.fireEvent('onchange');
|
269 |
+
else
|
270 |
+
{
|
271 |
+
var evt = document.createEvent('HTMLEvents');
|
272 |
+
evt.initEvent('change', false, true);
|
273 |
+
element.dispatchEvent(evt);
|
274 |
+
}
|
275 |
+
";
|
276 |
+
}
|
277 |
+
|
278 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Filter.php
CHANGED
@@ -1,29 +1,29 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Filter extends Mage_Core_Block_Template
|
3 |
-
{
|
4 |
-
public function getRelaisPoints(){
|
5 |
-
|
6 |
-
$zipcode = $this->getRequest()->getParam ( 'zipcode' );
|
7 |
-
|
8 |
-
if( $zipcode && $zipcode!="" ){
|
9 |
-
$result = Mage::getModel('shipping/rate_result');
|
10 |
-
$helper = Mage::helper('chronorelais/webservice');
|
11 |
-
return $helper->getPointsRelaisByCp($zipcode);
|
12 |
-
}
|
13 |
-
return false;
|
14 |
-
}
|
15 |
-
|
16 |
-
public function getmethodeCode(){
|
17 |
-
|
18 |
-
$zipcode = $this->getRequest()->getParam ( 'methodecode' );
|
19 |
-
|
20 |
-
if($zipcode){
|
21 |
-
$result = Mage::getModel('shipping/rate_result');
|
22 |
-
ini_set("soap.wsdl_cache_enabled", "0");
|
23 |
-
$helper = Mage::helper('chronorelais/webservice');
|
24 |
-
return $helper->getPointsRelaisByCp($zipcode);
|
25 |
-
}
|
26 |
-
return false;
|
27 |
-
}
|
28 |
-
}
|
29 |
?>
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Filter extends Mage_Core_Block_Template
|
3 |
+
{
|
4 |
+
public function getRelaisPoints(){
|
5 |
+
|
6 |
+
$zipcode = $this->getRequest()->getParam ( 'zipcode' );
|
7 |
+
|
8 |
+
if( $zipcode && $zipcode!="" ){
|
9 |
+
$result = Mage::getModel('shipping/rate_result');
|
10 |
+
$helper = Mage::helper('chronorelais/webservice');
|
11 |
+
return $helper->getPointsRelaisByCp($zipcode);
|
12 |
+
}
|
13 |
+
return false;
|
14 |
+
}
|
15 |
+
|
16 |
+
public function getmethodeCode(){
|
17 |
+
|
18 |
+
$zipcode = $this->getRequest()->getParam ( 'methodecode' );
|
19 |
+
|
20 |
+
if($zipcode){
|
21 |
+
$result = Mage::getModel('shipping/rate_result');
|
22 |
+
ini_set("soap.wsdl_cache_enabled", "0");
|
23 |
+
$helper = Mage::helper('chronorelais/webservice');
|
24 |
+
return $helper->getPointsRelaisByCp($zipcode);
|
25 |
+
}
|
26 |
+
return false;
|
27 |
+
}
|
28 |
+
}
|
29 |
?>
|
app/code/community/Chronopost/Chronorelais/Block/Import/Form.php
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Import_Form extends Mage_Adminhtml_Block_Widget
|
3 |
-
{
|
4 |
-
|
5 |
-
public function __construct()
|
6 |
-
{
|
7 |
-
parent::__construct();
|
8 |
-
$this->setTemplate('chronorelais/import/form.phtml');
|
9 |
-
}
|
10 |
-
|
11 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Import_Form extends Mage_Adminhtml_Block_Widget
|
3 |
+
{
|
4 |
+
|
5 |
+
public function __construct()
|
6 |
+
{
|
7 |
+
parent::__construct();
|
8 |
+
$this->setTemplate('chronorelais/import/form.phtml');
|
9 |
+
}
|
10 |
+
|
11 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Sales/Bordereau.php
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Block_Sales_Bordereau extends Mage_Adminhtml_Block_Widget_Grid_Container
|
4 |
-
{
|
5 |
-
public function __construct()
|
6 |
-
{
|
7 |
-
$this->_blockGroup = 'chronorelais';
|
8 |
-
$this->_controller = 'sales_bordereau';
|
9 |
-
$this->_headerText = Mage::helper('chronorelais')->__('Bordereau de fin de journée');
|
10 |
-
parent::__construct();
|
11 |
-
$this->_removeButton('add');
|
12 |
-
}
|
13 |
-
|
14 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Block_Sales_Bordereau extends Mage_Adminhtml_Block_Widget_Grid_Container
|
4 |
+
{
|
5 |
+
public function __construct()
|
6 |
+
{
|
7 |
+
$this->_blockGroup = 'chronorelais';
|
8 |
+
$this->_controller = 'sales_bordereau';
|
9 |
+
$this->_headerText = Mage::helper('chronorelais')->__('Bordereau de fin de journée');
|
10 |
+
parent::__construct();
|
11 |
+
$this->_removeButton('add');
|
12 |
+
}
|
13 |
+
|
14 |
}
|
app/code/community/Chronopost/Chronorelais/Block/Sales/Bordereau/Grid.php
CHANGED
@@ -1,162 +1,162 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Block_Sales_Bordereau_Grid extends Mage_Adminhtml_Block_Widget_Grid {
|
4 |
-
|
5 |
-
public function __construct() {
|
6 |
-
parent::__construct();
|
7 |
-
$this->setTemplate('chronorelais/bordereau/grid.phtml'); /* Pour ajouter la phrase d'impression des bordereaux enxemplaires */
|
8 |
-
$this->setId('sales_order_grid');
|
9 |
-
$this->setDefaultSort('created_at');
|
10 |
-
$this->setDefaultDir('DESC');
|
11 |
-
}
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Retrieve collection class
|
15 |
-
*
|
16 |
-
* @return string
|
17 |
-
*/
|
18 |
-
protected function _getCollectionClass() {
|
19 |
-
return 'sales/order_grid_collection';
|
20 |
-
}
|
21 |
-
|
22 |
-
protected function _prepareCollection() {
|
23 |
-
$_chronopost_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronopost/deliver_on_saturday');
|
24 |
-
$_chronorelais_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronorelais/deliver_on_saturday');
|
25 |
-
if ($_chronopost_deliver_saturday == 1) {
|
26 |
-
$_chronopost_deliver_saturday = 'Yes';
|
27 |
-
} else {
|
28 |
-
$_chronopost_deliver_saturday = 'No';
|
29 |
-
}
|
30 |
-
if ($_chronorelais_deliver_saturday == 1) {
|
31 |
-
$_chronorelais_deliver_saturday = 'Yes';
|
32 |
-
} else {
|
33 |
-
$_chronorelais_deliver_saturday = 'No';
|
34 |
-
}
|
35 |
-
|
36 |
-
$trackNumberFieldName = Mage::helper('chronorelais')->getTrackNumberFieldName();
|
37 |
-
|
38 |
-
$collection = Mage::getResourceModel($this->_getCollectionClass());
|
39 |
-
$collection->getSelect()->joinLeft(array('og' => $collection->getTable('sales/order')), 'main_table.entity_id = og.entity_id', array('CASE LOWER(SUBSTRING_INDEX(og.shipping_method,"_","1")) WHEN "chronoexpress" THEN "Chrono Express" WHEN "chronorelais" THEN "Chrono Relais" ELSE CONCAT(UCASE(SUBSTRING(SUBSTRING_INDEX(og.shipping_method,"_","1"),1,1)),LOWER(SUBSTRING(SUBSTRING_INDEX(og.shipping_method,"_","1"), 2))) END as chrono_shipping_method', 'og.total_qty_ordered'));
|
40 |
-
$collection->getSelect()->joinLeft(array('osg' => $collection->getTable('sales/shipment_grid')), 'main_table.entity_id = osg.order_id', array(new Zend_Db_Expr('if(isNull(osg.increment_id) , "--" , GROUP_CONCAT(DISTINCT osg.increment_id SEPARATOR \', \')) as shipment_increment_id', 'GROUP_CONCAT(DISTINCT osg.created_at SEPARATOR \', \') as shipment_created_at')));
|
41 |
-
$collection->getSelect()->joinLeft(array('ost' => $collection->getTable('sales/shipment_track')), 'main_table.entity_id = ost.order_id', array(new Zend_Db_Expr('if(isNull(ost.'.$trackNumberFieldName.') , "--" , GROUP_CONCAT(DISTINCT ost.'.$trackNumberFieldName.' SEPARATOR \', \')) as track_number', 'if(isNull(ost.title) , "--" , GROUP_CONCAT(DISTINCT ost.title SEPARATOR \', \')) as title')));
|
42 |
-
$collection->getSelect()->joinLeft(array('oes' => Mage::getSingleton('core/resource')->getTableName('sales_chronopost_order_export_status')), 'main_table.entity_id = oes.order_id', array(new Zend_Db_Expr("if(isNull(oes.livraison_le_samedi), CASE LOWER(SUBSTRING_INDEX(og.shipping_method,'_','1')) WHEN 'chronopost' THEN '$_chronopost_deliver_saturday' WHEN 'chronorelais' THEN '$_chronorelais_deliver_saturday' WHEN 'chronoexpress' THEN '--' ELSE 'No' END, oes.livraison_le_samedi) as livraison_le_samedi")));
|
43 |
-
$collection->getSelect()->where('og.shipping_method LIKE "chronorelais%" OR og.shipping_method LIKE "chronopost%" OR og.shipping_method LIKE "chronoexpress%"');
|
44 |
-
$collection->getSelect()->group('main_table.entity_id');
|
45 |
-
$sql = $collection->getSelectSql(true);
|
46 |
-
$collection->getSelect()->reset()->from(
|
47 |
-
array('e' => new Zend_Db_Expr("({$sql})")), array('e' => "*")
|
48 |
-
);
|
49 |
-
|
50 |
-
$this->setCollection($collection);
|
51 |
-
return parent::_prepareCollection();
|
52 |
-
}
|
53 |
-
|
54 |
-
protected function _prepareColumns() {
|
55 |
-
|
56 |
-
$this->addColumn('real_order_id', array(
|
57 |
-
'header' => Mage::helper('sales')->__('Order #'),
|
58 |
-
'width' => '100px',
|
59 |
-
'type' => 'text',
|
60 |
-
'index' => 'increment_id',
|
61 |
-
'filter' => false,
|
62 |
-
));
|
63 |
-
|
64 |
-
$this->addColumn('created_at', array(
|
65 |
-
'header' => Mage::helper('sales')->__('Order Date'),
|
66 |
-
'index' => 'created_at',
|
67 |
-
'type' => 'datetime',
|
68 |
-
'filter' => false,
|
69 |
-
));
|
70 |
-
|
71 |
-
$this->addColumn('shipment_increment_id', array(
|
72 |
-
'header' => Mage::helper('sales')->__('Shipment #'),
|
73 |
-
'index' => 'shipment_increment_id',
|
74 |
-
'type' => 'text',
|
75 |
-
'width' => '100px',
|
76 |
-
'filter' => false,
|
77 |
-
));
|
78 |
-
|
79 |
-
$this->addColumn('shipment_created_at', array(
|
80 |
-
'header' => Mage::helper('sales')->__('Date Shipped'),
|
81 |
-
'index' => 'shipment_created_at',
|
82 |
-
'type' => 'datetime',
|
83 |
-
'filter' => false,
|
84 |
-
));
|
85 |
-
|
86 |
-
$this->addColumn('shipping_name', array(
|
87 |
-
'header' => Mage::helper('sales')->__('Ship to Name'),
|
88 |
-
'index' => 'shipping_name',
|
89 |
-
'filter' => false,
|
90 |
-
));
|
91 |
-
|
92 |
-
$this->addColumn('total_qty_ordered', array(
|
93 |
-
'header' => Mage::helper('sales')->__('Total Qty'),
|
94 |
-
'index' => 'total_qty_ordered',
|
95 |
-
'type' => 'number',
|
96 |
-
'filter' => false,
|
97 |
-
));
|
98 |
-
|
99 |
-
$this->addColumn('track_number', array(
|
100 |
-
'header' => Mage::helper('sales')->__('Tracking'),
|
101 |
-
'index' => 'track_number',
|
102 |
-
'filter' => false,
|
103 |
-
));
|
104 |
-
|
105 |
-
$this->addColumn('chrono_shipping_method', array(
|
106 |
-
'header' => Mage::helper('sales')->__('Mode de transport'),
|
107 |
-
'index' => 'chrono_shipping_method',
|
108 |
-
'type' => 'text',
|
109 |
-
'filter' => false,
|
110 |
-
));
|
111 |
-
|
112 |
-
$this->addColumn('status', array(
|
113 |
-
'header' => Mage::helper('sales')->__('Status'),
|
114 |
-
'index' => 'status',
|
115 |
-
'type' => 'options',
|
116 |
-
'width' => '90px',
|
117 |
-
'options' => Mage::getSingleton('sales/order_config')->getStatuses(),
|
118 |
-
));
|
119 |
-
|
120 |
-
if (Mage::helper('chronorelais')->isSendingDay()) {
|
121 |
-
$this->addColumn('livraison_le_samedi', array(
|
122 |
-
'header' => Mage::helper('sales')->__('Livraison le Samedi'),
|
123 |
-
'index' => 'livraison_le_samedi',
|
124 |
-
'width' => '100px',
|
125 |
-
'class' => 'a-center',
|
126 |
-
'filter' => false,
|
127 |
-
));
|
128 |
-
}
|
129 |
-
|
130 |
-
return parent::_prepareColumns();
|
131 |
-
}
|
132 |
-
|
133 |
-
public function getRowUrl($row) {
|
134 |
-
if (!Mage::getSingleton('admin/session')->isAllowed('sales/order/shipment')) {
|
135 |
-
return false;
|
136 |
-
}
|
137 |
-
|
138 |
-
return $this->getUrl('adminhtml/sales_order/view', array(
|
139 |
-
'order_id' => $row->getId(),
|
140 |
-
)
|
141 |
-
);
|
142 |
-
}
|
143 |
-
|
144 |
-
protected function _prepareMassaction() {
|
145 |
-
|
146 |
-
$this->setMassactionIdField('entity_id');
|
147 |
-
$this->getMassactionBlock()->setFormFieldName('order_ids');
|
148 |
-
$this->getMassactionBlock()->setUseSelectAll(false);
|
149 |
-
|
150 |
-
$this->getMassactionBlock()->addItem('print_bordereau', array(
|
151 |
-
'label' => Mage::helper('chronorelais')->__('Imprimer le bordereau'),
|
152 |
-
'url' => $this->getUrl('*/*/massPrintBordereau', array('_current' => true)),
|
153 |
-
'selected' => true,
|
154 |
-
));
|
155 |
-
|
156 |
-
return $this;
|
157 |
-
}
|
158 |
-
|
159 |
-
public function getGridUrl() {
|
160 |
-
return $this->getUrl('*/*/*', array('_current' => true));
|
161 |
-
}
|
162 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Block_Sales_Bordereau_Grid extends Mage_Adminhtml_Block_Widget_Grid {
|
4 |
+
|
5 |
+
public function __construct() {
|
6 |
+
parent::__construct();
|
7 |
+
$this->setTemplate('chronorelais/bordereau/grid.phtml'); /* Pour ajouter la phrase d'impression des bordereaux enxemplaires */
|
8 |
+
$this->setId('sales_order_grid');
|
9 |
+
$this->setDefaultSort('created_at');
|
10 |
+
$this->setDefaultDir('DESC');
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Retrieve collection class
|
15 |
+
*
|
16 |
+
* @return string
|
17 |
+
*/
|
18 |
+
protected function _getCollectionClass() {
|
19 |
+
return 'sales/order_grid_collection';
|
20 |
+
}
|
21 |
+
|
22 |
+
protected function _prepareCollection() {
|
23 |
+
$_chronopost_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronopost/deliver_on_saturday');
|
24 |
+
$_chronorelais_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronorelais/deliver_on_saturday');
|
25 |
+
if ($_chronopost_deliver_saturday == 1) {
|
26 |
+
$_chronopost_deliver_saturday = 'Yes';
|
27 |
+
} else {
|
28 |
+
$_chronopost_deliver_saturday = 'No';
|
29 |
+
}
|
30 |
+
if ($_chronorelais_deliver_saturday == 1) {
|
31 |
+
$_chronorelais_deliver_saturday = 'Yes';
|
32 |
+
} else {
|
33 |
+
$_chronorelais_deliver_saturday = 'No';
|
34 |
+
}
|
35 |
+
|
36 |
+
$trackNumberFieldName = Mage::helper('chronorelais')->getTrackNumberFieldName();
|
37 |
+
|
38 |
+
$collection = Mage::getResourceModel($this->_getCollectionClass());
|
39 |
+
$collection->getSelect()->joinLeft(array('og' => $collection->getTable('sales/order')), 'main_table.entity_id = og.entity_id', array('CASE LOWER(SUBSTRING_INDEX(og.shipping_method,"_","1")) WHEN "chronoexpress" THEN "Chrono Express" WHEN "chronorelais" THEN "Chrono Relais" ELSE CONCAT(UCASE(SUBSTRING(SUBSTRING_INDEX(og.shipping_method,"_","1"),1,1)),LOWER(SUBSTRING(SUBSTRING_INDEX(og.shipping_method,"_","1"), 2))) END as chrono_shipping_method', 'og.total_qty_ordered'));
|
40 |
+
$collection->getSelect()->joinLeft(array('osg' => $collection->getTable('sales/shipment_grid')), 'main_table.entity_id = osg.order_id', array(new Zend_Db_Expr('if(isNull(osg.increment_id) , "--" , GROUP_CONCAT(DISTINCT osg.increment_id SEPARATOR \', \')) as shipment_increment_id', 'GROUP_CONCAT(DISTINCT osg.created_at SEPARATOR \', \') as shipment_created_at')));
|
41 |
+
$collection->getSelect()->joinLeft(array('ost' => $collection->getTable('sales/shipment_track')), 'main_table.entity_id = ost.order_id', array(new Zend_Db_Expr('if(isNull(ost.'.$trackNumberFieldName.') , "--" , GROUP_CONCAT(DISTINCT ost.'.$trackNumberFieldName.' SEPARATOR \', \')) as track_number', 'if(isNull(ost.title) , "--" , GROUP_CONCAT(DISTINCT ost.title SEPARATOR \', \')) as title')));
|
42 |
+
$collection->getSelect()->joinLeft(array('oes' => Mage::getSingleton('core/resource')->getTableName('sales_chronopost_order_export_status')), 'main_table.entity_id = oes.order_id', array(new Zend_Db_Expr("if(isNull(oes.livraison_le_samedi), CASE LOWER(SUBSTRING_INDEX(og.shipping_method,'_','1')) WHEN 'chronopost' THEN '$_chronopost_deliver_saturday' WHEN 'chronorelais' THEN '$_chronorelais_deliver_saturday' WHEN 'chronoexpress' THEN '--' ELSE 'No' END, oes.livraison_le_samedi) as livraison_le_samedi")));
|
43 |
+
$collection->getSelect()->where('og.shipping_method LIKE "chronorelais%" OR og.shipping_method LIKE "chronopost%" OR og.shipping_method LIKE "chronoexpress%"');
|
44 |
+
$collection->getSelect()->group('main_table.entity_id');
|
45 |
+
$sql = $collection->getSelectSql(true);
|
46 |
+
$collection->getSelect()->reset()->from(
|
47 |
+
array('e' => new Zend_Db_Expr("({$sql})")), array('e' => "*")
|
48 |
+
);
|
49 |
+
|
50 |
+
$this->setCollection($collection);
|
51 |
+
return parent::_prepareCollection();
|
52 |
+
}
|
53 |
+
|
54 |
+
protected function _prepareColumns() {
|
55 |
+
|
56 |
+
$this->addColumn('real_order_id', array(
|
57 |
+
'header' => Mage::helper('sales')->__('Order #'),
|
58 |
+
'width' => '100px',
|
59 |
+
'type' => 'text',
|
60 |
+
'index' => 'increment_id',
|
61 |
+
'filter' => false,
|
62 |
+
));
|
63 |
+
|
64 |
+
$this->addColumn('created_at', array(
|
65 |
+
'header' => Mage::helper('sales')->__('Order Date'),
|
66 |
+
'index' => 'created_at',
|
67 |
+
'type' => 'datetime',
|
68 |
+
'filter' => false,
|
69 |
+
));
|
70 |
+
|
71 |
+
$this->addColumn('shipment_increment_id', array(
|
72 |
+
'header' => Mage::helper('sales')->__('Shipment #'),
|
73 |
+
'index' => 'shipment_increment_id',
|
74 |
+
'type' => 'text',
|
75 |
+
'width' => '100px',
|
76 |
+
'filter' => false,
|
77 |
+
));
|
78 |
+
|
79 |
+
$this->addColumn('shipment_created_at', array(
|
80 |
+
'header' => Mage::helper('sales')->__('Date Shipped'),
|
81 |
+
'index' => 'shipment_created_at',
|
82 |
+
'type' => 'datetime',
|
83 |
+
'filter' => false,
|
84 |
+
));
|
85 |
+
|
86 |
+
$this->addColumn('shipping_name', array(
|
87 |
+
'header' => Mage::helper('sales')->__('Ship to Name'),
|
88 |
+
'index' => 'shipping_name',
|
89 |
+
'filter' => false,
|
90 |
+
));
|
91 |
+
|
92 |
+
$this->addColumn('total_qty_ordered', array(
|
93 |
+
'header' => Mage::helper('sales')->__('Total Qty'),
|
94 |
+
'index' => 'total_qty_ordered',
|
95 |
+
'type' => 'number',
|
96 |
+
'filter' => false,
|
97 |
+
));
|
98 |
+
|
99 |
+
$this->addColumn('track_number', array(
|
100 |
+
'header' => Mage::helper('sales')->__('Tracking'),
|
101 |
+
'index' => 'track_number',
|
102 |
+
'filter' => false,
|
103 |
+
));
|
104 |
+
|
105 |
+
$this->addColumn('chrono_shipping_method', array(
|
106 |
+
'header' => Mage::helper('sales')->__('Mode de transport'),
|
107 |
+
'index' => 'chrono_shipping_method',
|
108 |
+
'type' => 'text',
|
109 |
+
'filter' => false,
|
110 |
+
));
|
111 |
+
|
112 |
+
$this->addColumn('status', array(
|
113 |
+
'header' => Mage::helper('sales')->__('Status'),
|
114 |
+
'index' => 'status',
|
115 |
+
'type' => 'options',
|
116 |
+
'width' => '90px',
|
117 |
+
'options' => Mage::getSingleton('sales/order_config')->getStatuses(),
|
118 |
+
));
|
119 |
+
|
120 |
+
if (Mage::helper('chronorelais')->isSendingDay()) {
|
121 |
+
$this->addColumn('livraison_le_samedi', array(
|
122 |
+
'header' => Mage::helper('sales')->__('Livraison le Samedi'),
|
123 |
+
'index' => 'livraison_le_samedi',
|
124 |
+
'width' => '100px',
|
125 |
+
'class' => 'a-center',
|
126 |
+
'filter' => false,
|
127 |
+
));
|
128 |
+
}
|
129 |
+
|
130 |
+
return parent::_prepareColumns();
|
131 |
+
}
|
132 |
+
|
133 |
+
public function getRowUrl($row) {
|
134 |
+
if (!Mage::getSingleton('admin/session')->isAllowed('sales/order/shipment')) {
|
135 |
+
return false;
|
136 |
+
}
|
137 |
+
|
138 |
+
return $this->getUrl('adminhtml/sales_order/view', array(
|
139 |
+
'order_id' => $row->getId(),
|
140 |
+
)
|
141 |
+
);
|
142 |
+
}
|
143 |
+
|
144 |
+
protected function _prepareMassaction() {
|
145 |
+
|
146 |
+
$this->setMassactionIdField('entity_id');
|
147 |
+
$this->getMassactionBlock()->setFormFieldName('order_ids');
|
148 |
+
$this->getMassactionBlock()->setUseSelectAll(false);
|
149 |
+
|
150 |
+
$this->getMassactionBlock()->addItem('print_bordereau', array(
|
151 |
+
'label' => Mage::helper('chronorelais')->__('Imprimer le bordereau'),
|
152 |
+
'url' => $this->getUrl('*/*/massPrintBordereau', array('_current' => true)),
|
153 |
+
'selected' => true,
|
154 |
+
));
|
155 |
+
|
156 |
+
return $this;
|
157 |
+
}
|
158 |
+
|
159 |
+
public function getGridUrl() {
|
160 |
+
return $this->getUrl('*/*/*', array('_current' => true));
|
161 |
+
}
|
162 |
}
|
app/code/community/Chronopost/Chronorelais/Block/Sales/Impression.php
CHANGED
@@ -1,16 +1,16 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Block_Sales_Impression extends Mage_Adminhtml_Block_Widget_Grid_Container
|
4 |
-
{
|
5 |
-
|
6 |
-
|
7 |
-
public function __construct()
|
8 |
-
{
|
9 |
-
$this->_blockGroup = 'chronorelais';
|
10 |
-
$this->_controller = 'sales_shipment';
|
11 |
-
$this->_headerText = Mage::helper('chronorelais')->__('Impressions des étiquettes Chronopost');
|
12 |
-
parent::__construct();
|
13 |
-
$this->_removeButton('add');
|
14 |
-
}
|
15 |
-
|
16 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Block_Sales_Impression extends Mage_Adminhtml_Block_Widget_Grid_Container
|
4 |
+
{
|
5 |
+
|
6 |
+
|
7 |
+
public function __construct()
|
8 |
+
{
|
9 |
+
$this->_blockGroup = 'chronorelais';
|
10 |
+
$this->_controller = 'sales_shipment';
|
11 |
+
$this->_headerText = Mage::helper('chronorelais')->__('Impressions des étiquettes Chronopost');
|
12 |
+
parent::__construct();
|
13 |
+
$this->_removeButton('add');
|
14 |
+
}
|
15 |
+
|
16 |
}
|
app/code/community/Chronopost/Chronorelais/Block/Sales/Order/Shipment/View.php
CHANGED
@@ -1,28 +1,28 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Sales_Order_Shipment_View extends Mage_Adminhtml_Block_Sales_Order_Shipment_View
|
3 |
-
{
|
4 |
-
|
5 |
-
public function __construct()
|
6 |
-
{
|
7 |
-
parent::__construct();
|
8 |
-
|
9 |
-
//Ajout de l'impression de l'étiquette Chronopost
|
10 |
-
$_order = $this->getShipment()->getOrder();
|
11 |
-
$_shippingMethod = explode("_",$_order->getShippingMethod());
|
12 |
-
if (($_shippingMethod[0] == 'chronorelais' || $_shippingMethod[0] == 'chronopost' || $_shippingMethod[0] == 'chronoexpress')) {
|
13 |
-
$this->_addButton('etiquette', array(
|
14 |
-
'label' => Mage::helper('chronorelais')->__('Etiquette Chronopost'),
|
15 |
-
'class' => 'save',
|
16 |
-
'onclick' => 'setLocation(\'' . $this->getPrintChronopostUrl() . '\')'
|
17 |
-
)
|
18 |
-
);
|
19 |
-
}
|
20 |
-
}
|
21 |
-
|
22 |
-
public function getPrintChronopostUrl()
|
23 |
-
{
|
24 |
-
return $this->getUrl('adminhtml/chronorelais_sales_impression/print', array(
|
25 |
-
'shipment_id' => $this->getShipment()->getId()
|
26 |
-
));
|
27 |
-
}
|
28 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Sales_Order_Shipment_View extends Mage_Adminhtml_Block_Sales_Order_Shipment_View
|
3 |
+
{
|
4 |
+
|
5 |
+
public function __construct()
|
6 |
+
{
|
7 |
+
parent::__construct();
|
8 |
+
|
9 |
+
//Ajout de l'impression de l'étiquette Chronopost
|
10 |
+
$_order = $this->getShipment()->getOrder();
|
11 |
+
$_shippingMethod = explode("_",$_order->getShippingMethod());
|
12 |
+
if (($_shippingMethod[0] == 'chronorelais' || $_shippingMethod[0] == 'chronopost' || $_shippingMethod[0] == 'chronoexpress')) {
|
13 |
+
$this->_addButton('etiquette', array(
|
14 |
+
'label' => Mage::helper('chronorelais')->__('Etiquette Chronopost'),
|
15 |
+
'class' => 'save',
|
16 |
+
'onclick' => 'setLocation(\'' . $this->getPrintChronopostUrl() . '\')'
|
17 |
+
)
|
18 |
+
);
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
public function getPrintChronopostUrl()
|
23 |
+
{
|
24 |
+
return $this->getUrl('adminhtml/chronorelais_sales_impression/print', array(
|
25 |
+
'shipment_id' => $this->getShipment()->getId()
|
26 |
+
));
|
27 |
+
}
|
28 |
}
|
app/code/community/Chronopost/Chronorelais/Block/Sales/Shipment/Grid.php
CHANGED
@@ -1,259 +1,259 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Block_Sales_Shipment_Grid extends Mage_Adminhtml_Block_Widget_Grid {
|
4 |
-
|
5 |
-
public function __construct() {
|
6 |
-
parent::__construct();
|
7 |
-
$this->setId('sales_order_grid');
|
8 |
-
$this->setDefaultSort('created_at');
|
9 |
-
$this->setDefaultDir('DESC');
|
10 |
-
}
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Retrieve collection class
|
14 |
-
*
|
15 |
-
* @return string
|
16 |
-
*/
|
17 |
-
protected function _getCollectionClass() {
|
18 |
-
return 'sales/order_grid_collection';
|
19 |
-
}
|
20 |
-
|
21 |
-
protected function _prepareCollection() {
|
22 |
-
$_chronopost_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronopost/deliver_on_saturday');
|
23 |
-
$_chronorelais_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronorelais/deliver_on_saturday');
|
24 |
-
if ($_chronopost_deliver_saturday == 1) {
|
25 |
-
$_chronopost_deliver_saturday = 'Yes';
|
26 |
-
} else {
|
27 |
-
$_chronopost_deliver_saturday = 'No';
|
28 |
-
}
|
29 |
-
if ($_chronorelais_deliver_saturday == 1) {
|
30 |
-
$_chronorelais_deliver_saturday = 'Yes';
|
31 |
-
} else {
|
32 |
-
$_chronorelais_deliver_saturday = 'No';
|
33 |
-
}
|
34 |
-
|
35 |
-
$trackNumberFieldName = Mage::helper('chronorelais')->getTrackNumberFieldName();
|
36 |
-
|
37 |
-
$collection = Mage::getResourceModel($this->_getCollectionClass());
|
38 |
-
$collection->getSelect()->joinLeft(array('og' => $collection->getTable('sales/order')), 'main_table.entity_id = og.entity_id', array('CASE LOWER(SUBSTRING_INDEX(og.shipping_method,"_","1")) WHEN "chronoexpress" THEN "Chrono Express" WHEN "chronorelais" THEN "Chrono Relais" ELSE CONCAT(UCASE(SUBSTRING(SUBSTRING_INDEX(og.shipping_method,"_","1"),1,1)),LOWER(SUBSTRING(SUBSTRING_INDEX(og.shipping_method,"_","1"), 2))) END as chrono_shipping_method', 'og.total_qty_ordered'));
|
39 |
-
$collection->getSelect()->joinLeft(array('osg' => $collection->getTable('sales/shipment_grid')), 'main_table.entity_id = osg.order_id', array(new Zend_Db_Expr('if(isNull(osg.increment_id) , "--" , GROUP_CONCAT(DISTINCT osg.increment_id SEPARATOR \', \')) as shipment_increment_id', 'GROUP_CONCAT(DISTINCT osg.created_at SEPARATOR \', \') as shipment_created_at')));
|
40 |
-
$collection->getSelect()->joinLeft(array('ost' => $collection->getTable('sales/shipment_track')), 'main_table.entity_id = ost.order_id', array(new Zend_Db_Expr('if(isNull(ost.'.$trackNumberFieldName.') , "--" , GROUP_CONCAT(DISTINCT ost.'.$trackNumberFieldName.' SEPARATOR \', \')) as track_number', 'if(isNull(ost.title) , "--" , GROUP_CONCAT(DISTINCT ost.title SEPARATOR \', \')) as title')));
|
41 |
-
$collection->getSelect()->joinLeft(array('oes' => Mage::getSingleton('core/resource')->getTableName('sales_chronopost_order_export_status')), 'main_table.entity_id = oes.order_id', array(new Zend_Db_Expr("if(isNull(oes.livraison_le_samedi), CASE LOWER(SUBSTRING_INDEX(og.shipping_method,'_','1')) WHEN 'chronopost' THEN '$_chronopost_deliver_saturday' WHEN 'chronorelais' THEN '$_chronorelais_deliver_saturday' WHEN 'chronoexpress' THEN '--' ELSE 'No' END, oes.livraison_le_samedi) as livraison_le_samedi")));
|
42 |
-
$collection->getSelect()->where('og.shipping_method LIKE "chronorelais%" OR og.shipping_method LIKE "chronopost%" OR og.shipping_method LIKE "chronoexpress%"');
|
43 |
-
$collection->getSelect()->group('main_table.entity_id');
|
44 |
-
$sql = $collection->getSelectSql(true);
|
45 |
-
$collection->getSelect()->reset()->from(
|
46 |
-
array('e' => new Zend_Db_Expr("({$sql})")), array('e' => "*")
|
47 |
-
);
|
48 |
-
|
49 |
-
$this->setCollection($collection);
|
50 |
-
return parent::_prepareCollection();
|
51 |
-
}
|
52 |
-
|
53 |
-
protected function _prepareColumns() {
|
54 |
-
|
55 |
-
$this->addColumn('real_order_id', array(
|
56 |
-
'header' => Mage::helper('sales')->__('Order #'),
|
57 |
-
'width' => '100px',
|
58 |
-
'type' => 'text',
|
59 |
-
'index' => 'increment_id',
|
60 |
-
'filter' => false,
|
61 |
-
));
|
62 |
-
|
63 |
-
$this->addColumn('created_at', array(
|
64 |
-
'header' => Mage::helper('sales')->__('Order Date'),
|
65 |
-
'index' => 'created_at',
|
66 |
-
'type' => 'datetime',
|
67 |
-
'filter' => false,
|
68 |
-
));
|
69 |
-
|
70 |
-
$this->addColumn('shipment_increment_id', array(
|
71 |
-
'header' => Mage::helper('sales')->__('Shipment #'),
|
72 |
-
'index' => 'shipment_increment_id',
|
73 |
-
'type' => 'text',
|
74 |
-
'width' => '100px',
|
75 |
-
'filter' => false,
|
76 |
-
'column_css_class' => 'shipment_ids'
|
77 |
-
));
|
78 |
-
|
79 |
-
$this->addColumn('shipment_created_at', array(
|
80 |
-
'header' => Mage::helper('sales')->__('Date Shipped'),
|
81 |
-
'index' => 'shipment_created_at',
|
82 |
-
'type' => 'datetime',
|
83 |
-
'filter' => false,
|
84 |
-
));
|
85 |
-
|
86 |
-
$this->addColumn('shipping_name', array(
|
87 |
-
'header' => Mage::helper('sales')->__('Ship to Name'),
|
88 |
-
'index' => 'shipping_name',
|
89 |
-
'filter' => false,
|
90 |
-
));
|
91 |
-
|
92 |
-
$this->addColumn('total_qty_ordered', array(
|
93 |
-
'header' => Mage::helper('sales')->__('Total Qty'),
|
94 |
-
'index' => 'total_qty_ordered',
|
95 |
-
'type' => 'number',
|
96 |
-
'filter' => false,
|
97 |
-
));
|
98 |
-
|
99 |
-
$this->addColumn('track_number', array(
|
100 |
-
'header' => Mage::helper('sales')->__('Tracking'),
|
101 |
-
'index' => 'track_number',
|
102 |
-
'filter' => false,
|
103 |
-
));
|
104 |
-
|
105 |
-
$this->addColumn('chrono_shipping_method', array(
|
106 |
-
'header' => Mage::helper('sales')->__('Mode de transport'),
|
107 |
-
'index' => 'chrono_shipping_method',
|
108 |
-
'type' => 'text',
|
109 |
-
'filter' => false,
|
110 |
-
));
|
111 |
-
|
112 |
-
if (Mage::helper('chronorelais')->isSendingDay()) {
|
113 |
-
$this->addColumn('livraison_le_samedi', array(
|
114 |
-
'header' => Mage::helper('sales')->__('Livraison le Samedi'),
|
115 |
-
'index' => 'livraison_le_samedi',
|
116 |
-
'width' => '100px',
|
117 |
-
'class' => 'a-center',
|
118 |
-
'filter' => false,
|
119 |
-
));
|
120 |
-
}
|
121 |
-
|
122 |
-
$this->addColumn('etiquette_expedition', array(
|
123 |
-
'header' => Mage::helper('chronorelais')->__('Impression étiquette expédition'),
|
124 |
-
'type' => 'action',
|
125 |
-
'getter' => 'getId',
|
126 |
-
'column_css_class' => 'etiquette_expedition',
|
127 |
-
'actions' => array(
|
128 |
-
array(
|
129 |
-
'caption' => Mage::helper('chronorelais')->__('Expédition'),
|
130 |
-
'url' => array(
|
131 |
-
'base' => '*/*/print'
|
132 |
-
),
|
133 |
-
'field' => 'order_id'
|
134 |
-
)
|
135 |
-
),
|
136 |
-
'filter' => false,
|
137 |
-
'sortable' => false,
|
138 |
-
'index' => 'stores'
|
139 |
-
));
|
140 |
-
|
141 |
-
$this->addColumn('etiquette_retour', array(
|
142 |
-
'header' => Mage::helper('chronorelais')->__('Impression étiquette retour'),
|
143 |
-
'type' => 'action',
|
144 |
-
'getter' => 'getId',
|
145 |
-
'column_css_class' => 'etiquette_retour',
|
146 |
-
'actions' => array(
|
147 |
-
array(
|
148 |
-
'caption' => Mage::helper('chronorelais')->__('Retour SAV'),
|
149 |
-
'url' => array(
|
150 |
-
'base' => '*/*/printEtiquetteRetour'
|
151 |
-
),
|
152 |
-
'field' => 'order_id'
|
153 |
-
)
|
154 |
-
),
|
155 |
-
'filter' => false,
|
156 |
-
'renderer' => 'Chronopost_Chronorelais_Block_Sales_Shipment_Grid_Renderer_Retoursav',
|
157 |
-
'sortable' => false,
|
158 |
-
'index' => 'stores'
|
159 |
-
));
|
160 |
-
|
161 |
-
return parent::_prepareColumns();
|
162 |
-
}
|
163 |
-
|
164 |
-
public function getRowUrl($row) {
|
165 |
-
if (!Mage::getSingleton('admin/session')->isAllowed('sales/order/shipment')) {
|
166 |
-
return false;
|
167 |
-
}
|
168 |
-
|
169 |
-
return $this->getUrl('adminhtml/sales_order/view', array(
|
170 |
-
'order_id' => $row->getId(),
|
171 |
-
)
|
172 |
-
);
|
173 |
-
}
|
174 |
-
|
175 |
-
protected function _prepareMassaction() {
|
176 |
-
|
177 |
-
$this->setMassactionIdField('entity_id');
|
178 |
-
$this->getMassactionBlock()->setFormFieldName('order_ids');
|
179 |
-
$this->getMassactionBlock()->setUseSelectAll(false);
|
180 |
-
|
181 |
-
$this->getMassactionBlock()->addItem('cancel', array(
|
182 |
-
'label' => Mage::helper('chronorelais')->__('Annuler les étiquettes'),
|
183 |
-
'url' => $this->getUrl('*/*/cancelMass', array('_current' => true)),
|
184 |
-
));
|
185 |
-
|
186 |
-
$cmd = Mage::helper('chronorelais')->getConfigData('chronorelais/shipping/gs_path')." -v";
|
187 |
-
$res_shell = shell_exec($cmd);
|
188 |
-
if($res_shell !== null) {
|
189 |
-
$this->getMassactionBlock()->addItem('print', array(
|
190 |
-
'label' => Mage::helper('chronorelais')->__('Imprimer les étiquettes'),
|
191 |
-
'url' => $this->getUrl('*/*/printMass', array('_current' => true)),
|
192 |
-
));
|
193 |
-
}
|
194 |
-
|
195 |
-
if (Mage::helper('chronorelais')->isSendingDay()) {
|
196 |
-
|
197 |
-
$shipping = array(
|
198 |
-
'Yes' => Mage::helper('chronorelais')->__('Yes'),
|
199 |
-
'No' => Mage::helper('chronorelais')->__('No'));
|
200 |
-
$this->getMassactionBlock()->addItem('shipping', array(
|
201 |
-
'label' => Mage::helper('chronorelais')->__('Livraison le Samedi'),
|
202 |
-
'url' => $this->getUrl('*/*/massLivraisonSamediStatus', array('_current' => true)),
|
203 |
-
'additional' => array(
|
204 |
-
'visibility' => array(
|
205 |
-
'name' => 'status',
|
206 |
-
'type' => 'select',
|
207 |
-
'class' => 'required-entry',
|
208 |
-
'style' => 'width:80px',
|
209 |
-
'label' => Mage::helper('chronorelais')->__('Status'),
|
210 |
-
'values' => $shipping
|
211 |
-
)
|
212 |
-
)
|
213 |
-
));
|
214 |
-
}
|
215 |
-
return $this;
|
216 |
-
}
|
217 |
-
|
218 |
-
public function getGridUrl() {
|
219 |
-
return $this->getUrl('*/*/*', array('_current' => true));
|
220 |
-
}
|
221 |
-
|
222 |
-
public function getAdditionalJavaScript() {
|
223 |
-
echo "
|
224 |
-
var tds = $$('#sales_order_grid_table tr td.shipment_ids');
|
225 |
-
tds.each(function(item) {
|
226 |
-
var chaine = item.innerHTML.replace(/^\s+/g,'').replace(/\s+$/g,'');
|
227 |
-
var lienExpedition = $(item).next('.etiquette_expedition').down('a');
|
228 |
-
var lienRetour = $(item).next('.etiquette_retour').down('a');
|
229 |
-
if (chaine.split(', ').length > 1) {
|
230 |
-
var contentExpedition = '';
|
231 |
-
var contentRetour = '';
|
232 |
-
var numbers = chaine.split(', ');
|
233 |
-
for (var i=0; i<numbers.length; i++) {
|
234 |
-
contentExpedition += '<a href=\"' + lienExpedition.href.replace(/\/order_id\/\d+\//, '/shipment_increment_id/' + numbers[i] + '/') + '\">Expédition ' + numbers[i] + '</a><br />';
|
235 |
-
contentRetour += '<a href=\"' + lienRetour.href.replace(/\/order_id\/\d+\//, '/shipment_increment_id/' + numbers[i] + '/') + '\" >Retour SAV ' + numbers[i] + '</a><br />';
|
236 |
-
}
|
237 |
-
lienExpedition.up().innerHTML = contentExpedition;
|
238 |
-
if(typeof lienRetour !== 'undefined')
|
239 |
-
{
|
240 |
-
lienRetour.up().innerHTML = contentRetour;
|
241 |
-
}
|
242 |
-
}
|
243 |
-
else if(chaine.length > 2) {
|
244 |
-
lienExpedition.up().innerHTML = '<a href=\"' + lienExpedition.href.replace(/\/order_id\/\d+\//, '/shipment_increment_id/' + chaine + '/') + '\">Expédition</a><br />';
|
245 |
-
if(typeof lienRetour !== 'undefined')
|
246 |
-
{
|
247 |
-
lienRetour.up().innerHTML = '<a href=\"' + lienRetour.href.replace(/\/order_id\/\d+\//, '/shipment_increment_id/' + chaine + '/') + '\" >Retour SAV</a><br />';
|
248 |
-
}
|
249 |
-
}
|
250 |
-
else {
|
251 |
-
if(typeof lienRetour !== 'undefined')
|
252 |
-
{
|
253 |
-
lienRetour.up().innerHTML = '';
|
254 |
-
}
|
255 |
-
}
|
256 |
-
});";
|
257 |
-
}
|
258 |
-
|
259 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Block_Sales_Shipment_Grid extends Mage_Adminhtml_Block_Widget_Grid {
|
4 |
+
|
5 |
+
public function __construct() {
|
6 |
+
parent::__construct();
|
7 |
+
$this->setId('sales_order_grid');
|
8 |
+
$this->setDefaultSort('created_at');
|
9 |
+
$this->setDefaultDir('DESC');
|
10 |
+
}
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Retrieve collection class
|
14 |
+
*
|
15 |
+
* @return string
|
16 |
+
*/
|
17 |
+
protected function _getCollectionClass() {
|
18 |
+
return 'sales/order_grid_collection';
|
19 |
+
}
|
20 |
+
|
21 |
+
protected function _prepareCollection() {
|
22 |
+
$_chronopost_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronopost/deliver_on_saturday');
|
23 |
+
$_chronorelais_deliver_saturday = Mage::helper('chronorelais')->getConfigData('carriers/chronorelais/deliver_on_saturday');
|
24 |
+
if ($_chronopost_deliver_saturday == 1) {
|
25 |
+
$_chronopost_deliver_saturday = 'Yes';
|
26 |
+
} else {
|
27 |
+
$_chronopost_deliver_saturday = 'No';
|
28 |
+
}
|
29 |
+
if ($_chronorelais_deliver_saturday == 1) {
|
30 |
+
$_chronorelais_deliver_saturday = 'Yes';
|
31 |
+
} else {
|
32 |
+
$_chronorelais_deliver_saturday = 'No';
|
33 |
+
}
|
34 |
+
|
35 |
+
$trackNumberFieldName = Mage::helper('chronorelais')->getTrackNumberFieldName();
|
36 |
+
|
37 |
+
$collection = Mage::getResourceModel($this->_getCollectionClass());
|
38 |
+
$collection->getSelect()->joinLeft(array('og' => $collection->getTable('sales/order')), 'main_table.entity_id = og.entity_id', array('CASE LOWER(SUBSTRING_INDEX(og.shipping_method,"_","1")) WHEN "chronoexpress" THEN "Chrono Express" WHEN "chronorelais" THEN "Chrono Relais" ELSE CONCAT(UCASE(SUBSTRING(SUBSTRING_INDEX(og.shipping_method,"_","1"),1,1)),LOWER(SUBSTRING(SUBSTRING_INDEX(og.shipping_method,"_","1"), 2))) END as chrono_shipping_method', 'og.total_qty_ordered'));
|
39 |
+
$collection->getSelect()->joinLeft(array('osg' => $collection->getTable('sales/shipment_grid')), 'main_table.entity_id = osg.order_id', array(new Zend_Db_Expr('if(isNull(osg.increment_id) , "--" , GROUP_CONCAT(DISTINCT osg.increment_id SEPARATOR \', \')) as shipment_increment_id', 'GROUP_CONCAT(DISTINCT osg.created_at SEPARATOR \', \') as shipment_created_at')));
|
40 |
+
$collection->getSelect()->joinLeft(array('ost' => $collection->getTable('sales/shipment_track')), 'main_table.entity_id = ost.order_id', array(new Zend_Db_Expr('if(isNull(ost.'.$trackNumberFieldName.') , "--" , GROUP_CONCAT(DISTINCT ost.'.$trackNumberFieldName.' SEPARATOR \', \')) as track_number', 'if(isNull(ost.title) , "--" , GROUP_CONCAT(DISTINCT ost.title SEPARATOR \', \')) as title')));
|
41 |
+
$collection->getSelect()->joinLeft(array('oes' => Mage::getSingleton('core/resource')->getTableName('sales_chronopost_order_export_status')), 'main_table.entity_id = oes.order_id', array(new Zend_Db_Expr("if(isNull(oes.livraison_le_samedi), CASE LOWER(SUBSTRING_INDEX(og.shipping_method,'_','1')) WHEN 'chronopost' THEN '$_chronopost_deliver_saturday' WHEN 'chronorelais' THEN '$_chronorelais_deliver_saturday' WHEN 'chronoexpress' THEN '--' ELSE 'No' END, oes.livraison_le_samedi) as livraison_le_samedi")));
|
42 |
+
$collection->getSelect()->where('og.shipping_method LIKE "chronorelais%" OR og.shipping_method LIKE "chronopost%" OR og.shipping_method LIKE "chronoexpress%"');
|
43 |
+
$collection->getSelect()->group('main_table.entity_id');
|
44 |
+
$sql = $collection->getSelectSql(true);
|
45 |
+
$collection->getSelect()->reset()->from(
|
46 |
+
array('e' => new Zend_Db_Expr("({$sql})")), array('e' => "*")
|
47 |
+
);
|
48 |
+
|
49 |
+
$this->setCollection($collection);
|
50 |
+
return parent::_prepareCollection();
|
51 |
+
}
|
52 |
+
|
53 |
+
protected function _prepareColumns() {
|
54 |
+
|
55 |
+
$this->addColumn('real_order_id', array(
|
56 |
+
'header' => Mage::helper('sales')->__('Order #'),
|
57 |
+
'width' => '100px',
|
58 |
+
'type' => 'text',
|
59 |
+
'index' => 'increment_id',
|
60 |
+
'filter' => false,
|
61 |
+
));
|
62 |
+
|
63 |
+
$this->addColumn('created_at', array(
|
64 |
+
'header' => Mage::helper('sales')->__('Order Date'),
|
65 |
+
'index' => 'created_at',
|
66 |
+
'type' => 'datetime',
|
67 |
+
'filter' => false,
|
68 |
+
));
|
69 |
+
|
70 |
+
$this->addColumn('shipment_increment_id', array(
|
71 |
+
'header' => Mage::helper('sales')->__('Shipment #'),
|
72 |
+
'index' => 'shipment_increment_id',
|
73 |
+
'type' => 'text',
|
74 |
+
'width' => '100px',
|
75 |
+
'filter' => false,
|
76 |
+
'column_css_class' => 'shipment_ids'
|
77 |
+
));
|
78 |
+
|
79 |
+
$this->addColumn('shipment_created_at', array(
|
80 |
+
'header' => Mage::helper('sales')->__('Date Shipped'),
|
81 |
+
'index' => 'shipment_created_at',
|
82 |
+
'type' => 'datetime',
|
83 |
+
'filter' => false,
|
84 |
+
));
|
85 |
+
|
86 |
+
$this->addColumn('shipping_name', array(
|
87 |
+
'header' => Mage::helper('sales')->__('Ship to Name'),
|
88 |
+
'index' => 'shipping_name',
|
89 |
+
'filter' => false,
|
90 |
+
));
|
91 |
+
|
92 |
+
$this->addColumn('total_qty_ordered', array(
|
93 |
+
'header' => Mage::helper('sales')->__('Total Qty'),
|
94 |
+
'index' => 'total_qty_ordered',
|
95 |
+
'type' => 'number',
|
96 |
+
'filter' => false,
|
97 |
+
));
|
98 |
+
|
99 |
+
$this->addColumn('track_number', array(
|
100 |
+
'header' => Mage::helper('sales')->__('Tracking'),
|
101 |
+
'index' => 'track_number',
|
102 |
+
'filter' => false,
|
103 |
+
));
|
104 |
+
|
105 |
+
$this->addColumn('chrono_shipping_method', array(
|
106 |
+
'header' => Mage::helper('sales')->__('Mode de transport'),
|
107 |
+
'index' => 'chrono_shipping_method',
|
108 |
+
'type' => 'text',
|
109 |
+
'filter' => false,
|
110 |
+
));
|
111 |
+
|
112 |
+
if (Mage::helper('chronorelais')->isSendingDay()) {
|
113 |
+
$this->addColumn('livraison_le_samedi', array(
|
114 |
+
'header' => Mage::helper('sales')->__('Livraison le Samedi'),
|
115 |
+
'index' => 'livraison_le_samedi',
|
116 |
+
'width' => '100px',
|
117 |
+
'class' => 'a-center',
|
118 |
+
'filter' => false,
|
119 |
+
));
|
120 |
+
}
|
121 |
+
|
122 |
+
$this->addColumn('etiquette_expedition', array(
|
123 |
+
'header' => Mage::helper('chronorelais')->__('Impression étiquette expédition'),
|
124 |
+
'type' => 'action',
|
125 |
+
'getter' => 'getId',
|
126 |
+
'column_css_class' => 'etiquette_expedition',
|
127 |
+
'actions' => array(
|
128 |
+
array(
|
129 |
+
'caption' => Mage::helper('chronorelais')->__('Expédition'),
|
130 |
+
'url' => array(
|
131 |
+
'base' => '*/*/print'
|
132 |
+
),
|
133 |
+
'field' => 'order_id'
|
134 |
+
)
|
135 |
+
),
|
136 |
+
'filter' => false,
|
137 |
+
'sortable' => false,
|
138 |
+
'index' => 'stores'
|
139 |
+
));
|
140 |
+
|
141 |
+
$this->addColumn('etiquette_retour', array(
|
142 |
+
'header' => Mage::helper('chronorelais')->__('Impression étiquette retour'),
|
143 |
+
'type' => 'action',
|
144 |
+
'getter' => 'getId',
|
145 |
+
'column_css_class' => 'etiquette_retour',
|
146 |
+
'actions' => array(
|
147 |
+
array(
|
148 |
+
'caption' => Mage::helper('chronorelais')->__('Retour SAV'),
|
149 |
+
'url' => array(
|
150 |
+
'base' => '*/*/printEtiquetteRetour'
|
151 |
+
),
|
152 |
+
'field' => 'order_id'
|
153 |
+
)
|
154 |
+
),
|
155 |
+
'filter' => false,
|
156 |
+
'renderer' => 'Chronopost_Chronorelais_Block_Sales_Shipment_Grid_Renderer_Retoursav',
|
157 |
+
'sortable' => false,
|
158 |
+
'index' => 'stores'
|
159 |
+
));
|
160 |
+
|
161 |
+
return parent::_prepareColumns();
|
162 |
+
}
|
163 |
+
|
164 |
+
public function getRowUrl($row) {
|
165 |
+
if (!Mage::getSingleton('admin/session')->isAllowed('sales/order/shipment')) {
|
166 |
+
return false;
|
167 |
+
}
|
168 |
+
|
169 |
+
return $this->getUrl('adminhtml/sales_order/view', array(
|
170 |
+
'order_id' => $row->getId(),
|
171 |
+
)
|
172 |
+
);
|
173 |
+
}
|
174 |
+
|
175 |
+
protected function _prepareMassaction() {
|
176 |
+
|
177 |
+
$this->setMassactionIdField('entity_id');
|
178 |
+
$this->getMassactionBlock()->setFormFieldName('order_ids');
|
179 |
+
$this->getMassactionBlock()->setUseSelectAll(false);
|
180 |
+
|
181 |
+
$this->getMassactionBlock()->addItem('cancel', array(
|
182 |
+
'label' => Mage::helper('chronorelais')->__('Annuler les étiquettes'),
|
183 |
+
'url' => $this->getUrl('*/*/cancelMass', array('_current' => true)),
|
184 |
+
));
|
185 |
+
|
186 |
+
$cmd = Mage::helper('chronorelais')->getConfigData('chronorelais/shipping/gs_path')." -v";
|
187 |
+
$res_shell = shell_exec($cmd);
|
188 |
+
if($res_shell !== null) {
|
189 |
+
$this->getMassactionBlock()->addItem('print', array(
|
190 |
+
'label' => Mage::helper('chronorelais')->__('Imprimer les étiquettes'),
|
191 |
+
'url' => $this->getUrl('*/*/printMass', array('_current' => true)),
|
192 |
+
));
|
193 |
+
}
|
194 |
+
|
195 |
+
if (Mage::helper('chronorelais')->isSendingDay()) {
|
196 |
+
|
197 |
+
$shipping = array(
|
198 |
+
'Yes' => Mage::helper('chronorelais')->__('Yes'),
|
199 |
+
'No' => Mage::helper('chronorelais')->__('No'));
|
200 |
+
$this->getMassactionBlock()->addItem('shipping', array(
|
201 |
+
'label' => Mage::helper('chronorelais')->__('Livraison le Samedi'),
|
202 |
+
'url' => $this->getUrl('*/*/massLivraisonSamediStatus', array('_current' => true)),
|
203 |
+
'additional' => array(
|
204 |
+
'visibility' => array(
|
205 |
+
'name' => 'status',
|
206 |
+
'type' => 'select',
|
207 |
+
'class' => 'required-entry',
|
208 |
+
'style' => 'width:80px',
|
209 |
+
'label' => Mage::helper('chronorelais')->__('Status'),
|
210 |
+
'values' => $shipping
|
211 |
+
)
|
212 |
+
)
|
213 |
+
));
|
214 |
+
}
|
215 |
+
return $this;
|
216 |
+
}
|
217 |
+
|
218 |
+
public function getGridUrl() {
|
219 |
+
return $this->getUrl('*/*/*', array('_current' => true));
|
220 |
+
}
|
221 |
+
|
222 |
+
public function getAdditionalJavaScript() {
|
223 |
+
echo "
|
224 |
+
var tds = $$('#sales_order_grid_table tr td.shipment_ids');
|
225 |
+
tds.each(function(item) {
|
226 |
+
var chaine = item.innerHTML.replace(/^\s+/g,'').replace(/\s+$/g,'');
|
227 |
+
var lienExpedition = $(item).next('.etiquette_expedition').down('a');
|
228 |
+
var lienRetour = $(item).next('.etiquette_retour').down('a');
|
229 |
+
if (chaine.split(', ').length > 1) {
|
230 |
+
var contentExpedition = '';
|
231 |
+
var contentRetour = '';
|
232 |
+
var numbers = chaine.split(', ');
|
233 |
+
for (var i=0; i<numbers.length; i++) {
|
234 |
+
contentExpedition += '<a href=\"' + lienExpedition.href.replace(/\/order_id\/\d+\//, '/shipment_increment_id/' + numbers[i] + '/') + '\">Expédition ' + numbers[i] + '</a><br />';
|
235 |
+
contentRetour += '<a href=\"' + lienRetour.href.replace(/\/order_id\/\d+\//, '/shipment_increment_id/' + numbers[i] + '/') + '\" >Retour SAV ' + numbers[i] + '</a><br />';
|
236 |
+
}
|
237 |
+
lienExpedition.up().innerHTML = contentExpedition;
|
238 |
+
if(typeof lienRetour !== 'undefined')
|
239 |
+
{
|
240 |
+
lienRetour.up().innerHTML = contentRetour;
|
241 |
+
}
|
242 |
+
}
|
243 |
+
else if(chaine.length > 2) {
|
244 |
+
lienExpedition.up().innerHTML = '<a href=\"' + lienExpedition.href.replace(/\/order_id\/\d+\//, '/shipment_increment_id/' + chaine + '/') + '\">Expédition</a><br />';
|
245 |
+
if(typeof lienRetour !== 'undefined')
|
246 |
+
{
|
247 |
+
lienRetour.up().innerHTML = '<a href=\"' + lienRetour.href.replace(/\/order_id\/\d+\//, '/shipment_increment_id/' + chaine + '/') + '\" >Retour SAV</a><br />';
|
248 |
+
}
|
249 |
+
}
|
250 |
+
else {
|
251 |
+
if(typeof lienRetour !== 'undefined')
|
252 |
+
{
|
253 |
+
lienRetour.up().innerHTML = '';
|
254 |
+
}
|
255 |
+
}
|
256 |
+
});";
|
257 |
+
}
|
258 |
+
|
259 |
+
}
|
app/code/community/Chronopost/Chronorelais/Block/Sales/Shipment/Grid/Renderer/Retoursav.php
CHANGED
@@ -1,31 +1,31 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Block_Sales_Shipment_Grid_Renderer_Retoursav
|
3 |
-
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action
|
4 |
-
{
|
5 |
-
|
6 |
-
public function render(Varien_Object $row)
|
7 |
-
{
|
8 |
-
$actions = $this->getColumn()->getActions();
|
9 |
-
if ( empty($actions) || !is_array($actions) ) {
|
10 |
-
return ' ';
|
11 |
-
}
|
12 |
-
$countryId = $row->getShippingAddress()->getCountryId();
|
13 |
-
$shippingMethodCode = strtolower($row->getChronoShippingMethod());
|
14 |
-
|
15 |
-
if($countryId != 'FR' && strpos($shippingMethodCode, 'chronorelaiseurope') === false) {
|
16 |
-
return '';
|
17 |
-
}
|
18 |
-
$out = '';
|
19 |
-
$i = 0;
|
20 |
-
foreach ($actions as $action){
|
21 |
-
if (is_array($action) ) {
|
22 |
-
if($i > 0) {
|
23 |
-
$out .= '<br />';
|
24 |
-
}
|
25 |
-
$out .= $this->_toLinkHtml($action, $row);
|
26 |
-
$i++;
|
27 |
-
}
|
28 |
-
}
|
29 |
-
return $out;
|
30 |
-
}
|
31 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Block_Sales_Shipment_Grid_Renderer_Retoursav
|
3 |
+
extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action
|
4 |
+
{
|
5 |
+
|
6 |
+
public function render(Varien_Object $row)
|
7 |
+
{
|
8 |
+
$actions = $this->getColumn()->getActions();
|
9 |
+
if ( empty($actions) || !is_array($actions) ) {
|
10 |
+
return ' ';
|
11 |
+
}
|
12 |
+
$countryId = $row->getShippingAddress()->getCountryId();
|
13 |
+
$shippingMethodCode = strtolower($row->getChronoShippingMethod());
|
14 |
+
|
15 |
+
if($countryId != 'FR' && strpos($shippingMethodCode, 'chronorelaiseurope') === false) {
|
16 |
+
return '';
|
17 |
+
}
|
18 |
+
$out = '';
|
19 |
+
$i = 0;
|
20 |
+
foreach ($actions as $action){
|
21 |
+
if (is_array($action) ) {
|
22 |
+
if($i > 0) {
|
23 |
+
$out .= '<br />';
|
24 |
+
}
|
25 |
+
$out .= $this->_toLinkHtml($action, $row);
|
26 |
+
$i++;
|
27 |
+
}
|
28 |
+
}
|
29 |
+
return $out;
|
30 |
+
}
|
31 |
+
}
|
app/code/community/Chronopost/Chronorelais/Controller/Abstract.php
CHANGED
@@ -1,130 +1,130 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Magento Chronopost Chronorelais Module
|
5 |
-
*
|
6 |
-
* NOTICE OF LICENSE
|
7 |
-
*
|
8 |
-
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
-
* that is bundled with this package in the file LICENSE.txt.
|
10 |
-
* It is also available through the world-wide-web at this URL:
|
11 |
-
* http://opensource.org/licenses/osl-3.0.php
|
12 |
-
* If you did not receive a copy of the license and are unable to
|
13 |
-
* obtain it through the world-wide-web, please send an email
|
14 |
-
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
-
*
|
16 |
-
* @category Chronopost
|
17 |
-
* @package Chronopost_Chronorelais
|
18 |
-
* @copyright Copyright (c) 2008-10 Owebia (http://www.owebia.com/)
|
19 |
-
* @author Antoine Lemoine
|
20 |
-
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
-
*/
|
22 |
-
|
23 |
-
class Chronopost_Chronorelais_Controller_Abstract extends Mage_Adminhtml_Controller_Action
|
24 |
-
{
|
25 |
-
public function __() {
|
26 |
-
$args = func_get_args();
|
27 |
-
$message = array_shift($args);
|
28 |
-
if ($message instanceof OS_Message) {
|
29 |
-
$args = $message->args;
|
30 |
-
$message = $message->message;
|
31 |
-
}
|
32 |
-
|
33 |
-
$output = Mage::helper('shipping')->__($message);
|
34 |
-
if (count($args)==0) {
|
35 |
-
return $output;
|
36 |
-
}
|
37 |
-
|
38 |
-
if (!isset($this->_translate_inline)) {
|
39 |
-
$this->_translate_inline = Mage::getSingleton('core/translate')->getTranslateInline();
|
40 |
-
}
|
41 |
-
if ($this->_translate_inline) {
|
42 |
-
$parts = explode('}}{{',$output);
|
43 |
-
$parts[0] = vsprintf($parts[0],$args);
|
44 |
-
return implode('}}{{',$parts);
|
45 |
-
} else {
|
46 |
-
return vsprintf($output,$args);
|
47 |
-
}
|
48 |
-
}
|
49 |
-
|
50 |
-
protected function getIncludingPath($path) {
|
51 |
-
if (file_exists(dirname(__FILE__).'/Chronopost_Chronorelais_includes_'.$path)) {
|
52 |
-
return 'Chronopost_Chronorelais_includes_'.$path;
|
53 |
-
} else {
|
54 |
-
return Mage::getBaseDir('code').'/community/Chronopost/Chronorelais/includes/'.$path;
|
55 |
-
}
|
56 |
-
}
|
57 |
-
|
58 |
-
protected function getMimeType($extension) {
|
59 |
-
$mime_type_array = array(
|
60 |
-
'.gz' => 'application/x-gzip',
|
61 |
-
'.tgz' => 'application/x-gzip',
|
62 |
-
'.zip' => 'application/zip',
|
63 |
-
'.pdf' => 'application/pdf',
|
64 |
-
'.png' => 'image/png',
|
65 |
-
'.gif' => 'image/gif',
|
66 |
-
'.jpg' => 'image/jpeg',
|
67 |
-
'.jpeg' => 'image/jpeg',
|
68 |
-
'.txt' => 'text/plain',
|
69 |
-
'.htm' => 'text/html',
|
70 |
-
'.html' => 'text/html',
|
71 |
-
'.mpg' => 'video/mpeg',
|
72 |
-
'.avi' => 'video/x-msvideo',
|
73 |
-
);
|
74 |
-
return isset($mime_type_array[$extension]) ? $mime_type_array[$extension] : 'application/octet-stream';
|
75 |
-
}
|
76 |
-
|
77 |
-
protected function forceDownload($filename, $content) {
|
78 |
-
if (headers_sent()) {
|
79 |
-
trigger_error('forceDownload($filename) - Headers have already been sent',E_USER_ERROR);
|
80 |
-
return false;
|
81 |
-
}
|
82 |
-
|
83 |
-
$extension = strrchr($filename,'.');
|
84 |
-
$mime_type = $this->getMimeType($extension);
|
85 |
-
|
86 |
-
header('Content-disposition: attachment; filename="'.$filename.'"');
|
87 |
-
header('Content-Type: application/force-download');
|
88 |
-
header('Content-Transfer-Encoding: '.$mime_type."\n"); // Surtout ne pas enlever le \n
|
89 |
-
header('Pragma: no-cache');
|
90 |
-
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
|
91 |
-
header('Expires: 0');
|
92 |
-
echo $content;
|
93 |
-
return true;
|
94 |
-
}
|
95 |
-
|
96 |
-
protected function jsEscape($input) {
|
97 |
-
return str_replace(array("\r\n","\r","\n","'"),array("\\n","\\n","\\n","\\'"),$input);
|
98 |
-
}
|
99 |
-
|
100 |
-
protected function cleanKey($key) {
|
101 |
-
return preg_replace('/[^a-z0-9-_]/i','_-_',$key);
|
102 |
-
}
|
103 |
-
|
104 |
-
protected function page($id, $title, $content) {
|
105 |
-
return "<div id=\"ocseditor-".$id."-page\" class=\"ocseditor-page\">"
|
106 |
-
.$this->pageHeader($title,$this->button('Close',"ocseditor.closePage(this);",'cancel'))
|
107 |
-
."<div class=\"page-content\">".$content."</div>"
|
108 |
-
."</div>"
|
109 |
-
;
|
110 |
-
}
|
111 |
-
|
112 |
-
protected function pageHeader($title, $buttons) {
|
113 |
-
return "<div class=\"content-header\">"
|
114 |
-
."<table cellspacing=\"0\"><tr>"
|
115 |
-
."<td><h3>".$this->__($title)."</h3></td>"
|
116 |
-
."<td class=\"form-buttons\">"
|
117 |
-
.$buttons
|
118 |
-
."</td>"
|
119 |
-
."</tr></table>"
|
120 |
-
."</div>"
|
121 |
-
;
|
122 |
-
}
|
123 |
-
|
124 |
-
protected function button($label, $onclick, $class_name='') {
|
125 |
-
$class_name = 'scalable'.($class_name!='' ? ' '.$class_name : '');
|
126 |
-
return "<button type=\"button\" class=\"".$class_name."\" onclick=\"".$onclick."\"><span>".$this->__($label)."</span></button>";
|
127 |
-
}
|
128 |
-
}
|
129 |
-
|
130 |
?>
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Magento Chronopost Chronorelais Module
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* @category Chronopost
|
17 |
+
* @package Chronopost_Chronorelais
|
18 |
+
* @copyright Copyright (c) 2008-10 Owebia (http://www.owebia.com/)
|
19 |
+
* @author Antoine Lemoine
|
20 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
+
*/
|
22 |
+
|
23 |
+
class Chronopost_Chronorelais_Controller_Abstract extends Mage_Adminhtml_Controller_Action
|
24 |
+
{
|
25 |
+
public function __() {
|
26 |
+
$args = func_get_args();
|
27 |
+
$message = array_shift($args);
|
28 |
+
if ($message instanceof OS_Message) {
|
29 |
+
$args = $message->args;
|
30 |
+
$message = $message->message;
|
31 |
+
}
|
32 |
+
|
33 |
+
$output = Mage::helper('shipping')->__($message);
|
34 |
+
if (count($args)==0) {
|
35 |
+
return $output;
|
36 |
+
}
|
37 |
+
|
38 |
+
if (!isset($this->_translate_inline)) {
|
39 |
+
$this->_translate_inline = Mage::getSingleton('core/translate')->getTranslateInline();
|
40 |
+
}
|
41 |
+
if ($this->_translate_inline) {
|
42 |
+
$parts = explode('}}{{',$output);
|
43 |
+
$parts[0] = vsprintf($parts[0],$args);
|
44 |
+
return implode('}}{{',$parts);
|
45 |
+
} else {
|
46 |
+
return vsprintf($output,$args);
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
protected function getIncludingPath($path) {
|
51 |
+
if (file_exists(dirname(__FILE__).'/Chronopost_Chronorelais_includes_'.$path)) {
|
52 |
+
return 'Chronopost_Chronorelais_includes_'.$path;
|
53 |
+
} else {
|
54 |
+
return Mage::getBaseDir('code').'/community/Chronopost/Chronorelais/includes/'.$path;
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
protected function getMimeType($extension) {
|
59 |
+
$mime_type_array = array(
|
60 |
+
'.gz' => 'application/x-gzip',
|
61 |
+
'.tgz' => 'application/x-gzip',
|
62 |
+
'.zip' => 'application/zip',
|
63 |
+
'.pdf' => 'application/pdf',
|
64 |
+
'.png' => 'image/png',
|
65 |
+
'.gif' => 'image/gif',
|
66 |
+
'.jpg' => 'image/jpeg',
|
67 |
+
'.jpeg' => 'image/jpeg',
|
68 |
+
'.txt' => 'text/plain',
|
69 |
+
'.htm' => 'text/html',
|
70 |
+
'.html' => 'text/html',
|
71 |
+
'.mpg' => 'video/mpeg',
|
72 |
+
'.avi' => 'video/x-msvideo',
|
73 |
+
);
|
74 |
+
return isset($mime_type_array[$extension]) ? $mime_type_array[$extension] : 'application/octet-stream';
|
75 |
+
}
|
76 |
+
|
77 |
+
protected function forceDownload($filename, $content) {
|
78 |
+
if (headers_sent()) {
|
79 |
+
trigger_error('forceDownload($filename) - Headers have already been sent',E_USER_ERROR);
|
80 |
+
return false;
|
81 |
+
}
|
82 |
+
|
83 |
+
$extension = strrchr($filename,'.');
|
84 |
+
$mime_type = $this->getMimeType($extension);
|
85 |
+
|
86 |
+
header('Content-disposition: attachment; filename="'.$filename.'"');
|
87 |
+
header('Content-Type: application/force-download');
|
88 |
+
header('Content-Transfer-Encoding: '.$mime_type."\n"); // Surtout ne pas enlever le \n
|
89 |
+
header('Pragma: no-cache');
|
90 |
+
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
|
91 |
+
header('Expires: 0');
|
92 |
+
echo $content;
|
93 |
+
return true;
|
94 |
+
}
|
95 |
+
|
96 |
+
protected function jsEscape($input) {
|
97 |
+
return str_replace(array("\r\n","\r","\n","'"),array("\\n","\\n","\\n","\\'"),$input);
|
98 |
+
}
|
99 |
+
|
100 |
+
protected function cleanKey($key) {
|
101 |
+
return preg_replace('/[^a-z0-9-_]/i','_-_',$key);
|
102 |
+
}
|
103 |
+
|
104 |
+
protected function page($id, $title, $content) {
|
105 |
+
return "<div id=\"ocseditor-".$id."-page\" class=\"ocseditor-page\">"
|
106 |
+
.$this->pageHeader($title,$this->button('Close',"ocseditor.closePage(this);",'cancel'))
|
107 |
+
."<div class=\"page-content\">".$content."</div>"
|
108 |
+
."</div>"
|
109 |
+
;
|
110 |
+
}
|
111 |
+
|
112 |
+
protected function pageHeader($title, $buttons) {
|
113 |
+
return "<div class=\"content-header\">"
|
114 |
+
."<table cellspacing=\"0\"><tr>"
|
115 |
+
."<td><h3>".$this->__($title)."</h3></td>"
|
116 |
+
."<td class=\"form-buttons\">"
|
117 |
+
.$buttons
|
118 |
+
."</td>"
|
119 |
+
."</tr></table>"
|
120 |
+
."</div>"
|
121 |
+
;
|
122 |
+
}
|
123 |
+
|
124 |
+
protected function button($label, $onclick, $class_name='') {
|
125 |
+
$class_name = 'scalable'.($class_name!='' ? ' '.$class_name : '');
|
126 |
+
return "<button type=\"button\" class=\"".$class_name."\" onclick=\"".$onclick."\"><span>".$this->__($label)."</span></button>";
|
127 |
+
}
|
128 |
+
}
|
129 |
+
|
130 |
?>
|
app/code/community/Chronopost/Chronorelais/Helper/Conflicts.php
CHANGED
@@ -1,159 +1,159 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Helper_Conflicts extends Mage_Core_Helper_Abstract {
|
4 |
-
|
5 |
-
const DEBUG = false;
|
6 |
-
|
7 |
-
var $rewrites;
|
8 |
-
|
9 |
-
var $whiteList = array("Mage_Adminhtml_Controller_Action", "Mage_Core_Controller_Front_Action");
|
10 |
-
|
11 |
-
public function checkForConflicts() {
|
12 |
-
$this->rewrites = array(
|
13 |
-
"chrono" => array(
|
14 |
-
"blocks" => array(),
|
15 |
-
"helpers" => array(),
|
16 |
-
"models" => array(),
|
17 |
-
"controllers" => array(),
|
18 |
-
),
|
19 |
-
"other" => array(
|
20 |
-
"blocks" => array(),
|
21 |
-
"helpers" => array(),
|
22 |
-
"models" => array(),
|
23 |
-
"controllers" => array(),
|
24 |
-
),
|
25 |
-
);
|
26 |
-
|
27 |
-
// Define pathes to check
|
28 |
-
$mageCodeDir = Mage::getBaseDir() . DS . 'app' . DS . 'code' . DS;
|
29 |
-
$modulePathes = array($mageCodeDir . 'local', $mageCodeDir . 'community');
|
30 |
-
|
31 |
-
$result = "";
|
32 |
-
|
33 |
-
// Recursively browse pathes
|
34 |
-
foreach ($modulePathes as $modulePath) {
|
35 |
-
|
36 |
-
if(!is_dir($modulePath)) {
|
37 |
-
continue;
|
38 |
-
}
|
39 |
-
|
40 |
-
$dir = new RecursiveDirectoryIterator($modulePath, FilesystemIterator::SKIP_DOTS);
|
41 |
-
$ite = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::SELF_FIRST);
|
42 |
-
|
43 |
-
// Get config.xml files
|
44 |
-
$configXmls = new RegexIterator($ite, '/^.+config\.xml$/i', RecursiveRegexIterator::GET_MATCH);
|
45 |
-
|
46 |
-
foreach ($configXmls as $configXml) {
|
47 |
-
if (self::DEBUG) {
|
48 |
-
$result .= '' . $configXml[0] . "\n";
|
49 |
-
}
|
50 |
-
|
51 |
-
// Parse XML to look for rewrites
|
52 |
-
$xml = simplexml_load_file($configXml[0]);
|
53 |
-
$rewrites = $xml->xpath('//rewrite');
|
54 |
-
|
55 |
-
while(list( , $node) = each($rewrites)) {
|
56 |
-
$moduleNode = $node->xpath("..");
|
57 |
-
$moduleName = $moduleNode[0]->getName();
|
58 |
-
|
59 |
-
// Filter route rewrites
|
60 |
-
if ($moduleName != "global") {
|
61 |
-
$typeNode = $moduleNode[0]->xpath("..");
|
62 |
-
$typeName = $typeNode[0]->getName();
|
63 |
-
|
64 |
-
foreach ($node->children() as $child) {
|
65 |
-
$rewriteFrom = "Mage_" . str_replace(" ", "_", ucwords($moduleName . " " . substr($typeName, 0, -1) . " " . str_replace("_", " ", $child->getName())));
|
66 |
-
|
67 |
-
if (self::DEBUG) {
|
68 |
-
$result .= "Rewrite from : " . $rewriteFrom . "\n";
|
69 |
-
$result .= "Rewrite to : " . $child->__toString() . "\n";
|
70 |
-
}
|
71 |
-
|
72 |
-
if (strpos($child->__toString(), "Chronopost_Chronorelais") !== false) {
|
73 |
-
$scope = "chrono";
|
74 |
-
} else {
|
75 |
-
$scope = "other";
|
76 |
-
}
|
77 |
-
|
78 |
-
if (!isset($this->rewrites[$scope][$typeName][$rewriteFrom])) {
|
79 |
-
$this->rewrites[$scope][$typeName][$rewriteFrom] = array();
|
80 |
-
}
|
81 |
-
$this->rewrites[$scope][$typeName][$rewriteFrom][] = $child->__toString();
|
82 |
-
}
|
83 |
-
}
|
84 |
-
}
|
85 |
-
|
86 |
-
if (self::DEBUG) {
|
87 |
-
$result .= "\n";
|
88 |
-
}
|
89 |
-
}
|
90 |
-
|
91 |
-
// Get controllers PHP files
|
92 |
-
$controllerPhps = new RegexIterator($ite, '/^.+controllers.+\.php$/i', RecursiveRegexIterator::GET_MATCH);
|
93 |
-
|
94 |
-
foreach ($controllerPhps as $controllerPhp) {
|
95 |
-
$className = "";
|
96 |
-
$scope = "";
|
97 |
-
|
98 |
-
$php_file = file_get_contents($controllerPhp[0]);
|
99 |
-
$tokens = token_get_all($php_file);
|
100 |
-
$class_token = false;
|
101 |
-
$extends_token = false;
|
102 |
-
foreach ($tokens as $token) {
|
103 |
-
if (is_array($token)) {
|
104 |
-
if ($token[0] == T_CLASS) {
|
105 |
-
$class_token = true;
|
106 |
-
} else if ($class_token && $token[0] == T_STRING) {
|
107 |
-
$className = $token[1];
|
108 |
-
$class_token = false;
|
109 |
-
} else if ($token[0] == T_EXTENDS) {
|
110 |
-
$extends_token = true;
|
111 |
-
} else if ($extends_token && $token[0] == T_STRING) {
|
112 |
-
if (self::DEBUG) {
|
113 |
-
$result .= 'File ' . $controllerPhp[0] . ":\n" .
|
114 |
-
" Class " . $className . "\n" .
|
115 |
-
" Extends " . $token[1] . "\n\n";
|
116 |
-
}
|
117 |
-
|
118 |
-
if (empty($scope)) {
|
119 |
-
if (strpos($className, "Chronopost_Chronorelais") !== false) {
|
120 |
-
$scope = "chrono";
|
121 |
-
} else {
|
122 |
-
$scope = "other";
|
123 |
-
}
|
124 |
-
}
|
125 |
-
|
126 |
-
if (!isset($this->rewrites[$scope]["controllers"][$token[1]])) {
|
127 |
-
$this->rewrites[$scope]["controllers"][$token[1]] = array();
|
128 |
-
}
|
129 |
-
$this->rewrites[$scope]["controllers"][$token[1]][] = $className;
|
130 |
-
|
131 |
-
$className = "";
|
132 |
-
$extends_token = false;
|
133 |
-
}
|
134 |
-
}
|
135 |
-
}
|
136 |
-
}
|
137 |
-
}
|
138 |
-
|
139 |
-
// Parse rewrites table to check for conflicts
|
140 |
-
|
141 |
-
foreach ($this->rewrites['chrono'] as $type => $rewrites) {
|
142 |
-
foreach ($rewrites as $from => $tos) {
|
143 |
-
if (!in_array($from, $this->whiteList) && isset($this->rewrites['other'][$type][$from])) {
|
144 |
-
// Houston, we have a rewrite
|
145 |
-
$result .= "<p>[" . $type . "] La réécriture de la Classe <u>" . $from . "</u> par <u>" . implode(', ', $tos) . "</u> pourrait entrer en conflit avec les réécritures faites par <u>" . implode(', ', $this->rewrites['other'][$type][$from]) . "</u></p>\r\n";
|
146 |
-
}
|
147 |
-
}
|
148 |
-
}
|
149 |
-
|
150 |
-
if (empty($result)) {
|
151 |
-
$result = "Aucun conflit n'a été detecté au niveau des controleurs, des classes de block, des helpers ou des modèles.";
|
152 |
-
} else {
|
153 |
-
$result = "<p>Des conflits potentiels ont été détectés :</p>" . $result . "<p>Ces résultats sont à analyser individuellement. Ils offrent des pistes à étudier et ne remplacent pas une étude approfondie du code.</p>";
|
154 |
-
}
|
155 |
-
|
156 |
-
return $result;
|
157 |
-
}
|
158 |
-
|
159 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Helper_Conflicts extends Mage_Core_Helper_Abstract {
|
4 |
+
|
5 |
+
const DEBUG = false;
|
6 |
+
|
7 |
+
var $rewrites;
|
8 |
+
|
9 |
+
var $whiteList = array("Mage_Adminhtml_Controller_Action", "Mage_Core_Controller_Front_Action");
|
10 |
+
|
11 |
+
public function checkForConflicts() {
|
12 |
+
$this->rewrites = array(
|
13 |
+
"chrono" => array(
|
14 |
+
"blocks" => array(),
|
15 |
+
"helpers" => array(),
|
16 |
+
"models" => array(),
|
17 |
+
"controllers" => array(),
|
18 |
+
),
|
19 |
+
"other" => array(
|
20 |
+
"blocks" => array(),
|
21 |
+
"helpers" => array(),
|
22 |
+
"models" => array(),
|
23 |
+
"controllers" => array(),
|
24 |
+
),
|
25 |
+
);
|
26 |
+
|
27 |
+
// Define pathes to check
|
28 |
+
$mageCodeDir = Mage::getBaseDir() . DS . 'app' . DS . 'code' . DS;
|
29 |
+
$modulePathes = array($mageCodeDir . 'local', $mageCodeDir . 'community');
|
30 |
+
|
31 |
+
$result = "";
|
32 |
+
|
33 |
+
// Recursively browse pathes
|
34 |
+
foreach ($modulePathes as $modulePath) {
|
35 |
+
|
36 |
+
if(!is_dir($modulePath)) {
|
37 |
+
continue;
|
38 |
+
}
|
39 |
+
|
40 |
+
$dir = new RecursiveDirectoryIterator($modulePath, FilesystemIterator::SKIP_DOTS);
|
41 |
+
$ite = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::SELF_FIRST);
|
42 |
+
|
43 |
+
// Get config.xml files
|
44 |
+
$configXmls = new RegexIterator($ite, '/^.+config\.xml$/i', RecursiveRegexIterator::GET_MATCH);
|
45 |
+
|
46 |
+
foreach ($configXmls as $configXml) {
|
47 |
+
if (self::DEBUG) {
|
48 |
+
$result .= '' . $configXml[0] . "\n";
|
49 |
+
}
|
50 |
+
|
51 |
+
// Parse XML to look for rewrites
|
52 |
+
$xml = simplexml_load_file($configXml[0]);
|
53 |
+
$rewrites = $xml->xpath('//rewrite');
|
54 |
+
|
55 |
+
while(list( , $node) = each($rewrites)) {
|
56 |
+
$moduleNode = $node->xpath("..");
|
57 |
+
$moduleName = $moduleNode[0]->getName();
|
58 |
+
|
59 |
+
// Filter route rewrites
|
60 |
+
if ($moduleName != "global") {
|
61 |
+
$typeNode = $moduleNode[0]->xpath("..");
|
62 |
+
$typeName = $typeNode[0]->getName();
|
63 |
+
|
64 |
+
foreach ($node->children() as $child) {
|
65 |
+
$rewriteFrom = "Mage_" . str_replace(" ", "_", ucwords($moduleName . " " . substr($typeName, 0, -1) . " " . str_replace("_", " ", $child->getName())));
|
66 |
+
|
67 |
+
if (self::DEBUG) {
|
68 |
+
$result .= "Rewrite from : " . $rewriteFrom . "\n";
|
69 |
+
$result .= "Rewrite to : " . $child->__toString() . "\n";
|
70 |
+
}
|
71 |
+
|
72 |
+
if (strpos($child->__toString(), "Chronopost_Chronorelais") !== false) {
|
73 |
+
$scope = "chrono";
|
74 |
+
} else {
|
75 |
+
$scope = "other";
|
76 |
+
}
|
77 |
+
|
78 |
+
if (!isset($this->rewrites[$scope][$typeName][$rewriteFrom])) {
|
79 |
+
$this->rewrites[$scope][$typeName][$rewriteFrom] = array();
|
80 |
+
}
|
81 |
+
$this->rewrites[$scope][$typeName][$rewriteFrom][] = $child->__toString();
|
82 |
+
}
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
if (self::DEBUG) {
|
87 |
+
$result .= "\n";
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
// Get controllers PHP files
|
92 |
+
$controllerPhps = new RegexIterator($ite, '/^.+controllers.+\.php$/i', RecursiveRegexIterator::GET_MATCH);
|
93 |
+
|
94 |
+
foreach ($controllerPhps as $controllerPhp) {
|
95 |
+
$className = "";
|
96 |
+
$scope = "";
|
97 |
+
|
98 |
+
$php_file = file_get_contents($controllerPhp[0]);
|
99 |
+
$tokens = token_get_all($php_file);
|
100 |
+
$class_token = false;
|
101 |
+
$extends_token = false;
|
102 |
+
foreach ($tokens as $token) {
|
103 |
+
if (is_array($token)) {
|
104 |
+
if ($token[0] == T_CLASS) {
|
105 |
+
$class_token = true;
|
106 |
+
} else if ($class_token && $token[0] == T_STRING) {
|
107 |
+
$className = $token[1];
|
108 |
+
$class_token = false;
|
109 |
+
} else if ($token[0] == T_EXTENDS) {
|
110 |
+
$extends_token = true;
|
111 |
+
} else if ($extends_token && $token[0] == T_STRING) {
|
112 |
+
if (self::DEBUG) {
|
113 |
+
$result .= 'File ' . $controllerPhp[0] . ":\n" .
|
114 |
+
" Class " . $className . "\n" .
|
115 |
+
" Extends " . $token[1] . "\n\n";
|
116 |
+
}
|
117 |
+
|
118 |
+
if (empty($scope)) {
|
119 |
+
if (strpos($className, "Chronopost_Chronorelais") !== false) {
|
120 |
+
$scope = "chrono";
|
121 |
+
} else {
|
122 |
+
$scope = "other";
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
if (!isset($this->rewrites[$scope]["controllers"][$token[1]])) {
|
127 |
+
$this->rewrites[$scope]["controllers"][$token[1]] = array();
|
128 |
+
}
|
129 |
+
$this->rewrites[$scope]["controllers"][$token[1]][] = $className;
|
130 |
+
|
131 |
+
$className = "";
|
132 |
+
$extends_token = false;
|
133 |
+
}
|
134 |
+
}
|
135 |
+
}
|
136 |
+
}
|
137 |
+
}
|
138 |
+
|
139 |
+
// Parse rewrites table to check for conflicts
|
140 |
+
|
141 |
+
foreach ($this->rewrites['chrono'] as $type => $rewrites) {
|
142 |
+
foreach ($rewrites as $from => $tos) {
|
143 |
+
if (!in_array($from, $this->whiteList) && isset($this->rewrites['other'][$type][$from])) {
|
144 |
+
// Houston, we have a rewrite
|
145 |
+
$result .= "<p>[" . $type . "] La réécriture de la Classe <u>" . $from . "</u> par <u>" . implode(', ', $tos) . "</u> pourrait entrer en conflit avec les réécritures faites par <u>" . implode(', ', $this->rewrites['other'][$type][$from]) . "</u></p>\r\n";
|
146 |
+
}
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
if (empty($result)) {
|
151 |
+
$result = "Aucun conflit n'a été detecté au niveau des controleurs, des classes de block, des helpers ou des modèles.";
|
152 |
+
} else {
|
153 |
+
$result = "<p>Des conflits potentiels ont été détectés :</p>" . $result . "<p>Ces résultats sont à analyser individuellement. Ils offrent des pistes à étudier et ne remplacent pas une étude approfondie du code.</p>";
|
154 |
+
}
|
155 |
+
|
156 |
+
return $result;
|
157 |
+
}
|
158 |
+
|
159 |
+
}
|
app/code/community/Chronopost/Chronorelais/Helper/Data.php
CHANGED
@@ -1,463 +1,463 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Helper_Data extends Mage_Core_Helper_Abstract {
|
4 |
-
//Choronorelais settings for productCode
|
5 |
-
const CHRONO_POST = '01'; // for France
|
6 |
-
const CHRONO_POST_BAL = '58'; // For france avec option BAL
|
7 |
-
const CHRONO_EXPRESS = '17'; // for Interantional
|
8 |
-
const CHRONORELAIS = '86'; // for Chronorelais
|
9 |
-
const CHRONOPOST_C10 = '02'; // for Chronopost C10
|
10 |
-
const CHRONOPOST_C18 = '16'; // for Chronopost C18
|
11 |
-
const CHRONOPOST_C18_BAL = '2M'; // for Chronopost C18 avec option BAL
|
12 |
-
const CHRONOPOST_CClassic = '44'; // for Chronopost CClassic
|
13 |
-
const CHRONOPOST_13H = '13H'; // for France
|
14 |
-
const CHRONOPOST_13H_BAL = '13H BAL'; // for France BAL
|
15 |
-
const CHRONOPOST_C10_STR = '10H'; // for Chronopost C10
|
16 |
-
const CHRONOPOST_C18_STR = '18H'; // for Chronopost C18
|
17 |
-
const CHRONOPOST_C18_BAL_STR = '18H BAL'; // for Chronopost C18 BAL
|
18 |
-
const CHRONOPOST_CClassic_STR = 'CClassic'; // for Chronopost CClassic
|
19 |
-
const CHRONOEXPRESS_EI = 'EI'; // for Interantional
|
20 |
-
const CHRONORELAIS_PR = 'PR'; // for Chronorelais
|
21 |
-
const CHRONOPOST_DEFAULT_COUNTRY = 'FR';
|
22 |
-
const CHRONOPOST_TRACKING_URL = 'http://wsshipping.chronopost.fr/shipping/services/getReservedSkybill?reservationNumber={trackingNumber}';
|
23 |
-
|
24 |
-
const CHRONORELAISEUROPE = '49'; // for Chronorelais Europe
|
25 |
-
const CHRONORELAISEUROPE_STR = 'PRU'; // for Chronorelais Europe
|
26 |
-
|
27 |
-
const CHRONORELAISDOM = '4P'; // for Chronorelais DOM
|
28 |
-
const CHRONORELAISDOM_STR = 'PRDOM'; // for Chronorelais DOM
|
29 |
-
|
30 |
-
const CHRONOPOST_SMD = '4I'; // for Chronopost SAMEDAY
|
31 |
-
const CHRONOPOST_SMD_STR = 'SMD'; // for Chronopost SAMEDAY
|
32 |
-
|
33 |
-
const CHRONOPOST_SRDV = '2O'; // for Chronopost Sur Rendez-vous 'O' majuscule et non 0
|
34 |
-
const CHRONOPOST_SRDV_STR = 'SRDV'; // for Chronopost Sur Rendez-vous
|
35 |
-
|
36 |
-
// if you are in a period outside thursday 18:00 to friday 15:00, there is no shipping on saturday
|
37 |
-
var $SaturdayShippingDays = array(
|
38 |
-
'startday' => 'thursday',
|
39 |
-
'endday' => 'friday',
|
40 |
-
'starttime' => '18:00:00',
|
41 |
-
'endtime' => '15:00:00'
|
42 |
-
);
|
43 |
-
|
44 |
-
public function getConfigData($path) {
|
45 |
-
return Mage::getStoreConfig($path, Mage::app()->getStore());
|
46 |
-
}
|
47 |
-
|
48 |
-
public function getSaturdayShippingDays() {
|
49 |
-
|
50 |
-
$starday = explode(":",$this->getConfigData("chronorelais/saturday/startday"));
|
51 |
-
$endday = explode(":",$this->getConfigData("chronorelais/saturday/endday"));
|
52 |
-
|
53 |
-
$saturdayDays = array();
|
54 |
-
$saturdayDays['startday'] = (count($starday) == 3 && isset($starday[0])) ? $starday[0] : $this->SaturdayShippingDays['startday'];
|
55 |
-
$saturdayDays['starttime'] = (count($starday) == 3 && isset($starday[1])) ? $starday[1].':'.$starday[2].':00' : $this->SaturdayShippingDays['starttime'];
|
56 |
-
$saturdayDays['endday'] = (count($endday) == 3 && isset($endday[0])) ? $endday[0] : $this->SaturdayShippingDays['endday'];
|
57 |
-
$saturdayDays['endtime'] = (count($endday) == 3 && isset($endday[1])) ? $endday[1].':'.$endday[2].':00' : $this->SaturdayShippingDays['endtime'];
|
58 |
-
|
59 |
-
return $saturdayDays;
|
60 |
-
}
|
61 |
-
|
62 |
-
public function getCurrentTimeByZone($timezone="Europe/Paris", $format="l H:i") {
|
63 |
-
$d = new DateTime("now", new DateTimeZone($timezone));
|
64 |
-
return $d->format($format);
|
65 |
-
}
|
66 |
-
|
67 |
-
public function isSendingDay() {
|
68 |
-
$shipping_days = $this->getSaturdayShippingDays();
|
69 |
-
$current_day = strtolower($this->getCurrentTimeByZone("Europe/Paris", "l"));
|
70 |
-
$current_date = $this->getCurrentTimeByZone("Europe/Paris", "Y-m-d H:i:s");
|
71 |
-
$current_datetime = explode(' ', $current_date);
|
72 |
-
|
73 |
-
//get timestamps
|
74 |
-
$start_timestamp = strtotime($current_datetime[0] . " " . $shipping_days['starttime']);
|
75 |
-
$end_timestamp = strtotime($current_datetime[0] . " " . $shipping_days['endtime']);
|
76 |
-
$current_timestamp = strtotime($current_date);
|
77 |
-
|
78 |
-
$sending_day = false;
|
79 |
-
/*if ( ($shipping_days['startday'] == $current_day && $current_timestamp >= $start_timestamp) || ($shipping_days['endday'] == $current_day && $current_timestamp <= $end_timestamp) ) {
|
80 |
-
$sending_day = true;
|
81 |
-
}*/
|
82 |
-
if ( $current_timestamp >= $start_timestamp && $current_timestamp <= $end_timestamp ) {
|
83 |
-
$sending_day = true;
|
84 |
-
}
|
85 |
-
return $sending_day;
|
86 |
-
}
|
87 |
-
|
88 |
-
/**
|
89 |
-
* General Shipping configuration
|
90 |
-
*/
|
91 |
-
public function getConfigurationAccountNumber() {
|
92 |
-
return $this->getConfigData('chronorelais/shipping/account_number');
|
93 |
-
}
|
94 |
-
|
95 |
-
public function getConfigurationSubAccountNumber() {
|
96 |
-
return $this->getConfigData('chronorelais/shipping/sub_account_number');
|
97 |
-
}
|
98 |
-
|
99 |
-
public function getConfigurationAccountPass() {
|
100 |
-
return $this->getConfigData('chronorelais/shipping/account_pass');
|
101 |
-
}
|
102 |
-
|
103 |
-
public function getConfigurationTrackingViewUrl() {
|
104 |
-
return $this->getConfigData('chronorelais/shipping/tracking_view_url');
|
105 |
-
}
|
106 |
-
|
107 |
-
public function getConfigurationGoogleMapAPIKey() {
|
108 |
-
return $this->getConfigData('chronorelais/shipping/google_map_api');
|
109 |
-
}
|
110 |
-
|
111 |
-
public function getChronoProductCode($country, $code='') {
|
112 |
-
$productcode = '';
|
113 |
-
$code = strtolower($code);
|
114 |
-
|
115 |
-
switch($code) {
|
116 |
-
case 'chronorelais' :
|
117 |
-
$productcode = static::CHRONORELAIS;
|
118 |
-
break;
|
119 |
-
case 'chronopost' :
|
120 |
-
$productcode = static::CHRONO_POST;
|
121 |
-
break;
|
122 |
-
case 'chronoexpress' :
|
123 |
-
$productcode = static::CHRONO_EXPRESS;
|
124 |
-
break;
|
125 |
-
case 'chronopostc10' :
|
126 |
-
$productcode = static::CHRONOPOST_C10;
|
127 |
-
break;
|
128 |
-
case 'chronopostc18' :
|
129 |
-
$productcode = static::CHRONOPOST_C18;
|
130 |
-
break;
|
131 |
-
case 'chronopostcclassic' :
|
132 |
-
$productcode = static::CHRONOPOST_CClassic;
|
133 |
-
break;
|
134 |
-
case 'chronorelaiseurope' :
|
135 |
-
$productcode = static::CHRONORELAISEUROPE;
|
136 |
-
break;
|
137 |
-
case 'chronorelaisdom' :
|
138 |
-
$productcode = static::CHRONORELAISDOM;
|
139 |
-
break;
|
140 |
-
case 'chronopostsameday' :
|
141 |
-
$productcode = static::CHRONOPOST_SMD;
|
142 |
-
break;
|
143 |
-
case 'chronopostsrdv' :
|
144 |
-
$productcode = static::CHRONOPOST_SRDV;
|
145 |
-
break;
|
146 |
-
default :
|
147 |
-
$productcode = static::CHRONO_POST;
|
148 |
-
break;
|
149 |
-
}
|
150 |
-
return $productcode;
|
151 |
-
}
|
152 |
-
|
153 |
-
public function getChronoProductCodeToShipment($code='') {
|
154 |
-
$productcode = '';
|
155 |
-
$code = strtolower($code);
|
156 |
-
|
157 |
-
switch($code) {
|
158 |
-
case 'chronorelais' :
|
159 |
-
$productcode = static::CHRONORELAIS;
|
160 |
-
break;
|
161 |
-
case 'chronopost' :
|
162 |
-
if($this->getConfigOptionBAL()) {
|
163 |
-
$productcode = static::CHRONO_POST_BAL;
|
164 |
-
}
|
165 |
-
else {
|
166 |
-
$productcode = static::CHRONO_POST;
|
167 |
-
}
|
168 |
-
break;
|
169 |
-
case 'chronoexpress' :
|
170 |
-
$productcode = static::CHRONO_EXPRESS;
|
171 |
-
break;
|
172 |
-
case 'chronopostc10' :
|
173 |
-
$productcode = static::CHRONOPOST_C10;
|
174 |
-
break;
|
175 |
-
case 'chronopostc18' :
|
176 |
-
if($this->getConfigOptionBAL()) {
|
177 |
-
$productcode = static::CHRONOPOST_C18_BAL;
|
178 |
-
}
|
179 |
-
else {
|
180 |
-
$productcode = static::CHRONOPOST_C18;
|
181 |
-
}
|
182 |
-
break;
|
183 |
-
case 'chronopostcclassic' :
|
184 |
-
$productcode = static::CHRONOPOST_CClassic;
|
185 |
-
break;
|
186 |
-
case 'chronorelaiseurope' :
|
187 |
-
$productcode = static::CHRONORELAISEUROPE;
|
188 |
-
break;
|
189 |
-
case 'chronorelaisdom' :
|
190 |
-
$productcode = static::CHRONORELAISDOM;
|
191 |
-
break;
|
192 |
-
case 'chronopostsameday' :
|
193 |
-
$productcode = static::CHRONOPOST_SMD;
|
194 |
-
break;
|
195 |
-
case 'chronopostsrdv' :
|
196 |
-
$productcode = static::CHRONOPOST_SRDV;
|
197 |
-
break;
|
198 |
-
default :
|
199 |
-
$productcode = static::CHRONO_POST;
|
200 |
-
break;
|
201 |
-
}
|
202 |
-
return $productcode;
|
203 |
-
}
|
204 |
-
|
205 |
-
public function getChronoProductCodeString($code='') {
|
206 |
-
$productcode = '';
|
207 |
-
$code = strtolower($code);
|
208 |
-
|
209 |
-
switch($code) {
|
210 |
-
case 'chronorelais' :
|
211 |
-
$productcode = static::CHRONORELAIS_PR;
|
212 |
-
break;
|
213 |
-
case 'chronopost' :
|
214 |
-
$productcode = static::CHRONOPOST_13H;
|
215 |
-
break;
|
216 |
-
case 'chronoexpress' :
|
217 |
-
$productcode = static::CHRONOEXPRESS_EI;
|
218 |
-
break;
|
219 |
-
case 'chronopostc10' :
|
220 |
-
$productcode = static::CHRONOPOST_C10_STR;
|
221 |
-
break;
|
222 |
-
case 'chronopostc18' :
|
223 |
-
$productcode = static::CHRONOPOST_C18_STR;
|
224 |
-
break;
|
225 |
-
case 'chronopostcclassic' :
|
226 |
-
$productcode = static::CHRONOPOST_CClassic_STR;
|
227 |
-
break;
|
228 |
-
case 'chronorelaiseurope' :
|
229 |
-
$productcode = static::CHRONORELAISEUROPE_STR;
|
230 |
-
break;
|
231 |
-
case 'chronorelaisdom' :
|
232 |
-
$productcode = static::CHRONORELAISDOM_STR;
|
233 |
-
break;
|
234 |
-
case 'chronopostsameday' :
|
235 |
-
$productcode = static::CHRONOPOST_SMD_STR;
|
236 |
-
break;
|
237 |
-
case 'chronopostsrdv' :
|
238 |
-
$productcode = static::CHRONOPOST_SRDV_STR;
|
239 |
-
break;
|
240 |
-
default :
|
241 |
-
$productcode = static::CHRONOPOST_13H;
|
242 |
-
break;
|
243 |
-
}
|
244 |
-
return $productcode;
|
245 |
-
}
|
246 |
-
|
247 |
-
public function getChronoProductCodeStringWithBAL($code='') {
|
248 |
-
$productcode = '';
|
249 |
-
$code = strtolower($code);
|
250 |
-
|
251 |
-
switch($code) {
|
252 |
-
case 'chronorelais' :
|
253 |
-
$productcode = static::CHRONORELAIS_PR;
|
254 |
-
break;
|
255 |
-
case 'chronopost' :
|
256 |
-
if($this->getConfigOptionBAL()) {
|
257 |
-
$productcode = static::CHRONOPOST_13H_BAL;
|
258 |
-
}
|
259 |
-
else {
|
260 |
-
$productcode = static::CHRONOPOST_13H;
|
261 |
-
}
|
262 |
-
break;
|
263 |
-
case 'chronoexpress' :
|
264 |
-
$productcode = static::CHRONOEXPRESS_EI;
|
265 |
-
break;
|
266 |
-
case 'chronopostc10' :
|
267 |
-
$productcode = static::CHRONOPOST_C10_STR;
|
268 |
-
break;
|
269 |
-
case 'chronopostc18' :
|
270 |
-
if($this->getConfigOptionBAL()) {
|
271 |
-
$productcode = static::CHRONOPOST_C18_BAL_STR;
|
272 |
-
}
|
273 |
-
else {
|
274 |
-
$productcode = static::CHRONOPOST_C18_STR;
|
275 |
-
}
|
276 |
-
break;
|
277 |
-
case 'chronopostcclassic' :
|
278 |
-
$productcode = static::CHRONOPOST_CClassic_STR;
|
279 |
-
break;
|
280 |
-
case 'chronorelaiseurope' :
|
281 |
-
$productcode = static::CHRONORELAISEUROPE_STR;
|
282 |
-
break;
|
283 |
-
case 'chronorelaisdom' :
|
284 |
-
$productcode = static::CHRONORELAISDOM_STR;
|
285 |
-
break;
|
286 |
-
case 'chronopostsrdv' :
|
287 |
-
$productcode = static::CHRONOPOST_SRDV_STR;
|
288 |
-
break;
|
289 |
-
default :
|
290 |
-
$productcode = static::CHRONOPOST_13H;
|
291 |
-
break;
|
292 |
-
}
|
293 |
-
return $productcode;
|
294 |
-
}
|
295 |
-
|
296 |
-
public function getConfigurationTrackingUrl() {
|
297 |
-
return static::CHRONOPOST_TRACKING_URL;
|
298 |
-
}
|
299 |
-
|
300 |
-
/**
|
301 |
-
* Export configuration
|
302 |
-
*/
|
303 |
-
public function getConfigurationFileExtension($export_type='css') {
|
304 |
-
return $this->getConfigData('chronorelais/export_' . $export_type . '/file_extension');
|
305 |
-
}
|
306 |
-
|
307 |
-
public function getConfigurationFileCharset($export_type='css') {
|
308 |
-
return $this->getConfigData('chronorelais/export_' . $export_type . '/file_charset');
|
309 |
-
}
|
310 |
-
|
311 |
-
public function getConfigurationEndOfLineCharacter($export_type='css') {
|
312 |
-
return $this->getConfigData('chronorelais/export_' . $export_type . '/endofline_character');
|
313 |
-
}
|
314 |
-
|
315 |
-
public function getConfigurationFieldDelimiter($export_type='css') {
|
316 |
-
return $this->getConfigData('chronorelais/export_' . $export_type . '/field_delimiter');
|
317 |
-
}
|
318 |
-
|
319 |
-
public function getConfigurationFieldSeparator($export_type='css') {
|
320 |
-
return $this->getConfigData('chronorelais/export_' . $export_type . '/field_separator');
|
321 |
-
}
|
322 |
-
|
323 |
-
/**
|
324 |
-
* Import configuration
|
325 |
-
*/
|
326 |
-
public function getConfigurationSendEmail() {
|
327 |
-
return $this->getConfigData('chronorelais/import/send_email');
|
328 |
-
}
|
329 |
-
|
330 |
-
public function getConfigurationIncludeComment() {
|
331 |
-
return $this->getConfigData('chronorelais/import/include_comment');
|
332 |
-
}
|
333 |
-
|
334 |
-
public function getConfigurationDefaultTrackingTitle() {
|
335 |
-
return $this->getConfigData('chronorelais/import/default_tracking_title');
|
336 |
-
}
|
337 |
-
|
338 |
-
public function getConfigurationShippingComment() {
|
339 |
-
return $this->getConfigData('chronorelais/import/shipping_comment');
|
340 |
-
}
|
341 |
-
|
342 |
-
/**
|
343 |
-
* Shipper Information
|
344 |
-
*/
|
345 |
-
public function getConfigurationShipperInfo($field) {
|
346 |
-
$fieldValue = '';
|
347 |
-
if ($field && $this->getConfigData('chronorelais/shipperinformation/' . $field)) {
|
348 |
-
$fieldValue = $this->getConfigData('chronorelais/shipperinformation/' . $field);
|
349 |
-
}
|
350 |
-
return $fieldValue;
|
351 |
-
}
|
352 |
-
|
353 |
-
/**
|
354 |
-
* Chronopost Customer Information
|
355 |
-
*/
|
356 |
-
public function getConfigurationCustomerInfo($field) {
|
357 |
-
$fieldValue = '';
|
358 |
-
if ($field && $this->getConfigData('chronorelais/customerinformation/' . $field)) {
|
359 |
-
$fieldValue = $this->getConfigData('chronorelais/customerinformation/' . $field);
|
360 |
-
}
|
361 |
-
return $fieldValue;
|
362 |
-
}
|
363 |
-
|
364 |
-
/**
|
365 |
-
* Import configuration
|
366 |
-
*/
|
367 |
-
public function getConfigurationSkybillParam() {
|
368 |
-
return $this->getConfigData('chronorelais/skybillparam/mode');
|
369 |
-
}
|
370 |
-
|
371 |
-
/*
|
372 |
-
* Weight unit
|
373 |
-
*/
|
374 |
-
public function getConfigWeightUnit() {
|
375 |
-
return $this->getConfigData('chronorelais/weightunit/unit');
|
376 |
-
}
|
377 |
-
|
378 |
-
/*
|
379 |
-
* Option BAL
|
380 |
-
*/
|
381 |
-
public function getConfigOptionBAL() {
|
382 |
-
return $this->getConfigData('chronorelais/optionbal/enabled');
|
383 |
-
}
|
384 |
-
|
385 |
-
public function hasOptionBAL($order) {
|
386 |
-
$shippingMethod = explode('_',$order->getShippingMethod());
|
387 |
-
$shippingMethod = $shippingMethod[1];
|
388 |
-
$shippingMethodAllowBAL = array('chronopost','chronopostc18');
|
389 |
-
if(in_array(strtolower($shippingMethod), $shippingMethodAllowBAL) && $this->getConfigOptionBAL()) {
|
390 |
-
return true;
|
391 |
-
}
|
392 |
-
return false;
|
393 |
-
}
|
394 |
-
|
395 |
-
/*
|
396 |
-
* Assurance Ad Valorem
|
397 |
-
*/
|
398 |
-
public function assuranceAdValoremEnabled() {
|
399 |
-
return $this->getConfigData('chronorelais/assurance/enabled');
|
400 |
-
}
|
401 |
-
public function assuranceAdValoremAmount() {
|
402 |
-
return $this->getConfigData('chronorelais/assurance/amount');
|
403 |
-
}
|
404 |
-
public function getMaxAdValoremAmount() {
|
405 |
-
return 20000;
|
406 |
-
}
|
407 |
-
|
408 |
-
/* Get Livraison le Samedi status by orderid */
|
409 |
-
|
410 |
-
public function getLivraisonSamediStatus($order_id) {
|
411 |
-
$_connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
412 |
-
$_table = Mage::getSingleton('core/resource')->getTableName('sales_chronopost_order_export_status');
|
413 |
-
$select = $_connection->select()
|
414 |
-
->from($_table, 'livraison_le_samedi')
|
415 |
-
->where('order_id=?', $order_id);
|
416 |
-
$status = $_connection->fetchOne($select);
|
417 |
-
return $status;
|
418 |
-
}
|
419 |
-
|
420 |
-
|
421 |
-
/*
|
422 |
-
* Return true si la méthode de livraison fait partie du contrat du marchant
|
423 |
-
*/
|
424 |
-
public function shippingMethodEnabled($shippingMethod) {
|
425 |
-
return true;
|
426 |
-
}
|
427 |
-
|
428 |
-
/*
|
429 |
-
* Return true if we can show google map
|
430 |
-
*/
|
431 |
-
public function canShowGoogleMap() {
|
432 |
-
return $this->getConfigData('carriers/chronorelais/show_google_map');
|
433 |
-
}
|
434 |
-
|
435 |
-
/* return track number field name */
|
436 |
-
public function getTrackNumberFieldName() {
|
437 |
-
if (version_compare(Mage::getVersion(), '1.5.1.0', '>')) {
|
438 |
-
return "track_number";
|
439 |
-
} else {
|
440 |
-
return "number";
|
441 |
-
}
|
442 |
-
|
443 |
-
}
|
444 |
-
|
445 |
-
public function addMargeToQuickcost($quickcost_val,$carrierCode = '', $firstPassage = true) {
|
446 |
-
if($carrierCode) {
|
447 |
-
|
448 |
-
$quickcostMarge = Mage::getStoreConfig('carriers/' . $carrierCode . '/quickcost_marge');
|
449 |
-
$quickcostMargeType = Mage::getStoreConfig('carriers/' . $carrierCode . '/quickcost_marge_type');
|
450 |
-
|
451 |
-
if($quickcostMarge) {
|
452 |
-
if($quickcostMargeType == 'amount') {
|
453 |
-
$quickcost_val += $quickcostMarge;
|
454 |
-
} elseif($quickcostMargeType == 'prcent') {
|
455 |
-
$quickcost_val += $quickcost_val * $quickcostMarge / 100;
|
456 |
-
}
|
457 |
-
}
|
458 |
-
}
|
459 |
-
|
460 |
-
return $quickcost_val;
|
461 |
-
}
|
462 |
-
|
463 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Helper_Data extends Mage_Core_Helper_Abstract {
|
4 |
+
//Choronorelais settings for productCode
|
5 |
+
const CHRONO_POST = '01'; // for France
|
6 |
+
const CHRONO_POST_BAL = '58'; // For france avec option BAL
|
7 |
+
const CHRONO_EXPRESS = '17'; // for Interantional
|
8 |
+
const CHRONORELAIS = '86'; // for Chronorelais
|
9 |
+
const CHRONOPOST_C10 = '02'; // for Chronopost C10
|
10 |
+
const CHRONOPOST_C18 = '16'; // for Chronopost C18
|
11 |
+
const CHRONOPOST_C18_BAL = '2M'; // for Chronopost C18 avec option BAL
|
12 |
+
const CHRONOPOST_CClassic = '44'; // for Chronopost CClassic
|
13 |
+
const CHRONOPOST_13H = '13H'; // for France
|
14 |
+
const CHRONOPOST_13H_BAL = '13H BAL'; // for France BAL
|
15 |
+
const CHRONOPOST_C10_STR = '10H'; // for Chronopost C10
|
16 |
+
const CHRONOPOST_C18_STR = '18H'; // for Chronopost C18
|
17 |
+
const CHRONOPOST_C18_BAL_STR = '18H BAL'; // for Chronopost C18 BAL
|
18 |
+
const CHRONOPOST_CClassic_STR = 'CClassic'; // for Chronopost CClassic
|
19 |
+
const CHRONOEXPRESS_EI = 'EI'; // for Interantional
|
20 |
+
const CHRONORELAIS_PR = 'PR'; // for Chronorelais
|
21 |
+
const CHRONOPOST_DEFAULT_COUNTRY = 'FR';
|
22 |
+
const CHRONOPOST_TRACKING_URL = 'http://wsshipping.chronopost.fr/shipping/services/getReservedSkybill?reservationNumber={trackingNumber}';
|
23 |
+
|
24 |
+
const CHRONORELAISEUROPE = '49'; // for Chronorelais Europe
|
25 |
+
const CHRONORELAISEUROPE_STR = 'PRU'; // for Chronorelais Europe
|
26 |
+
|
27 |
+
const CHRONORELAISDOM = '4P'; // for Chronorelais DOM
|
28 |
+
const CHRONORELAISDOM_STR = 'PRDOM'; // for Chronorelais DOM
|
29 |
+
|
30 |
+
const CHRONOPOST_SMD = '4I'; // for Chronopost SAMEDAY
|
31 |
+
const CHRONOPOST_SMD_STR = 'SMD'; // for Chronopost SAMEDAY
|
32 |
+
|
33 |
+
const CHRONOPOST_SRDV = '2O'; // for Chronopost Sur Rendez-vous 'O' majuscule et non 0
|
34 |
+
const CHRONOPOST_SRDV_STR = 'SRDV'; // for Chronopost Sur Rendez-vous
|
35 |
+
|
36 |
+
// if you are in a period outside thursday 18:00 to friday 15:00, there is no shipping on saturday
|
37 |
+
var $SaturdayShippingDays = array(
|
38 |
+
'startday' => 'thursday',
|
39 |
+
'endday' => 'friday',
|
40 |
+
'starttime' => '18:00:00',
|
41 |
+
'endtime' => '15:00:00'
|
42 |
+
);
|
43 |
+
|
44 |
+
public function getConfigData($path) {
|
45 |
+
return Mage::getStoreConfig($path, Mage::app()->getStore());
|
46 |
+
}
|
47 |
+
|
48 |
+
public function getSaturdayShippingDays() {
|
49 |
+
|
50 |
+
$starday = explode(":",$this->getConfigData("chronorelais/saturday/startday"));
|
51 |
+
$endday = explode(":",$this->getConfigData("chronorelais/saturday/endday"));
|
52 |
+
|
53 |
+
$saturdayDays = array();
|
54 |
+
$saturdayDays['startday'] = (count($starday) == 3 && isset($starday[0])) ? $starday[0] : $this->SaturdayShippingDays['startday'];
|
55 |
+
$saturdayDays['starttime'] = (count($starday) == 3 && isset($starday[1])) ? $starday[1].':'.$starday[2].':00' : $this->SaturdayShippingDays['starttime'];
|
56 |
+
$saturdayDays['endday'] = (count($endday) == 3 && isset($endday[0])) ? $endday[0] : $this->SaturdayShippingDays['endday'];
|
57 |
+
$saturdayDays['endtime'] = (count($endday) == 3 && isset($endday[1])) ? $endday[1].':'.$endday[2].':00' : $this->SaturdayShippingDays['endtime'];
|
58 |
+
|
59 |
+
return $saturdayDays;
|
60 |
+
}
|
61 |
+
|
62 |
+
public function getCurrentTimeByZone($timezone="Europe/Paris", $format="l H:i") {
|
63 |
+
$d = new DateTime("now", new DateTimeZone($timezone));
|
64 |
+
return $d->format($format);
|
65 |
+
}
|
66 |
+
|
67 |
+
public function isSendingDay() {
|
68 |
+
$shipping_days = $this->getSaturdayShippingDays();
|
69 |
+
$current_day = strtolower($this->getCurrentTimeByZone("Europe/Paris", "l"));
|
70 |
+
$current_date = $this->getCurrentTimeByZone("Europe/Paris", "Y-m-d H:i:s");
|
71 |
+
$current_datetime = explode(' ', $current_date);
|
72 |
+
|
73 |
+
//get timestamps
|
74 |
+
$start_timestamp = strtotime($current_datetime[0] . " " . $shipping_days['starttime']);
|
75 |
+
$end_timestamp = strtotime($current_datetime[0] . " " . $shipping_days['endtime']);
|
76 |
+
$current_timestamp = strtotime($current_date);
|
77 |
+
|
78 |
+
$sending_day = false;
|
79 |
+
/*if ( ($shipping_days['startday'] == $current_day && $current_timestamp >= $start_timestamp) || ($shipping_days['endday'] == $current_day && $current_timestamp <= $end_timestamp) ) {
|
80 |
+
$sending_day = true;
|
81 |
+
}*/
|
82 |
+
if ( $current_timestamp >= $start_timestamp && $current_timestamp <= $end_timestamp ) {
|
83 |
+
$sending_day = true;
|
84 |
+
}
|
85 |
+
return $sending_day;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* General Shipping configuration
|
90 |
+
*/
|
91 |
+
public function getConfigurationAccountNumber() {
|
92 |
+
return $this->getConfigData('chronorelais/shipping/account_number');
|
93 |
+
}
|
94 |
+
|
95 |
+
public function getConfigurationSubAccountNumber() {
|
96 |
+
return $this->getConfigData('chronorelais/shipping/sub_account_number');
|
97 |
+
}
|
98 |
+
|
99 |
+
public function getConfigurationAccountPass() {
|
100 |
+
return $this->getConfigData('chronorelais/shipping/account_pass');
|
101 |
+
}
|
102 |
+
|
103 |
+
public function getConfigurationTrackingViewUrl() {
|
104 |
+
return $this->getConfigData('chronorelais/shipping/tracking_view_url');
|
105 |
+
}
|
106 |
+
|
107 |
+
public function getConfigurationGoogleMapAPIKey() {
|
108 |
+
return $this->getConfigData('chronorelais/shipping/google_map_api');
|
109 |
+
}
|
110 |
+
|
111 |
+
public function getChronoProductCode($country, $code='') {
|
112 |
+
$productcode = '';
|
113 |
+
$code = strtolower($code);
|
114 |
+
|
115 |
+
switch($code) {
|
116 |
+
case 'chronorelais' :
|
117 |
+
$productcode = static::CHRONORELAIS;
|
118 |
+
break;
|
119 |
+
case 'chronopost' :
|
120 |
+
$productcode = static::CHRONO_POST;
|
121 |
+
break;
|
122 |
+
case 'chronoexpress' :
|
123 |
+
$productcode = static::CHRONO_EXPRESS;
|
124 |
+
break;
|
125 |
+
case 'chronopostc10' :
|
126 |
+
$productcode = static::CHRONOPOST_C10;
|
127 |
+
break;
|
128 |
+
case 'chronopostc18' :
|
129 |
+
$productcode = static::CHRONOPOST_C18;
|
130 |
+
break;
|
131 |
+
case 'chronopostcclassic' :
|
132 |
+
$productcode = static::CHRONOPOST_CClassic;
|
133 |
+
break;
|
134 |
+
case 'chronorelaiseurope' :
|
135 |
+
$productcode = static::CHRONORELAISEUROPE;
|
136 |
+
break;
|
137 |
+
case 'chronorelaisdom' :
|
138 |
+
$productcode = static::CHRONORELAISDOM;
|
139 |
+
break;
|
140 |
+
case 'chronopostsameday' :
|
141 |
+
$productcode = static::CHRONOPOST_SMD;
|
142 |
+
break;
|
143 |
+
case 'chronopostsrdv' :
|
144 |
+
$productcode = static::CHRONOPOST_SRDV;
|
145 |
+
break;
|
146 |
+
default :
|
147 |
+
$productcode = static::CHRONO_POST;
|
148 |
+
break;
|
149 |
+
}
|
150 |
+
return $productcode;
|
151 |
+
}
|
152 |
+
|
153 |
+
public function getChronoProductCodeToShipment($code='') {
|
154 |
+
$productcode = '';
|
155 |
+
$code = strtolower($code);
|
156 |
+
|
157 |
+
switch($code) {
|
158 |
+
case 'chronorelais' :
|
159 |
+
$productcode = static::CHRONORELAIS;
|
160 |
+
break;
|
161 |
+
case 'chronopost' :
|
162 |
+
if($this->getConfigOptionBAL()) {
|
163 |
+
$productcode = static::CHRONO_POST_BAL;
|
164 |
+
}
|
165 |
+
else {
|
166 |
+
$productcode = static::CHRONO_POST;
|
167 |
+
}
|
168 |
+
break;
|
169 |
+
case 'chronoexpress' :
|
170 |
+
$productcode = static::CHRONO_EXPRESS;
|
171 |
+
break;
|
172 |
+
case 'chronopostc10' :
|
173 |
+
$productcode = static::CHRONOPOST_C10;
|
174 |
+
break;
|
175 |
+
case 'chronopostc18' :
|
176 |
+
if($this->getConfigOptionBAL()) {
|
177 |
+
$productcode = static::CHRONOPOST_C18_BAL;
|
178 |
+
}
|
179 |
+
else {
|
180 |
+
$productcode = static::CHRONOPOST_C18;
|
181 |
+
}
|
182 |
+
break;
|
183 |
+
case 'chronopostcclassic' :
|
184 |
+
$productcode = static::CHRONOPOST_CClassic;
|
185 |
+
break;
|
186 |
+
case 'chronorelaiseurope' :
|
187 |
+
$productcode = static::CHRONORELAISEUROPE;
|
188 |
+
break;
|
189 |
+
case 'chronorelaisdom' :
|
190 |
+
$productcode = static::CHRONORELAISDOM;
|
191 |
+
break;
|
192 |
+
case 'chronopostsameday' :
|
193 |
+
$productcode = static::CHRONOPOST_SMD;
|
194 |
+
break;
|
195 |
+
case 'chronopostsrdv' :
|
196 |
+
$productcode = static::CHRONOPOST_SRDV;
|
197 |
+
break;
|
198 |
+
default :
|
199 |
+
$productcode = static::CHRONO_POST;
|
200 |
+
break;
|
201 |
+
}
|
202 |
+
return $productcode;
|
203 |
+
}
|
204 |
+
|
205 |
+
public function getChronoProductCodeString($code='') {
|
206 |
+
$productcode = '';
|
207 |
+
$code = strtolower($code);
|
208 |
+
|
209 |
+
switch($code) {
|
210 |
+
case 'chronorelais' :
|
211 |
+
$productcode = static::CHRONORELAIS_PR;
|
212 |
+
break;
|
213 |
+
case 'chronopost' :
|
214 |
+
$productcode = static::CHRONOPOST_13H;
|
215 |
+
break;
|
216 |
+
case 'chronoexpress' :
|
217 |
+
$productcode = static::CHRONOEXPRESS_EI;
|
218 |
+
break;
|
219 |
+
case 'chronopostc10' :
|
220 |
+
$productcode = static::CHRONOPOST_C10_STR;
|
221 |
+
break;
|
222 |
+
case 'chronopostc18' :
|
223 |
+
$productcode = static::CHRONOPOST_C18_STR;
|
224 |
+
break;
|
225 |
+
case 'chronopostcclassic' :
|
226 |
+
$productcode = static::CHRONOPOST_CClassic_STR;
|
227 |
+
break;
|
228 |
+
case 'chronorelaiseurope' :
|
229 |
+
$productcode = static::CHRONORELAISEUROPE_STR;
|
230 |
+
break;
|
231 |
+
case 'chronorelaisdom' :
|
232 |
+
$productcode = static::CHRONORELAISDOM_STR;
|
233 |
+
break;
|
234 |
+
case 'chronopostsameday' :
|
235 |
+
$productcode = static::CHRONOPOST_SMD_STR;
|
236 |
+
break;
|
237 |
+
case 'chronopostsrdv' :
|
238 |
+
$productcode = static::CHRONOPOST_SRDV_STR;
|
239 |
+
break;
|
240 |
+
default :
|
241 |
+
$productcode = static::CHRONOPOST_13H;
|
242 |
+
break;
|
243 |
+
}
|
244 |
+
return $productcode;
|
245 |
+
}
|
246 |
+
|
247 |
+
public function getChronoProductCodeStringWithBAL($code='') {
|
248 |
+
$productcode = '';
|
249 |
+
$code = strtolower($code);
|
250 |
+
|
251 |
+
switch($code) {
|
252 |
+
case 'chronorelais' :
|
253 |
+
$productcode = static::CHRONORELAIS_PR;
|
254 |
+
break;
|
255 |
+
case 'chronopost' :
|
256 |
+
if($this->getConfigOptionBAL()) {
|
257 |
+
$productcode = static::CHRONOPOST_13H_BAL;
|
258 |
+
}
|
259 |
+
else {
|
260 |
+
$productcode = static::CHRONOPOST_13H;
|
261 |
+
}
|
262 |
+
break;
|
263 |
+
case 'chronoexpress' :
|
264 |
+
$productcode = static::CHRONOEXPRESS_EI;
|
265 |
+
break;
|
266 |
+
case 'chronopostc10' :
|
267 |
+
$productcode = static::CHRONOPOST_C10_STR;
|
268 |
+
break;
|
269 |
+
case 'chronopostc18' :
|
270 |
+
if($this->getConfigOptionBAL()) {
|
271 |
+
$productcode = static::CHRONOPOST_C18_BAL_STR;
|
272 |
+
}
|
273 |
+
else {
|
274 |
+
$productcode = static::CHRONOPOST_C18_STR;
|
275 |
+
}
|
276 |
+
break;
|
277 |
+
case 'chronopostcclassic' :
|
278 |
+
$productcode = static::CHRONOPOST_CClassic_STR;
|
279 |
+
break;
|
280 |
+
case 'chronorelaiseurope' :
|
281 |
+
$productcode = static::CHRONORELAISEUROPE_STR;
|
282 |
+
break;
|
283 |
+
case 'chronorelaisdom' :
|
284 |
+
$productcode = static::CHRONORELAISDOM_STR;
|
285 |
+
break;
|
286 |
+
case 'chronopostsrdv' :
|
287 |
+
$productcode = static::CHRONOPOST_SRDV_STR;
|
288 |
+
break;
|
289 |
+
default :
|
290 |
+
$productcode = static::CHRONOPOST_13H;
|
291 |
+
break;
|
292 |
+
}
|
293 |
+
return $productcode;
|
294 |
+
}
|
295 |
+
|
296 |
+
public function getConfigurationTrackingUrl() {
|
297 |
+
return static::CHRONOPOST_TRACKING_URL;
|
298 |
+
}
|
299 |
+
|
300 |
+
/**
|
301 |
+
* Export configuration
|
302 |
+
*/
|
303 |
+
public function getConfigurationFileExtension($export_type='css') {
|
304 |
+
return $this->getConfigData('chronorelais/export_' . $export_type . '/file_extension');
|
305 |
+
}
|
306 |
+
|
307 |
+
public function getConfigurationFileCharset($export_type='css') {
|
308 |
+
return $this->getConfigData('chronorelais/export_' . $export_type . '/file_charset');
|
309 |
+
}
|
310 |
+
|
311 |
+
public function getConfigurationEndOfLineCharacter($export_type='css') {
|
312 |
+
return $this->getConfigData('chronorelais/export_' . $export_type . '/endofline_character');
|
313 |
+
}
|
314 |
+
|
315 |
+
public function getConfigurationFieldDelimiter($export_type='css') {
|
316 |
+
return $this->getConfigData('chronorelais/export_' . $export_type . '/field_delimiter');
|
317 |
+
}
|
318 |
+
|
319 |
+
public function getConfigurationFieldSeparator($export_type='css') {
|
320 |
+
return $this->getConfigData('chronorelais/export_' . $export_type . '/field_separator');
|
321 |
+
}
|
322 |
+
|
323 |
+
/**
|
324 |
+
* Import configuration
|
325 |
+
*/
|
326 |
+
public function getConfigurationSendEmail() {
|
327 |
+
return $this->getConfigData('chronorelais/import/send_email');
|
328 |
+
}
|
329 |
+
|
330 |
+
public function getConfigurationIncludeComment() {
|
331 |
+
return $this->getConfigData('chronorelais/import/include_comment');
|
332 |
+
}
|
333 |
+
|
334 |
+
public function getConfigurationDefaultTrackingTitle() {
|
335 |
+
return $this->getConfigData('chronorelais/import/default_tracking_title');
|
336 |
+
}
|
337 |
+
|
338 |
+
public function getConfigurationShippingComment() {
|
339 |
+
return $this->getConfigData('chronorelais/import/shipping_comment');
|
340 |
+
}
|
341 |
+
|
342 |
+
/**
|
343 |
+
* Shipper Information
|
344 |
+
*/
|
345 |
+
public function getConfigurationShipperInfo($field) {
|
346 |
+
$fieldValue = '';
|
347 |
+
if ($field && $this->getConfigData('chronorelais/shipperinformation/' . $field)) {
|
348 |
+
$fieldValue = $this->getConfigData('chronorelais/shipperinformation/' . $field);
|
349 |
+
}
|
350 |
+
return $fieldValue;
|
351 |
+
}
|
352 |
+
|
353 |
+
/**
|
354 |
+
* Chronopost Customer Information
|
355 |
+
*/
|
356 |
+
public function getConfigurationCustomerInfo($field) {
|
357 |
+
$fieldValue = '';
|
358 |
+
if ($field && $this->getConfigData('chronorelais/customerinformation/' . $field)) {
|
359 |
+
$fieldValue = $this->getConfigData('chronorelais/customerinformation/' . $field);
|
360 |
+
}
|
361 |
+
return $fieldValue;
|
362 |
+
}
|
363 |
+
|
364 |
+
/**
|
365 |
+
* Import configuration
|
366 |
+
*/
|
367 |
+
public function getConfigurationSkybillParam() {
|
368 |
+
return $this->getConfigData('chronorelais/skybillparam/mode');
|
369 |
+
}
|
370 |
+
|
371 |
+
/*
|
372 |
+
* Weight unit
|
373 |
+
*/
|
374 |
+
public function getConfigWeightUnit() {
|
375 |
+
return $this->getConfigData('chronorelais/weightunit/unit');
|
376 |
+
}
|
377 |
+
|
378 |
+
/*
|
379 |
+
* Option BAL
|
380 |
+
*/
|
381 |
+
public function getConfigOptionBAL() {
|
382 |
+
return $this->getConfigData('chronorelais/optionbal/enabled');
|
383 |
+
}
|
384 |
+
|
385 |
+
public function hasOptionBAL($order) {
|
386 |
+
$shippingMethod = explode('_',$order->getShippingMethod());
|
387 |
+
$shippingMethod = $shippingMethod[1];
|
388 |
+
$shippingMethodAllowBAL = array('chronopost','chronopostc18');
|
389 |
+
if(in_array(strtolower($shippingMethod), $shippingMethodAllowBAL) && $this->getConfigOptionBAL()) {
|
390 |
+
return true;
|
391 |
+
}
|
392 |
+
return false;
|
393 |
+
}
|
394 |
+
|
395 |
+
/*
|
396 |
+
* Assurance Ad Valorem
|
397 |
+
*/
|
398 |
+
public function assuranceAdValoremEnabled() {
|
399 |
+
return $this->getConfigData('chronorelais/assurance/enabled');
|
400 |
+
}
|
401 |
+
public function assuranceAdValoremAmount() {
|
402 |
+
return $this->getConfigData('chronorelais/assurance/amount');
|
403 |
+
}
|
404 |
+
public function getMaxAdValoremAmount() {
|
405 |
+
return 20000;
|
406 |
+
}
|
407 |
+
|
408 |
+
/* Get Livraison le Samedi status by orderid */
|
409 |
+
|
410 |
+
public function getLivraisonSamediStatus($order_id) {
|
411 |
+
$_connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
412 |
+
$_table = Mage::getSingleton('core/resource')->getTableName('sales_chronopost_order_export_status');
|
413 |
+
$select = $_connection->select()
|
414 |
+
->from($_table, 'livraison_le_samedi')
|
415 |
+
->where('order_id=?', $order_id);
|
416 |
+
$status = $_connection->fetchOne($select);
|
417 |
+
return $status;
|
418 |
+
}
|
419 |
+
|
420 |
+
|
421 |
+
/*
|
422 |
+
* Return true si la méthode de livraison fait partie du contrat du marchant
|
423 |
+
*/
|
424 |
+
public function shippingMethodEnabled($shippingMethod) {
|
425 |
+
return true;
|
426 |
+
}
|
427 |
+
|
428 |
+
/*
|
429 |
+
* Return true if we can show google map
|
430 |
+
*/
|
431 |
+
public function canShowGoogleMap() {
|
432 |
+
return $this->getConfigData('carriers/chronorelais/show_google_map');
|
433 |
+
}
|
434 |
+
|
435 |
+
/* return track number field name */
|
436 |
+
public function getTrackNumberFieldName() {
|
437 |
+
if (version_compare(Mage::getVersion(), '1.5.1.0', '>')) {
|
438 |
+
return "track_number";
|
439 |
+
} else {
|
440 |
+
return "number";
|
441 |
+
}
|
442 |
+
|
443 |
+
}
|
444 |
+
|
445 |
+
public function addMargeToQuickcost($quickcost_val,$carrierCode = '', $firstPassage = true) {
|
446 |
+
if($carrierCode) {
|
447 |
+
|
448 |
+
$quickcostMarge = Mage::getStoreConfig('carriers/' . $carrierCode . '/quickcost_marge');
|
449 |
+
$quickcostMargeType = Mage::getStoreConfig('carriers/' . $carrierCode . '/quickcost_marge_type');
|
450 |
+
|
451 |
+
if($quickcostMarge) {
|
452 |
+
if($quickcostMargeType == 'amount') {
|
453 |
+
$quickcost_val += $quickcostMarge;
|
454 |
+
} elseif($quickcostMargeType == 'prcent') {
|
455 |
+
$quickcost_val += $quickcost_val * $quickcostMarge / 100;
|
456 |
+
}
|
457 |
+
}
|
458 |
+
}
|
459 |
+
|
460 |
+
return $quickcost_val;
|
461 |
+
}
|
462 |
+
|
463 |
+
}
|
app/code/community/Chronopost/Chronorelais/Helper/Webservice.php
CHANGED
@@ -1,727 +1,733 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Helper_Webservice extends Mage_Core_Helper_Abstract {
|
4 |
-
|
5 |
-
var $methodsAllowed = false;
|
6 |
-
|
7 |
-
public function getPointsRelaisByCp($cp) {
|
8 |
-
|
9 |
-
try {
|
10 |
-
$client = new SoapClient("http://wsshipping.chronopost.fr/soap.point.relais/services/ServiceRechercheBt?wsdl",array('trace'=> 0,'connection_timeout'=>10));
|
11 |
-
return $client->__call("rechercheBtParCodeproduitEtCodepostalEtDate",array(0,$cp,0));
|
12 |
-
} catch (Exception $e) {
|
13 |
-
return $this->getPointsRelaisByPudo('',$cp);
|
14 |
-
}
|
15 |
-
}
|
16 |
-
|
17 |
-
/* get point relais by address */
|
18 |
-
public function getPointRelaisByAddress($shippingMethodCode = 'chronorelais') {
|
19 |
-
|
20 |
-
if(!$shippingMethodCode) {
|
21 |
-
return false;
|
22 |
-
}
|
23 |
-
$quote = Mage::getSingleton('checkout/cart')->getQuote();
|
24 |
-
$address = $quote->getShippingAddress();
|
25 |
-
$helperData = Mage::helper('chronorelais');
|
26 |
-
|
27 |
-
try {
|
28 |
-
|
29 |
-
$pointRelaisWs = 'https://www.chronopost.fr/recherchebt-ws-cxf/PointRelaisServiceWS?wsdl';
|
30 |
-
$pointRelaisWsMethod = Mage::getStoreConfig('carriers/'.$shippingMethodCode.'/point_relai_ws_method');
|
31 |
-
$pointRelaisProductCode = $helperData->getChronoProductCode($address->getCountryId(),$shippingMethodCode);
|
32 |
-
$pointRelaisService = 'T';
|
33 |
-
$addAddressToWs = Mage::getStoreConfig('carriers/'.$shippingMethodCode.'/add_address_to_ws');
|
34 |
-
$maxPointChronopost = Mage::getStoreConfig('carriers/'.$shippingMethodCode.'/max_point_chronopost');
|
35 |
-
|
36 |
-
$maxDistanceSearch = Mage::getStoreConfig('carriers/'.$shippingMethodCode.'/max_distance_search');
|
37 |
-
|
38 |
-
$client = new SoapClient($pointRelaisWs, array('trace' => 0, 'connection_timeout' => 10));
|
39 |
-
|
40 |
-
/* si dom => on ne met pas le code ISO mais un code spécifique, sinon le relai dom ne fonctionne pas */
|
41 |
-
$countryDomCode = $this->getCountryDomCode();
|
42 |
-
$countryId = $address->getCountryId();
|
43 |
-
|
44 |
-
if(isset($countryDomCode[$countryId])) {
|
45 |
-
$countryId = $countryDomCode[$countryId];
|
46 |
-
}
|
47 |
-
|
48 |
-
$params = array(
|
49 |
-
'accountNumber' => $helperData->getConfigurationAccountNumber(),
|
50 |
-
'password' => $helperData->getConfigurationAccountPass(),
|
51 |
-
'zipCode' => $this->getFilledValue($address->getPostcode()),
|
52 |
-
'city' => $this->getFilledValue($address->getCity()),
|
53 |
-
'countryCode' => $this->getFilledValue($countryId),
|
54 |
-
'type' => 'P',
|
55 |
-
'productCode' => $pointRelaisProductCode,
|
56 |
-
'service' => $pointRelaisService,
|
57 |
-
'weight' => 2000,
|
58 |
-
'shippingDate' => date('d/m/Y'),
|
59 |
-
'maxPointChronopost' => $maxPointChronopost,
|
60 |
-
'maxDistanceSearch' => $maxDistanceSearch,
|
61 |
-
'holidayTolerant' => 1
|
62 |
-
);
|
63 |
-
if($addAddressToWs) {
|
64 |
-
$params['address'] = $this->getFilledValue($address->getStreet(1));
|
65 |
-
}
|
66 |
-
$webservbt = $client->$pointRelaisWsMethod($params);
|
67 |
-
|
68 |
-
/* format $webservbt pour avoir le meme format que lors de l'appel du WS par code postal */
|
69 |
-
if($webservbt->return->errorCode == 0)
|
70 |
-
{
|
71 |
-
/*
|
72 |
-
* Format entrée
|
73 |
-
*
|
74 |
-
* accesPersonneMobiliteReduite
|
75 |
-
actif
|
76 |
-
adresse1
|
77 |
-
adresse2
|
78 |
-
adresse3
|
79 |
-
codePays
|
80 |
-
codePostal
|
81 |
-
coordGeolocalisationLatitude
|
82 |
-
coordGeolocalisationLongitude
|
83 |
-
distanceEnMetre
|
84 |
-
identifiant
|
85 |
-
indiceDeLocalisation
|
86 |
-
listeHoraireOuverture
|
87 |
-
localite
|
88 |
-
nom
|
89 |
-
poidsMaxi
|
90 |
-
typeDePoint
|
91 |
-
urlGoogleMaps
|
92 |
-
*
|
93 |
-
* Format sortie
|
94 |
-
* adresse1
|
95 |
-
adresse2
|
96 |
-
adresse3
|
97 |
-
codePostal
|
98 |
-
dateArriveColis
|
99 |
-
horairesOuvertureDimanche ("10:00-12:30 14:30-19:00")
|
100 |
-
horairesOuvertureJeudi
|
101 |
-
horairesOuvertureLundi
|
102 |
-
horairesOuvertureMardi
|
103 |
-
horairesOuvertureMercredi
|
104 |
-
horairesOuvertureSamedi
|
105 |
-
horairesOuvertureVendredi
|
106 |
-
identifiantChronopostPointA2PAS
|
107 |
-
localite
|
108 |
-
nomEnseigne
|
109 |
-
*
|
110 |
-
*
|
111 |
-
*
|
112 |
-
* 2013-02-19T10:42:40.196Z
|
113 |
-
*
|
114 |
-
*/
|
115 |
-
$listePr = $webservbt->return->listePointRelais;
|
116 |
-
if(count($webservbt->return->listePointRelais) == 1) {
|
117 |
-
$listePr = array($listePr);
|
118 |
-
}
|
119 |
-
$return = array();
|
120 |
-
foreach($listePr as $pr)
|
121 |
-
{
|
122 |
-
$newPr = (object)array();
|
123 |
-
$newPr->adresse1 = $pr->adresse1;
|
124 |
-
$newPr->adresse2 = $pr->adresse2;
|
125 |
-
$newPr->adresse3 = $pr->adresse3;
|
126 |
-
$newPr->codePostal = $pr->codePostal;
|
127 |
-
$newPr->identifiantChronopostPointA2PAS = $pr->identifiant;
|
128 |
-
$newPr->localite = $pr->localite;
|
129 |
-
$newPr->nomEnseigne = $pr->nom;
|
130 |
-
$time = new DateTime;
|
131 |
-
$newPr->dateArriveColis = $time->format(DateTime::ATOM);
|
132 |
-
$newPr->horairesOuvertureLundi = $newPr->horairesOuvertureMardi = $newPr->horairesOuvertureMercredi = $newPr->horairesOuvertureJeudi = $newPr->horairesOuvertureVendredi = $newPr->horairesOuvertureSamedi = $newPr->horairesOuvertureDimanche = '';
|
133 |
-
foreach($pr->listeHoraireOuverture as $horaire) {
|
134 |
-
switch($horaire->jour) {
|
135 |
-
case '1' :
|
136 |
-
$newPr->horairesOuvertureLundi = $horaire->horairesAsString;
|
137 |
-
break;
|
138 |
-
case '2' :
|
139 |
-
$newPr->horairesOuvertureMardi = $horaire->horairesAsString;
|
140 |
-
break;
|
141 |
-
case '3' :
|
142 |
-
$newPr->horairesOuvertureMercredi = $horaire->horairesAsString;
|
143 |
-
break;
|
144 |
-
case '4' :
|
145 |
-
$newPr->horairesOuvertureJeudi = $horaire->horairesAsString;
|
146 |
-
break;
|
147 |
-
case '5' :
|
148 |
-
$newPr->horairesOuvertureVendredi = $horaire->horairesAsString;
|
149 |
-
break;
|
150 |
-
case '6' :
|
151 |
-
$newPr->horairesOuvertureSamedi = $horaire->horairesAsString;
|
152 |
-
break;
|
153 |
-
case '7' :
|
154 |
-
$newPr->horairesOuvertureDimanche = $horaire->horairesAsString;
|
155 |
-
break;
|
156 |
-
default : break;
|
157 |
-
}
|
158 |
-
}
|
159 |
-
if(empty($newPr->horairesOuvertureLundi)) {
|
160 |
-
$newPr->horairesOuvertureLundi = "00:00-00:00 00:00-00:00";
|
161 |
-
}
|
162 |
-
if(empty($newPr->horairesOuvertureMardi)) {
|
163 |
-
$newPr->horairesOuvertureMardi = "00:00-00:00 00:00-00:00";
|
164 |
-
}
|
165 |
-
if(empty($newPr->horairesOuvertureMercredi)) {
|
166 |
-
$newPr->horairesOuvertureMercredi = "00:00-00:00 00:00-00:00";
|
167 |
-
}
|
168 |
-
if(empty($newPr->horairesOuvertureJeudi)) {
|
169 |
-
$newPr->horairesOuvertureJeudi = "00:00-00:00 00:00-00:00";
|
170 |
-
}
|
171 |
-
if(empty($newPr->horairesOuvertureVendredi)) {
|
172 |
-
$newPr->horairesOuvertureVendredi = "00:00-00:00 00:00-00:00";
|
173 |
-
}
|
174 |
-
if(empty($newPr->horairesOuvertureSamedi)) {
|
175 |
-
$newPr->horairesOuvertureSamedi = "00:00-00:00 00:00-00:00";
|
176 |
-
}
|
177 |
-
if(empty($newPr->horairesOuvertureDimanche)) {
|
178 |
-
$newPr->horairesOuvertureDimanche = "00:00-00:00 00:00-00:00";
|
179 |
-
}
|
180 |
-
|
181 |
-
$return[] = $newPr;
|
182 |
-
}
|
183 |
-
return $return;
|
184 |
-
}
|
185 |
-
} catch (Exception $e) {
|
186 |
-
return $this->getPointsRelaisByPudo($address);
|
187 |
-
}
|
188 |
-
}
|
189 |
-
|
190 |
-
protected function getCountryDomCode() {
|
191 |
-
return array(
|
192 |
-
'RE' => 'REU',
|
193 |
-
'MQ' => 'MTQ',
|
194 |
-
'GP' => 'GLP',
|
195 |
-
'MX' => 'MYT',
|
196 |
-
'GF' => 'GUF'
|
197 |
-
);
|
198 |
-
}
|
199 |
-
|
200 |
-
public function getDetailRelaisPoint($btcode) {
|
201 |
-
try {
|
202 |
-
$helperData = Mage::helper('chronorelais');
|
203 |
-
$params = array(
|
204 |
-
'accountNumber' => $helperData->getConfigurationAccountNumber(),
|
205 |
-
'password' => $helperData->getConfigurationAccountPass(),
|
206 |
-
'identifiant' => $btcode
|
207 |
-
);
|
208 |
-
|
209 |
-
$client = new SoapClient("https://www.chronopost.fr/recherchebt-ws-cxf/PointRelaisServiceWS");
|
210 |
-
$webservbt = $client->
|
211 |
-
|
212 |
-
return
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
$newPr
|
245 |
-
$newPr->
|
246 |
-
$
|
247 |
-
$newPr->
|
248 |
-
$newPr->
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
case '
|
261 |
-
if(!empty($newPr->
|
262 |
-
$newPr->
|
263 |
-
}
|
264 |
-
$newPr->
|
265 |
-
break;
|
266 |
-
case '
|
267 |
-
if(!empty($newPr->
|
268 |
-
$newPr->
|
269 |
-
}
|
270 |
-
$newPr->
|
271 |
-
break;
|
272 |
-
case '
|
273 |
-
if(!empty($newPr->
|
274 |
-
$newPr->
|
275 |
-
}
|
276 |
-
$newPr->
|
277 |
-
break;
|
278 |
-
case '
|
279 |
-
if(!empty($newPr->
|
280 |
-
$newPr->
|
281 |
-
}
|
282 |
-
$newPr->
|
283 |
-
break;
|
284 |
-
case '
|
285 |
-
if(!empty($newPr->
|
286 |
-
$newPr->
|
287 |
-
}
|
288 |
-
$newPr->
|
289 |
-
break;
|
290 |
-
case '
|
291 |
-
if(!empty($newPr->
|
292 |
-
$newPr->
|
293 |
-
}
|
294 |
-
$newPr->
|
295 |
-
break;
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
}
|
307 |
-
if(empty($newPr->
|
308 |
-
$newPr->
|
309 |
-
}
|
310 |
-
if(empty($newPr->
|
311 |
-
$newPr->
|
312 |
-
}
|
313 |
-
if(empty($newPr->
|
314 |
-
$newPr->
|
315 |
-
}
|
316 |
-
if(empty($newPr->
|
317 |
-
$newPr->
|
318 |
-
}
|
319 |
-
if(empty($newPr->
|
320 |
-
$newPr->
|
321 |
-
}
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
'
|
343 |
-
'
|
344 |
-
'
|
345 |
-
'
|
346 |
-
'
|
347 |
-
'
|
348 |
-
'
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
$newPr
|
370 |
-
$newPr->
|
371 |
-
$
|
372 |
-
$newPr->
|
373 |
-
$newPr->
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
case '
|
386 |
-
if(!empty($newPr->
|
387 |
-
$newPr->
|
388 |
-
}
|
389 |
-
$newPr->
|
390 |
-
break;
|
391 |
-
case '
|
392 |
-
if(!empty($newPr->
|
393 |
-
$newPr->
|
394 |
-
}
|
395 |
-
$newPr->
|
396 |
-
break;
|
397 |
-
case '
|
398 |
-
if(!empty($newPr->
|
399 |
-
$newPr->
|
400 |
-
}
|
401 |
-
$newPr->
|
402 |
-
break;
|
403 |
-
case '
|
404 |
-
if(!empty($newPr->
|
405 |
-
$newPr->
|
406 |
-
}
|
407 |
-
$newPr->
|
408 |
-
break;
|
409 |
-
case '
|
410 |
-
if(!empty($newPr->
|
411 |
-
$newPr->
|
412 |
-
}
|
413 |
-
$newPr->
|
414 |
-
break;
|
415 |
-
case '
|
416 |
-
if(!empty($newPr->
|
417 |
-
$newPr->
|
418 |
-
}
|
419 |
-
$newPr->
|
420 |
-
break;
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
}
|
430 |
-
if(empty($newPr->
|
431 |
-
$newPr->
|
432 |
-
}
|
433 |
-
if(empty($newPr->
|
434 |
-
$newPr->
|
435 |
-
}
|
436 |
-
if(empty($newPr->
|
437 |
-
$newPr->
|
438 |
-
}
|
439 |
-
if(empty($newPr->
|
440 |
-
$newPr->
|
441 |
-
}
|
442 |
-
if(empty($newPr->
|
443 |
-
$newPr->
|
444 |
-
}
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
}
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
}
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
'
|
507 |
-
'
|
508 |
-
'
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
$stringToReturn =
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
);
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
$
|
585 |
-
|
586 |
-
|
587 |
-
$
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
$
|
594 |
-
|
595 |
-
$
|
596 |
-
|
597 |
-
|
598 |
-
$
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
$
|
608 |
-
|
609 |
-
'
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
'
|
616 |
-
'
|
617 |
-
|
618 |
-
'
|
619 |
-
'
|
620 |
-
'
|
621 |
-
'
|
622 |
-
'
|
623 |
-
|
624 |
-
'
|
625 |
-
'
|
626 |
-
'
|
627 |
-
'
|
628 |
-
'
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
$
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
$
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
$
|
709 |
-
|
710 |
-
$
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
'
|
718 |
-
'
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Helper_Webservice extends Mage_Core_Helper_Abstract {
|
4 |
+
|
5 |
+
var $methodsAllowed = false;
|
6 |
+
|
7 |
+
public function getPointsRelaisByCp($cp) {
|
8 |
+
|
9 |
+
try {
|
10 |
+
$client = new SoapClient("http://wsshipping.chronopost.fr/soap.point.relais/services/ServiceRechercheBt?wsdl",array('trace'=> 0,'connection_timeout'=>10));
|
11 |
+
return $client->__call("rechercheBtParCodeproduitEtCodepostalEtDate",array(0,$cp,0));
|
12 |
+
} catch (Exception $e) {
|
13 |
+
return $this->getPointsRelaisByPudo('',$cp);
|
14 |
+
}
|
15 |
+
}
|
16 |
+
|
17 |
+
/* get point relais by address */
|
18 |
+
public function getPointRelaisByAddress($shippingMethodCode = 'chronorelais') {
|
19 |
+
|
20 |
+
if(!$shippingMethodCode) {
|
21 |
+
return false;
|
22 |
+
}
|
23 |
+
$quote = Mage::getSingleton('checkout/cart')->getQuote();
|
24 |
+
$address = $quote->getShippingAddress();
|
25 |
+
$helperData = Mage::helper('chronorelais');
|
26 |
+
|
27 |
+
try {
|
28 |
+
|
29 |
+
$pointRelaisWs = 'https://www.chronopost.fr/recherchebt-ws-cxf/PointRelaisServiceWS?wsdl';
|
30 |
+
$pointRelaisWsMethod = Mage::getStoreConfig('carriers/'.$shippingMethodCode.'/point_relai_ws_method');
|
31 |
+
$pointRelaisProductCode = $helperData->getChronoProductCode($address->getCountryId(),$shippingMethodCode);
|
32 |
+
$pointRelaisService = 'T';
|
33 |
+
$addAddressToWs = Mage::getStoreConfig('carriers/'.$shippingMethodCode.'/add_address_to_ws');
|
34 |
+
$maxPointChronopost = Mage::getStoreConfig('carriers/'.$shippingMethodCode.'/max_point_chronopost');
|
35 |
+
|
36 |
+
$maxDistanceSearch = Mage::getStoreConfig('carriers/'.$shippingMethodCode.'/max_distance_search');
|
37 |
+
|
38 |
+
$client = new SoapClient($pointRelaisWs, array('trace' => 0, 'connection_timeout' => 10));
|
39 |
+
|
40 |
+
/* si dom => on ne met pas le code ISO mais un code spécifique, sinon le relai dom ne fonctionne pas */
|
41 |
+
$countryDomCode = $this->getCountryDomCode();
|
42 |
+
$countryId = $address->getCountryId();
|
43 |
+
|
44 |
+
if(isset($countryDomCode[$countryId])) {
|
45 |
+
$countryId = $countryDomCode[$countryId];
|
46 |
+
}
|
47 |
+
|
48 |
+
$params = array(
|
49 |
+
'accountNumber' => $helperData->getConfigurationAccountNumber(),
|
50 |
+
'password' => $helperData->getConfigurationAccountPass(),
|
51 |
+
'zipCode' => $this->getFilledValue($address->getPostcode()),
|
52 |
+
'city' => $this->getFilledValue($address->getCity()),
|
53 |
+
'countryCode' => $this->getFilledValue($countryId),
|
54 |
+
'type' => 'P',
|
55 |
+
'productCode' => $pointRelaisProductCode,
|
56 |
+
'service' => $pointRelaisService,
|
57 |
+
'weight' => 2000,
|
58 |
+
'shippingDate' => date('d/m/Y'),
|
59 |
+
'maxPointChronopost' => $maxPointChronopost,
|
60 |
+
'maxDistanceSearch' => $maxDistanceSearch,
|
61 |
+
'holidayTolerant' => 1
|
62 |
+
);
|
63 |
+
if($addAddressToWs) {
|
64 |
+
$params['address'] = $this->getFilledValue($address->getStreet(1));
|
65 |
+
}
|
66 |
+
$webservbt = $client->$pointRelaisWsMethod($params);
|
67 |
+
|
68 |
+
/* format $webservbt pour avoir le meme format que lors de l'appel du WS par code postal */
|
69 |
+
if($webservbt->return->errorCode == 0)
|
70 |
+
{
|
71 |
+
/*
|
72 |
+
* Format entrée
|
73 |
+
*
|
74 |
+
* accesPersonneMobiliteReduite
|
75 |
+
actif
|
76 |
+
adresse1
|
77 |
+
adresse2
|
78 |
+
adresse3
|
79 |
+
codePays
|
80 |
+
codePostal
|
81 |
+
coordGeolocalisationLatitude
|
82 |
+
coordGeolocalisationLongitude
|
83 |
+
distanceEnMetre
|
84 |
+
identifiant
|
85 |
+
indiceDeLocalisation
|
86 |
+
listeHoraireOuverture
|
87 |
+
localite
|
88 |
+
nom
|
89 |
+
poidsMaxi
|
90 |
+
typeDePoint
|
91 |
+
urlGoogleMaps
|
92 |
+
*
|
93 |
+
* Format sortie
|
94 |
+
* adresse1
|
95 |
+
adresse2
|
96 |
+
adresse3
|
97 |
+
codePostal
|
98 |
+
dateArriveColis
|
99 |
+
horairesOuvertureDimanche ("10:00-12:30 14:30-19:00")
|
100 |
+
horairesOuvertureJeudi
|
101 |
+
horairesOuvertureLundi
|
102 |
+
horairesOuvertureMardi
|
103 |
+
horairesOuvertureMercredi
|
104 |
+
horairesOuvertureSamedi
|
105 |
+
horairesOuvertureVendredi
|
106 |
+
identifiantChronopostPointA2PAS
|
107 |
+
localite
|
108 |
+
nomEnseigne
|
109 |
+
*
|
110 |
+
*
|
111 |
+
*
|
112 |
+
* 2013-02-19T10:42:40.196Z
|
113 |
+
*
|
114 |
+
*/
|
115 |
+
$listePr = $webservbt->return->listePointRelais;
|
116 |
+
if(count($webservbt->return->listePointRelais) == 1) {
|
117 |
+
$listePr = array($listePr);
|
118 |
+
}
|
119 |
+
$return = array();
|
120 |
+
foreach($listePr as $pr)
|
121 |
+
{
|
122 |
+
$newPr = (object)array();
|
123 |
+
$newPr->adresse1 = $pr->adresse1;
|
124 |
+
$newPr->adresse2 = $pr->adresse2;
|
125 |
+
$newPr->adresse3 = $pr->adresse3;
|
126 |
+
$newPr->codePostal = $pr->codePostal;
|
127 |
+
$newPr->identifiantChronopostPointA2PAS = $pr->identifiant;
|
128 |
+
$newPr->localite = $pr->localite;
|
129 |
+
$newPr->nomEnseigne = $pr->nom;
|
130 |
+
$time = new DateTime;
|
131 |
+
$newPr->dateArriveColis = $time->format(DateTime::ATOM);
|
132 |
+
$newPr->horairesOuvertureLundi = $newPr->horairesOuvertureMardi = $newPr->horairesOuvertureMercredi = $newPr->horairesOuvertureJeudi = $newPr->horairesOuvertureVendredi = $newPr->horairesOuvertureSamedi = $newPr->horairesOuvertureDimanche = '';
|
133 |
+
foreach($pr->listeHoraireOuverture as $horaire) {
|
134 |
+
switch($horaire->jour) {
|
135 |
+
case '1' :
|
136 |
+
$newPr->horairesOuvertureLundi = $horaire->horairesAsString;
|
137 |
+
break;
|
138 |
+
case '2' :
|
139 |
+
$newPr->horairesOuvertureMardi = $horaire->horairesAsString;
|
140 |
+
break;
|
141 |
+
case '3' :
|
142 |
+
$newPr->horairesOuvertureMercredi = $horaire->horairesAsString;
|
143 |
+
break;
|
144 |
+
case '4' :
|
145 |
+
$newPr->horairesOuvertureJeudi = $horaire->horairesAsString;
|
146 |
+
break;
|
147 |
+
case '5' :
|
148 |
+
$newPr->horairesOuvertureVendredi = $horaire->horairesAsString;
|
149 |
+
break;
|
150 |
+
case '6' :
|
151 |
+
$newPr->horairesOuvertureSamedi = $horaire->horairesAsString;
|
152 |
+
break;
|
153 |
+
case '7' :
|
154 |
+
$newPr->horairesOuvertureDimanche = $horaire->horairesAsString;
|
155 |
+
break;
|
156 |
+
default : break;
|
157 |
+
}
|
158 |
+
}
|
159 |
+
if(empty($newPr->horairesOuvertureLundi)) {
|
160 |
+
$newPr->horairesOuvertureLundi = "00:00-00:00 00:00-00:00";
|
161 |
+
}
|
162 |
+
if(empty($newPr->horairesOuvertureMardi)) {
|
163 |
+
$newPr->horairesOuvertureMardi = "00:00-00:00 00:00-00:00";
|
164 |
+
}
|
165 |
+
if(empty($newPr->horairesOuvertureMercredi)) {
|
166 |
+
$newPr->horairesOuvertureMercredi = "00:00-00:00 00:00-00:00";
|
167 |
+
}
|
168 |
+
if(empty($newPr->horairesOuvertureJeudi)) {
|
169 |
+
$newPr->horairesOuvertureJeudi = "00:00-00:00 00:00-00:00";
|
170 |
+
}
|
171 |
+
if(empty($newPr->horairesOuvertureVendredi)) {
|
172 |
+
$newPr->horairesOuvertureVendredi = "00:00-00:00 00:00-00:00";
|
173 |
+
}
|
174 |
+
if(empty($newPr->horairesOuvertureSamedi)) {
|
175 |
+
$newPr->horairesOuvertureSamedi = "00:00-00:00 00:00-00:00";
|
176 |
+
}
|
177 |
+
if(empty($newPr->horairesOuvertureDimanche)) {
|
178 |
+
$newPr->horairesOuvertureDimanche = "00:00-00:00 00:00-00:00";
|
179 |
+
}
|
180 |
+
|
181 |
+
$return[] = $newPr;
|
182 |
+
}
|
183 |
+
return $return;
|
184 |
+
}
|
185 |
+
} catch (Exception $e) {
|
186 |
+
return $this->getPointsRelaisByPudo($address);
|
187 |
+
}
|
188 |
+
}
|
189 |
+
|
190 |
+
protected function getCountryDomCode() {
|
191 |
+
return array(
|
192 |
+
'RE' => 'REU',
|
193 |
+
'MQ' => 'MTQ',
|
194 |
+
'GP' => 'GLP',
|
195 |
+
'MX' => 'MYT',
|
196 |
+
'GF' => 'GUF'
|
197 |
+
);
|
198 |
+
}
|
199 |
+
|
200 |
+
public function getDetailRelaisPoint($btcode) {
|
201 |
+
try {
|
202 |
+
$helperData = Mage::helper('chronorelais');
|
203 |
+
$params = array(
|
204 |
+
'accountNumber' => $helperData->getConfigurationAccountNumber(),
|
205 |
+
'password' => $helperData->getConfigurationAccountPass(),
|
206 |
+
'identifiant' => $btcode
|
207 |
+
);
|
208 |
+
|
209 |
+
$client = new SoapClient("https://www.chronopost.fr/recherchebt-ws-cxf/PointRelaisServiceWS?wsdl");
|
210 |
+
$webservbt = $client->rechercheDetailPointChronopost($params);
|
211 |
+
|
212 |
+
if($webservbt->return->errorCode == 0)
|
213 |
+
{
|
214 |
+
return $webservbt->return->listePointRelais;
|
215 |
+
} else {
|
216 |
+
return $this->getDetailRelaisPointByPudo($btcode);
|
217 |
+
}
|
218 |
+
|
219 |
+
} catch (Exception $e) {
|
220 |
+
return $this->getDetailRelaisPointByPudo($btcode);
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
224 |
+
|
225 |
+
/*
|
226 |
+
*
|
227 |
+
* WS de secours
|
228 |
+
*/
|
229 |
+
|
230 |
+
public function getDetailRelaisPointByPudo($btcode) {
|
231 |
+
$params = array(
|
232 |
+
'carrier' => 'CHR',
|
233 |
+
'key' => '75f6fe195dc88ceecbc0f8a2f70a8f3a',
|
234 |
+
'pudo_id' => $btcode,
|
235 |
+
);
|
236 |
+
|
237 |
+
try {
|
238 |
+
$client = new SoapClient("http://mypudo.pickup-services.com/mypudo/mypudo.asmx?wsdl", array('trace' => 0, 'connection_timeout' => 10));
|
239 |
+
$webservbt = $client->GetPudoDetails($params);
|
240 |
+
$webservbt = json_decode(json_encode((object) simplexml_load_string($webservbt->GetPudoDetailsResult->any)), 1);
|
241 |
+
if(!isset($webservbt['ERROR'])) {
|
242 |
+
$pr = $webservbt['PUDO_ITEMS']['PUDO_ITEM'];
|
243 |
+
if($pr && $pr['@attributes']['active'] == 'true') {
|
244 |
+
$newPr = (object)array();
|
245 |
+
$newPr->adresse1 = $pr['ADDRESS1'];
|
246 |
+
$newPr->adresse2 = is_array($pr['ADDRESS2']) ? implode(' ', $pr['ADDRESS2']) : $pr['ADDRESS2'];
|
247 |
+
$newPr->adresse3 = is_array($pr['ADDRESS3']) ? implode(' ', $pr['ADDRESS3']) : $pr['ADDRESS3'];
|
248 |
+
$newPr->codePostal = $pr['ZIPCODE'];
|
249 |
+
$newPr->identifiantChronopostPointA2PAS = $pr['PUDO_ID'];
|
250 |
+
$newPr->localite = $pr['CITY'];
|
251 |
+
$newPr->nomEnseigne = $pr['NAME'];
|
252 |
+
$time = new DateTime;
|
253 |
+
$newPr->dateArriveColis = $time->format(DateTime::ATOM);
|
254 |
+
$newPr->horairesOuvertureLundi = $newPr->horairesOuvertureMardi = $newPr->horairesOuvertureMercredi = $newPr->horairesOuvertureJeudi = $newPr->horairesOuvertureVendredi = $newPr->horairesOuvertureSamedi = $newPr->horairesOuvertureDimanche = '';
|
255 |
+
|
256 |
+
if(isset($pr['OPENING_HOURS_ITEMS']['OPENING_HOURS_ITEM'])) {
|
257 |
+
$listeHoraires = $pr['OPENING_HOURS_ITEMS']['OPENING_HOURS_ITEM'];
|
258 |
+
foreach($listeHoraires as $horaire) {
|
259 |
+
switch($horaire['DAY_ID']) {
|
260 |
+
case '1' :
|
261 |
+
if(!empty($newPr->horairesOuvertureLundi)) {
|
262 |
+
$newPr->horairesOuvertureLundi .= ' ';
|
263 |
+
}
|
264 |
+
$newPr->horairesOuvertureLundi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
265 |
+
break;
|
266 |
+
case '2' :
|
267 |
+
if(!empty($newPr->horairesOuvertureMardi)) {
|
268 |
+
$newPr->horairesOuvertureMardi .= ' ';
|
269 |
+
}
|
270 |
+
$newPr->horairesOuvertureMardi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
271 |
+
break;
|
272 |
+
case '3' :
|
273 |
+
if(!empty($newPr->horairesOuvertureMercredi)) {
|
274 |
+
$newPr->horairesOuvertureMercredi .= ' ';
|
275 |
+
}
|
276 |
+
$newPr->horairesOuvertureMercredi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
277 |
+
break;
|
278 |
+
case '4' :
|
279 |
+
if(!empty($newPr->horairesOuvertureJeudi)) {
|
280 |
+
$newPr->horairesOuvertureJeudi .= ' ';
|
281 |
+
}
|
282 |
+
$newPr->horairesOuvertureJeudi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
283 |
+
break;
|
284 |
+
case '5' :
|
285 |
+
if(!empty($newPr->horairesOuvertureVendredi)) {
|
286 |
+
$newPr->horairesOuvertureVendredi .= ' ';
|
287 |
+
}
|
288 |
+
$newPr->horairesOuvertureVendredi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
289 |
+
break;
|
290 |
+
case '6' :
|
291 |
+
if(!empty($newPr->horairesOuvertureSamedi)) {
|
292 |
+
$newPr->horairesOuvertureSamedi .= ' ';
|
293 |
+
}
|
294 |
+
$newPr->horairesOuvertureSamedi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
295 |
+
break;
|
296 |
+
case '7' :
|
297 |
+
if(!empty($newPr->horairesOuvertureDimanche)) {
|
298 |
+
$newPr->horairesOuvertureDimanche .= ' ';
|
299 |
+
}
|
300 |
+
$newPr->horairesOuvertureDimanche .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
301 |
+
break;
|
302 |
+
default :
|
303 |
+
break;
|
304 |
+
}
|
305 |
+
}
|
306 |
+
}
|
307 |
+
if(empty($newPr->horairesOuvertureLundi)) {
|
308 |
+
$newPr->horairesOuvertureLundi = "00:00-00:00 00:00-00:00";
|
309 |
+
}
|
310 |
+
if(empty($newPr->horairesOuvertureMardi)) {
|
311 |
+
$newPr->horairesOuvertureMardi = "00:00-00:00 00:00-00:00";
|
312 |
+
}
|
313 |
+
if(empty($newPr->horairesOuvertureMercredi)) {
|
314 |
+
$newPr->horairesOuvertureMercredi = "00:00-00:00 00:00-00:00";
|
315 |
+
}
|
316 |
+
if(empty($newPr->horairesOuvertureJeudi)) {
|
317 |
+
$newPr->horairesOuvertureJeudi = "00:00-00:00 00:00-00:00";
|
318 |
+
}
|
319 |
+
if(empty($newPr->horairesOuvertureVendredi)) {
|
320 |
+
$newPr->horairesOuvertureVendredi = "00:00-00:00 00:00-00:00";
|
321 |
+
}
|
322 |
+
if(empty($newPr->horairesOuvertureSamedi)) {
|
323 |
+
$newPr->horairesOuvertureSamedi = "00:00-00:00 00:00-00:00";
|
324 |
+
}
|
325 |
+
if(empty($newPr->horairesOuvertureDimanche)) {
|
326 |
+
$newPr->horairesOuvertureDimanche = "00:00-00:00 00:00-00:00";
|
327 |
+
}
|
328 |
+
|
329 |
+
return $newPr;
|
330 |
+
}
|
331 |
+
}
|
332 |
+
}
|
333 |
+
catch (Exception $e) {
|
334 |
+
return false;
|
335 |
+
}
|
336 |
+
return false;
|
337 |
+
}
|
338 |
+
|
339 |
+
public function getPointsRelaisByPudo($address = '', $cp = '') {
|
340 |
+
|
341 |
+
$params = array(
|
342 |
+
'carrier' => 'CHR',
|
343 |
+
'key' => '75f6fe195dc88ceecbc0f8a2f70a8f3a',
|
344 |
+
'address' => $address ? $this->getFilledValue($address->getStreet(1)) : '',
|
345 |
+
'zipCode' => $address ? $this->getFilledValue($address->getPostcode()) : $cp,
|
346 |
+
'city' => $address ? $this->getFilledValue($address->getCity()) : 'Lille',
|
347 |
+
'countrycode' => $address ? $this->getFilledValue($address->getCountryId()) : '',
|
348 |
+
'requestID' => '1',
|
349 |
+
'date_from' => date('d/m/Y'),
|
350 |
+
'max_pudo_number' => 5,
|
351 |
+
'max_distance_search' => 10,
|
352 |
+
'weight' => 1,
|
353 |
+
'category' => '',
|
354 |
+
'holiday_tolerant' => 1,
|
355 |
+
);
|
356 |
+
try {
|
357 |
+
$client = new SoapClient("http://mypudo.pickup-services.com/mypudo/mypudo.asmx?wsdl", array('trace' => 0, 'connection_timeout' => 10));
|
358 |
+
$webservbt = $client->GetPudoList($params);
|
359 |
+
$webservbt = json_decode(json_encode((object) simplexml_load_string($webservbt->GetPudoListResult->any)), 1);
|
360 |
+
if(!isset($webservbt['ERROR'])) {
|
361 |
+
$return = array();
|
362 |
+
|
363 |
+
$listePr = $webservbt['PUDO_ITEMS']['PUDO_ITEM'];
|
364 |
+
if($listePr) {
|
365 |
+
foreach($listePr as $pr)
|
366 |
+
{
|
367 |
+
if($pr['@attributes']['active'] == 'true')
|
368 |
+
{
|
369 |
+
$newPr = (object)array();
|
370 |
+
$newPr->adresse1 = $pr['ADDRESS1'];
|
371 |
+
$newPr->adresse2 = is_array($pr['ADDRESS2']) ? implode(' ', $pr['ADDRESS2']) : $pr['ADDRESS2'];
|
372 |
+
$newPr->adresse3 = is_array($pr['ADDRESS3']) ? implode(' ', $pr['ADDRESS3']) : $pr['ADDRESS3'];
|
373 |
+
$newPr->codePostal = $pr['ZIPCODE'];
|
374 |
+
$newPr->identifiantChronopostPointA2PAS = $pr['PUDO_ID'];
|
375 |
+
$newPr->localite = $pr['CITY'];
|
376 |
+
$newPr->nomEnseigne = $pr['NAME'];
|
377 |
+
$time = new DateTime;
|
378 |
+
$newPr->dateArriveColis = $time->format(DateTime::ATOM);
|
379 |
+
$newPr->horairesOuvertureLundi = $newPr->horairesOuvertureMardi = $newPr->horairesOuvertureMercredi = $newPr->horairesOuvertureJeudi = $newPr->horairesOuvertureVendredi = $newPr->horairesOuvertureSamedi = $newPr->horairesOuvertureDimanche = '';
|
380 |
+
|
381 |
+
if(isset($pr['OPENING_HOURS_ITEMS']['OPENING_HOURS_ITEM'])) {
|
382 |
+
$listeHoraires = $pr['OPENING_HOURS_ITEMS']['OPENING_HOURS_ITEM'];
|
383 |
+
foreach($listeHoraires as $horaire) {
|
384 |
+
switch($horaire['DAY_ID']) {
|
385 |
+
case '1' :
|
386 |
+
if(!empty($newPr->horairesOuvertureLundi)) {
|
387 |
+
$newPr->horairesOuvertureLundi .= ' ';
|
388 |
+
}
|
389 |
+
$newPr->horairesOuvertureLundi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
390 |
+
break;
|
391 |
+
case '2' :
|
392 |
+
if(!empty($newPr->horairesOuvertureMardi)) {
|
393 |
+
$newPr->horairesOuvertureMardi .= ' ';
|
394 |
+
}
|
395 |
+
$newPr->horairesOuvertureMardi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
396 |
+
break;
|
397 |
+
case '3' :
|
398 |
+
if(!empty($newPr->horairesOuvertureMercredi)) {
|
399 |
+
$newPr->horairesOuvertureMercredi .= ' ';
|
400 |
+
}
|
401 |
+
$newPr->horairesOuvertureMercredi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
402 |
+
break;
|
403 |
+
case '4' :
|
404 |
+
if(!empty($newPr->horairesOuvertureJeudi)) {
|
405 |
+
$newPr->horairesOuvertureJeudi .= ' ';
|
406 |
+
}
|
407 |
+
$newPr->horairesOuvertureJeudi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
408 |
+
break;
|
409 |
+
case '5' :
|
410 |
+
if(!empty($newPr->horairesOuvertureVendredi)) {
|
411 |
+
$newPr->horairesOuvertureVendredi .= ' ';
|
412 |
+
}
|
413 |
+
$newPr->horairesOuvertureVendredi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
414 |
+
break;
|
415 |
+
case '6' :
|
416 |
+
if(!empty($newPr->horairesOuvertureSamedi)) {
|
417 |
+
$newPr->horairesOuvertureSamedi .= ' ';
|
418 |
+
}
|
419 |
+
$newPr->horairesOuvertureSamedi .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
420 |
+
break;
|
421 |
+
case '7' :
|
422 |
+
if(!empty($newPr->horairesOuvertureDimanche)) {
|
423 |
+
$newPr->horairesOuvertureDimanche .= ' ';
|
424 |
+
}
|
425 |
+
$newPr->horairesOuvertureDimanche .= $horaire['START_TM'].'-'.$horaire['END_TM'];
|
426 |
+
break;
|
427 |
+
}
|
428 |
+
}
|
429 |
+
}
|
430 |
+
if(empty($newPr->horairesOuvertureLundi)) {
|
431 |
+
$newPr->horairesOuvertureLundi = "00:00-00:00 00:00-00:00";
|
432 |
+
}
|
433 |
+
if(empty($newPr->horairesOuvertureMardi)) {
|
434 |
+
$newPr->horairesOuvertureMardi = "00:00-00:00 00:00-00:00";
|
435 |
+
}
|
436 |
+
if(empty($newPr->horairesOuvertureMercredi)) {
|
437 |
+
$newPr->horairesOuvertureMercredi = "00:00-00:00 00:00-00:00";
|
438 |
+
}
|
439 |
+
if(empty($newPr->horairesOuvertureJeudi)) {
|
440 |
+
$newPr->horairesOuvertureJeudi = "00:00-00:00 00:00-00:00";
|
441 |
+
}
|
442 |
+
if(empty($newPr->horairesOuvertureVendredi)) {
|
443 |
+
$newPr->horairesOuvertureVendredi = "00:00-00:00 00:00-00:00";
|
444 |
+
}
|
445 |
+
if(empty($newPr->horairesOuvertureSamedi)) {
|
446 |
+
$newPr->horairesOuvertureSamedi = "00:00-00:00 00:00-00:00";
|
447 |
+
}
|
448 |
+
if(empty($newPr->horairesOuvertureDimanche)) {
|
449 |
+
$newPr->horairesOuvertureDimanche = "00:00-00:00 00:00-00:00";
|
450 |
+
}
|
451 |
+
|
452 |
+
$return[] = $newPr;
|
453 |
+
}
|
454 |
+
}
|
455 |
+
return $return;
|
456 |
+
}
|
457 |
+
}
|
458 |
+
}
|
459 |
+
catch (Exception $e) {
|
460 |
+
return false;
|
461 |
+
}
|
462 |
+
return false;
|
463 |
+
}
|
464 |
+
|
465 |
+
|
466 |
+
public function getQuickcost($quickCost,$quickcost_url = '') {
|
467 |
+
if (!$quickcost_url) {
|
468 |
+
$quickcost_url = "https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl";
|
469 |
+
}
|
470 |
+
try {
|
471 |
+
$client = new SoapClient($quickcost_url);
|
472 |
+
$webservbt = $client->quickCost($quickCost);
|
473 |
+
|
474 |
+
return $webservbt->return;
|
475 |
+
} catch (Exception $e) {
|
476 |
+
return false;
|
477 |
+
}
|
478 |
+
}
|
479 |
+
|
480 |
+
public function checkLogin($quickCost,$quickcost_url = '') {
|
481 |
+
if (!$quickcost_url) {
|
482 |
+
$quickcost_url = "https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl";
|
483 |
+
}
|
484 |
+
try {
|
485 |
+
$client = new SoapClient($quickcost_url);
|
486 |
+
$webservbt = $client->calculateProducts($quickCost);
|
487 |
+
return $webservbt;
|
488 |
+
} catch (Exception $e) {
|
489 |
+
return false;
|
490 |
+
}
|
491 |
+
}
|
492 |
+
|
493 |
+
/*
|
494 |
+
* Return true si la méthode de livraison fait partie du contrat
|
495 |
+
*/
|
496 |
+
public function getMethodIsAllowed($code,$quote = '') {
|
497 |
+
$quote = Mage::getSingleton('checkout/cart')->getQuote();
|
498 |
+
$address = $quote->getShippingAddress();
|
499 |
+
$helperData = Mage::helper('chronorelais');
|
500 |
+
$code = $helperData->getChronoProductCode('',$code);
|
501 |
+
try {
|
502 |
+
if($this->methodsAllowed === false) {
|
503 |
+
$this->methodsAllowed = array();
|
504 |
+
$client = new SoapClient("https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl", array('trace' => 0, 'connection_timeout' => 10));
|
505 |
+
$params = array(
|
506 |
+
'accountNumber' => $helperData->getConfigurationAccountNumber(),
|
507 |
+
'password' => $helperData->getConfigurationAccountPass(),
|
508 |
+
'depCountryCode' => $helperData->getConfigurationShipperInfo('country'),
|
509 |
+
'depZipCode' => $helperData->getConfigurationShipperInfo('zipcode'),
|
510 |
+
'arrCountryCode' => $this->getFilledValue($address->getCountryId()),
|
511 |
+
'arrZipCode' => $this->getFilledValue($address->getPostcode()),
|
512 |
+
'arrCity' => $address->getCity() ? $this->getFilledValue($address->getCity()) : '-',
|
513 |
+
'type' => 'M',
|
514 |
+
'weight' => 1
|
515 |
+
);
|
516 |
+
$webservbt = $client->calculateProducts($params);
|
517 |
+
if($webservbt->return->errorCode == 0 && $webservbt->return->productList)
|
518 |
+
{
|
519 |
+
if(is_array($webservbt->return->productList)) {
|
520 |
+
foreach($webservbt->return->productList as $product) {
|
521 |
+
$this->methodsAllowed[] = $product->productCode;
|
522 |
+
}
|
523 |
+
} else { /* cas ou il y a un seul résultat */
|
524 |
+
$product = $webservbt->return->productList;
|
525 |
+
$this->methodsAllowed[] = $product->productCode;
|
526 |
+
}
|
527 |
+
}
|
528 |
+
}
|
529 |
+
if(!empty($this->methodsAllowed) && in_array($code, $this->methodsAllowed)) {
|
530 |
+
return true;
|
531 |
+
}
|
532 |
+
return false;
|
533 |
+
}catch(Exception $e) {
|
534 |
+
return false;
|
535 |
+
}
|
536 |
+
}
|
537 |
+
|
538 |
+
|
539 |
+
public function getFilledValue($value) {
|
540 |
+
if ($value) {
|
541 |
+
return $this->removeaccents(trim($value));
|
542 |
+
} else {
|
543 |
+
return '';
|
544 |
+
}
|
545 |
+
}
|
546 |
+
|
547 |
+
public function removeaccents($string) {
|
548 |
+
$stringToReturn = str_replace(
|
549 |
+
array('à', 'á', 'â', 'ã', 'ä', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', '/', '\xa8'), array('a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'A', 'A', 'A', 'A', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'N', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', ' ', 'e'), $string);
|
550 |
+
// Remove all remaining other unknown characters
|
551 |
+
$stringToReturn = preg_replace('/[^a-zA-Z0-9\-]/', ' ', $stringToReturn);
|
552 |
+
$stringToReturn = preg_replace('/^[\-]+/', '', $stringToReturn);
|
553 |
+
$stringToReturn = preg_replace('/[\-]+$/', '', $stringToReturn);
|
554 |
+
$stringToReturn = preg_replace('/[\-]{2,}/', ' ', $stringToReturn);
|
555 |
+
return $stringToReturn;
|
556 |
+
}
|
557 |
+
|
558 |
+
public function cancelSkybill($skybillNumber = '') {
|
559 |
+
if($skybillNumber) {
|
560 |
+
try {
|
561 |
+
|
562 |
+
$client = new SoapClient("https://www.chronopost.fr/tracking-cxf/TrackingServiceWS?wsdl",array('trace'=> 0,'connection_timeout'=>10));
|
563 |
+
|
564 |
+
$helperData = Mage::helper('chronorelais');
|
565 |
+
$params = array(
|
566 |
+
'accountNumber' => $helperData->getConfigurationAccountNumber(),
|
567 |
+
'password' => $helperData->getConfigurationAccountPass(),
|
568 |
+
'skybillNumber' => $skybillNumber,
|
569 |
+
'language' => Mage::app()->getLocale()->getLocaleCode()
|
570 |
+
);
|
571 |
+
|
572 |
+
return $client->cancelSkybill($params);
|
573 |
+
} catch (Exception $e) {
|
574 |
+
return false;
|
575 |
+
}
|
576 |
+
}
|
577 |
+
return false;
|
578 |
+
}
|
579 |
+
|
580 |
+
/* Livraison sur rendez-vous */
|
581 |
+
public function getSearchDeliverySlot($_srdvConfig = '') {
|
582 |
+
$quote = Mage::getSingleton('checkout/cart')->getQuote();
|
583 |
+
|
584 |
+
$_shippingAddress = $quote->getShippingAddress();
|
585 |
+
$recipient_address = $_shippingAddress->getStreet();
|
586 |
+
if (!isset($recipient_address[1])) {
|
587 |
+
$recipient_address[1] = '';
|
588 |
+
}
|
589 |
+
|
590 |
+
$_helper = Mage::helper('chronorelais');
|
591 |
+
try {
|
592 |
+
|
593 |
+
$soapHeaders = array();
|
594 |
+
$namespace = 'http://cxf.soap.ws.creneau.chronopost.fr/';
|
595 |
+
$soapHeaders[] = new SoapHeader($namespace, 'password', $_helper->getConfigurationAccountPass());
|
596 |
+
$soapHeaders[] = new SoapHeader($namespace, 'accountNumber', $_helper->getConfigurationAccountNumber());
|
597 |
+
|
598 |
+
$client = new SoapClient("https://www.chronopost.fr/rdv-cxf/services/CreneauServiceWS?wsdl", array('trace' => 1, 'connection_timeout' => 10));
|
599 |
+
$client->__setSoapHeaders($soapHeaders);
|
600 |
+
|
601 |
+
$_srdvConfig = json_decode($_srdvConfig,true);
|
602 |
+
|
603 |
+
/* definition date de debut */
|
604 |
+
$dateBegin = date('Y-m-d H:i:s');
|
605 |
+
if(isset($_srdvConfig['dateRemiseColis_nbJour']) && $_srdvConfig['dateRemiseColis_nbJour'] > 0) {
|
606 |
+
$dateBegin = date('Y-m-d', strtotime('+'.(int)$_srdvConfig['dateRemiseColis_nbJour'].' day'));
|
607 |
+
} elseif(isset($_srdvConfig['dateRemiseColis_jour']) && isset($_srdvConfig['dateRemiseColis_heures'])) {
|
608 |
+
$jour_text = date('l', strtotime("Sunday +".$_srdvConfig['dateRemiseColis_jour']." days"));
|
609 |
+
$dateBegin = date('Y-m-d', strtotime('next '.$jour_text)).' '.$_srdvConfig['dateRemiseColis_heures'].':'.$_srdvConfig['dateRemiseColis_minutes'].':00';
|
610 |
+
}
|
611 |
+
$dateBegin = date('Y-m-d',strtotime($dateBegin)).'T'.date('H:i:s',strtotime($dateBegin));
|
612 |
+
|
613 |
+
$params = array(
|
614 |
+
|
615 |
+
'callerTool' => 'RDVWS',
|
616 |
+
'productType' => 'RDV',
|
617 |
+
|
618 |
+
'shipperAdress1' => $_helper->getConfigurationShipperInfo('address1'),
|
619 |
+
'shipperAdress2' => $_helper->getConfigurationShipperInfo('address2'),
|
620 |
+
'shipperZipCode' => $_helper->getConfigurationShipperInfo('zipcode'),
|
621 |
+
'shipperCity' => $_helper->getConfigurationShipperInfo('city'),
|
622 |
+
'shipperCountry' => $_helper->getConfigurationShipperInfo('country'),
|
623 |
+
|
624 |
+
'recipientAdress1' => substr($this->getFilledValue($recipient_address[0]), 0, 38),
|
625 |
+
'recipientAdress2' => substr($this->getFilledValue($recipient_address[1]), 0, 38),
|
626 |
+
'recipientZipCode' => $this->getFilledValue($_shippingAddress->getPostcode()),
|
627 |
+
'recipientCity' => $this->getFilledValue($_shippingAddress->getCity()),
|
628 |
+
'recipientCountry' => $this->getFilledValue($_shippingAddress->getCountryId()),
|
629 |
+
|
630 |
+
'weight' => 1,
|
631 |
+
'dateBegin' => $dateBegin,
|
632 |
+
'shipperDeliverySlotClosed' => '',
|
633 |
+
'currency' => 'EUR',
|
634 |
+
'isDeliveryDate' => 0,
|
635 |
+
'slotType' => 'J'
|
636 |
+
);
|
637 |
+
|
638 |
+
|
639 |
+
for($i = 1; $i <= 4; $i++) {
|
640 |
+
|
641 |
+
/* tarif des niveaux tarifaires */
|
642 |
+
if(isset($_srdvConfig['N'.$i.'_price'])) {
|
643 |
+
$params['rateN'.$i] = $_srdvConfig['N'.$i.'_price'];
|
644 |
+
}
|
645 |
+
|
646 |
+
/* niveaux tarifaires fermés */
|
647 |
+
if(isset($_srdvConfig['N'.$i.'_status']) && $_srdvConfig['N'.$i.'_status'] == 0) {
|
648 |
+
if(!isset($params['rateLevelsNotShow'])) {
|
649 |
+
$params['rateLevelsNotShow'] = array();
|
650 |
+
}
|
651 |
+
$params['rateLevelsNotShow'][]= 'N'.$i;
|
652 |
+
}
|
653 |
+
}
|
654 |
+
|
655 |
+
/* creneaux à fermer */
|
656 |
+
if(isset($_srdvConfig['creneaux'])) {
|
657 |
+
foreach($_srdvConfig['creneaux'] as $_creneau) {
|
658 |
+
|
659 |
+
$jour_debut_text = date('l', Mage::getModel('core/date')->timestamp(strtotime("Sunday +".$_creneau['creneaux_debut_jour']." days")));
|
660 |
+
$jour_fin_text = date('l', Mage::getModel('core/date')->timestamp(strtotime("Sunday +".$_creneau['creneaux_fin_jour']." days")));
|
661 |
+
|
662 |
+
$dateDebut = '';
|
663 |
+
$dateFin = '';
|
664 |
+
|
665 |
+
/* creation de creneaux aux bons formats, pour 6 semaines consécutives */
|
666 |
+
for($indiceWeek = 0; $indiceWeek < 6; $indiceWeek++) {
|
667 |
+
|
668 |
+
if(empty($dateDebut)) {
|
669 |
+
$dateDebut = date('Y-m-d', Mage::getModel('core/date')->timestamp(strtotime('next '.$jour_debut_text))).' '.(int)$_creneau['creneaux_debut_heures'].':'.(int)$_creneau['creneaux_debut_minutes'].':00';
|
670 |
+
$dateFin = date('Y-m-d', Mage::getModel('core/date')->timestamp(strtotime('next '.$jour_fin_text))).' '.(int)$_creneau['creneaux_fin_heures'].':'.(int)$_creneau['creneaux_fin_minutes'].':00';
|
671 |
+
if(date('N') >= $_creneau['creneaux_debut_jour']) {
|
672 |
+
$dateDebut = date('Y-m-d', Mage::getModel('core/date')->timestamp(strtotime(date('Y-m-d',strtotime($dateDebut)).' -7 day'))).' '.(int)$_creneau['creneaux_debut_heures'].':'.(int)$_creneau['creneaux_debut_minutes'].':00';
|
673 |
+
}
|
674 |
+
if(date('N') >= $_creneau['creneaux_fin_jour']) {
|
675 |
+
$dateFin = date('Y-m-d', Mage::getModel('core/date')->timestamp(strtotime(date('Y-m-d',strtotime($dateFin)).' -7 day'))).' '.(int)$_creneau['creneaux_fin_heures'].':'.(int)$_creneau['creneaux_fin_minutes'].':00';
|
676 |
+
}
|
677 |
+
|
678 |
+
} else {
|
679 |
+
$dateDebut = date('Y-m-d', Mage::getModel('core/date')->timestamp(strtotime($jour_debut_text.' next week '.date('Y-m-d',Mage::getModel('core/date')->timestamp(strtotime($dateDebut)))))).' '.(int)$_creneau['creneaux_debut_heures'].':'.(int)$_creneau['creneaux_debut_minutes'].':00';
|
680 |
+
$dateFin = date('Y-m-d', Mage::getModel('core/date')->timestamp(strtotime($jour_fin_text.' next week '.date('Y-m-d',Mage::getModel('core/date')->timestamp(strtotime($dateFin)))))).' '.(int)$_creneau['creneaux_fin_heures'].':'.(int)$_creneau['creneaux_fin_minutes'].':00';
|
681 |
+
}
|
682 |
+
|
683 |
+
$dateDebutStr = date('Y-m-d',Mage::getModel('core/date')->timestamp(strtotime($dateDebut))).'T'.date('H:i:s',Mage::getModel('core/date')->timestamp(strtotime($dateDebut)));
|
684 |
+
$dateFinStr = date('Y-m-d',Mage::getModel('core/date')->timestamp(strtotime($dateFin))).'T'.date('H:i:s',Mage::getModel('core/date')->timestamp(strtotime($dateFin)));
|
685 |
+
|
686 |
+
if(!isset($params['shipperDeliverySlotClosed'])) {
|
687 |
+
$params['shipperDeliverySlotClosed'] = array();
|
688 |
+
}
|
689 |
+
$params['shipperDeliverySlotClosed'][] = $dateDebutStr."/".$dateFinStr;
|
690 |
+
}
|
691 |
+
}
|
692 |
+
}
|
693 |
+
|
694 |
+
$webservbt = $client->searchDeliverySlot($params);
|
695 |
+
if($webservbt->return->code == 0) {
|
696 |
+
return $webservbt;
|
697 |
+
}
|
698 |
+
return false;
|
699 |
+
}catch(Exception $e) {
|
700 |
+
return false;
|
701 |
+
}
|
702 |
+
}
|
703 |
+
|
704 |
+
public function confirmDeliverySlot($rdvInfo = '') {
|
705 |
+
$_helper = Mage::helper('chronorelais');
|
706 |
+
try {
|
707 |
+
|
708 |
+
$soapHeaders = array();
|
709 |
+
$namespace = 'http://cxf.soap.ws.creneau.chronopost.fr/';
|
710 |
+
$soapHeaders[] = new SoapHeader($namespace, 'password', $_helper->getConfigurationAccountPass());
|
711 |
+
$soapHeaders[] = new SoapHeader($namespace, 'accountNumber', $_helper->getConfigurationAccountNumber());
|
712 |
+
|
713 |
+
$client = new SoapClient("https://www.chronopost.fr/rdv-cxf/services/CreneauServiceWS?wsdl", array('trace' => 1, 'connection_timeout' => 10));
|
714 |
+
$client->__setSoapHeaders($soapHeaders);
|
715 |
+
|
716 |
+
$params = array(
|
717 |
+
'callerTool' => 'RDVWS',
|
718 |
+
'productType' => 'RDV',
|
719 |
+
|
720 |
+
'codeSlot' => $rdvInfo['deliverySlotCode'],
|
721 |
+
'meshCode' => $rdvInfo['meshCode'],
|
722 |
+
'transactionID' => $rdvInfo['transactionID'],
|
723 |
+
'rank' => $rdvInfo['rank'],
|
724 |
+
'position' => $rdvInfo['rank'],
|
725 |
+
'dateSelected' => $rdvInfo['deliveryDate']
|
726 |
+
);
|
727 |
+
|
728 |
+
return $client->confirmDeliverySlot($params);
|
729 |
+
}catch(Exception $e) {
|
730 |
+
return false;
|
731 |
+
}
|
732 |
+
}
|
733 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/AbstractChronorelais.php
CHANGED
@@ -1,32 +1,32 @@
|
|
1 |
-
<?php
|
2 |
-
abstract class Chronopost_Chronorelais_Model_Carrier_AbstractChronorelais extends Varien_Object
|
3 |
-
{
|
4 |
-
protected $_code;
|
5 |
-
protected $_rates = null;
|
6 |
-
protected $_numBoxes = 1;
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Whether this carrier has fixed rates calculation
|
10 |
-
*
|
11 |
-
* @var bool
|
12 |
-
*/
|
13 |
-
protected $_isFixed = false;
|
14 |
-
|
15 |
-
const HANDLING_TYPE_PERCENT = 'P';
|
16 |
-
const HANDLING_TYPE_FIXED = 'F';
|
17 |
-
|
18 |
-
const HANDLING_ACTION_PERPACKAGE = 'P';
|
19 |
-
const HANDLING_ACTION_PERORDER = 'O';
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Fields that should be replaced in debug with '***'
|
23 |
-
*
|
24 |
-
* @var array
|
25 |
-
*/
|
26 |
-
protected $_debugReplacePrivateDataKeys = array();
|
27 |
-
|
28 |
-
public function __construct()
|
29 |
-
{
|
30 |
-
}
|
31 |
-
}
|
32 |
?>
|
1 |
+
<?php
|
2 |
+
abstract class Chronopost_Chronorelais_Model_Carrier_AbstractChronorelais extends Varien_Object
|
3 |
+
{
|
4 |
+
protected $_code;
|
5 |
+
protected $_rates = null;
|
6 |
+
protected $_numBoxes = 1;
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Whether this carrier has fixed rates calculation
|
10 |
+
*
|
11 |
+
* @var bool
|
12 |
+
*/
|
13 |
+
protected $_isFixed = false;
|
14 |
+
|
15 |
+
const HANDLING_TYPE_PERCENT = 'P';
|
16 |
+
const HANDLING_TYPE_FIXED = 'F';
|
17 |
+
|
18 |
+
const HANDLING_ACTION_PERPACKAGE = 'P';
|
19 |
+
const HANDLING_ACTION_PERORDER = 'O';
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Fields that should be replaced in debug with '***'
|
23 |
+
*
|
24 |
+
* @var array
|
25 |
+
*/
|
26 |
+
protected $_debugReplacePrivateDataKeys = array();
|
27 |
+
|
28 |
+
public function __construct()
|
29 |
+
{
|
30 |
+
}
|
31 |
+
}
|
32 |
?>
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/AbstractChronorelaisShipping.php
CHANGED
@@ -1,518 +1,518 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Magento Chronopost Chronorelais Module
|
5 |
-
*
|
6 |
-
* NOTICE OF LICENSE
|
7 |
-
*
|
8 |
-
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
-
* that is bundled with this package in the file LICENSE.txt.
|
10 |
-
* It is also available through the world-wide-web at this URL:
|
11 |
-
* http://opensource.org/licenses/osl-3.0.php
|
12 |
-
* If you did not receive a copy of the license and are unable to
|
13 |
-
* obtain it through the world-wide-web, please send an email
|
14 |
-
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
-
*
|
16 |
-
* @category Chronopost
|
17 |
-
* @package Chronopost_Chronorelais
|
18 |
-
* @copyright Copyright (c) 2008-10 Owebia (http://www.owebia.com/)
|
19 |
-
* @author Antoine Lemoine
|
20 |
-
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
-
*/
|
22 |
-
|
23 |
-
// Pour gérer les cas où il y a eu compilation
|
24 |
-
if (file_exists(dirname(__FILE__).'/Chronopost_Chronorelais_includes_ChronorelaisShippingHelper.php')) {
|
25 |
-
include_once 'Chronopost_Chronorelais_includes_ChronorelaisShippingHelper.php';
|
26 |
-
}
|
27 |
-
else {
|
28 |
-
include_once Mage::getBaseDir('code').'/community/Chronopost/Chronorelais/includes/ChronorelaisShippingHelper.php';
|
29 |
-
}
|
30 |
-
|
31 |
-
class OCS_Magento_Product implements OCS_Product {
|
32 |
-
private $parent_cart_item;
|
33 |
-
private $cart_item;
|
34 |
-
private $cart_product;
|
35 |
-
private $loaded_product;
|
36 |
-
private $quantity;
|
37 |
-
|
38 |
-
public function OCS_Magento_Product($cart_item, $parent_cart_item) {
|
39 |
-
$this->cart_item = $cart_item;
|
40 |
-
$this->cart_product = $cart_item->getProduct();
|
41 |
-
$this->parent_cart_item = $parent_cart_item;
|
42 |
-
$this->quantity = isset($parent_cart_item) ? $parent_cart_item->getQty() : $cart_item->getQty();
|
43 |
-
}
|
44 |
-
|
45 |
-
public function getOption($option_name, $get_by_id=false) {
|
46 |
-
$value = null;
|
47 |
-
$product = $this->cart_product;
|
48 |
-
foreach ($product->getOptions() as $option) {
|
49 |
-
if ($option->getTitle()==$option_name) {
|
50 |
-
$custom_option = $product->getCustomOption('option_'.$option->getId());
|
51 |
-
if ($custom_option) {
|
52 |
-
$value = $custom_option->getValue();
|
53 |
-
if ($option->getType()=='drop_down' && !$get_by_id) {
|
54 |
-
$option_value = $option->getValueById($value);
|
55 |
-
if ($option_value) {
|
56 |
-
$value = $option_value->getTitle();
|
57 |
-
}
|
58 |
-
}
|
59 |
-
}
|
60 |
-
break;
|
61 |
-
}
|
62 |
-
}
|
63 |
-
return $value;
|
64 |
-
}
|
65 |
-
|
66 |
-
public function getAttribute($attribute_name, $get_by_id=false) {
|
67 |
-
$value = null;
|
68 |
-
$product = $this->_getLoadedProduct();
|
69 |
-
$attribute = $product->getResource()->getAttribute($attribute_name);
|
70 |
-
if ($attribute) {
|
71 |
-
$input_type = $attribute->getFrontend()->getInputType();
|
72 |
-
if($input_type == 'select') {
|
73 |
-
$value = $get_by_id ? $product->getData($attribute_name) : $product->getAttributeText($attribute_name);
|
74 |
-
} else {
|
75 |
-
$value = $product->getData($attribute_name);
|
76 |
-
}
|
77 |
-
}
|
78 |
-
return $value;
|
79 |
-
}
|
80 |
-
|
81 |
-
private function _getLoadedProduct() {
|
82 |
-
if (!isset($this->loaded_product)) {
|
83 |
-
$this->loaded_product = Mage::getModel('catalog/product')->load($this->cart_product->getId());
|
84 |
-
}
|
85 |
-
return $this->loaded_product;
|
86 |
-
}
|
87 |
-
|
88 |
-
public function getQuantity() {
|
89 |
-
return $this->quantity;
|
90 |
-
}
|
91 |
-
|
92 |
-
public function getName() {
|
93 |
-
return $this->cart_product->getName();
|
94 |
-
}
|
95 |
-
|
96 |
-
public function getSku() {
|
97 |
-
return $this->cart_product->getSku();
|
98 |
-
}
|
99 |
-
|
100 |
-
public function getStockData($key) {
|
101 |
-
$stock = $this->cart_product->getStockItem();
|
102 |
-
if($key == 'is_in_stock') {
|
103 |
-
return (bool)$stock->getIsInStock();
|
104 |
-
} elseif($key == 'quantity') {
|
105 |
-
$quantity = $stock->getQty();
|
106 |
-
return $stock->getIsQtyDecimal() ? (float)$quantity : (int)$quantity;
|
107 |
-
}
|
108 |
-
return null;
|
109 |
-
}
|
110 |
-
}
|
111 |
-
|
112 |
-
abstract class Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
113 |
-
extends Mage_Shipping_Model_Carrier_Abstract
|
114 |
-
{
|
115 |
-
protected $_translate_inline;
|
116 |
-
protected $_result;
|
117 |
-
protected $_config;
|
118 |
-
protected $_countries;
|
119 |
-
protected $_helper;
|
120 |
-
protected $_messages;
|
121 |
-
|
122 |
-
protected $_checkContract = false;
|
123 |
-
protected $_checkRelaiWs = false;
|
124 |
-
|
125 |
-
/**
|
126 |
-
* Collect rates for this shipping method based on information in $request
|
127 |
-
*
|
128 |
-
* @param Mage_Shipping_Model_Rate_Request $data
|
129 |
-
* @return Mage_Shipping_Model_Rate_Result
|
130 |
-
*/
|
131 |
-
public function collectRates(Mage_Shipping_Model_Rate_Request $request) {
|
132 |
-
// skip if not enabled
|
133 |
-
if (!$this->__getConfigData('active')) {
|
134 |
-
return false;
|
135 |
-
}
|
136 |
-
|
137 |
-
$helper = Mage::helper('chronorelais');
|
138 |
-
|
139 |
-
$process = array(
|
140 |
-
'request' => $request,
|
141 |
-
'result' => Mage::getModel('shipping/rate_result'),
|
142 |
-
'cart.items' => array(),
|
143 |
-
'products' => array(),
|
144 |
-
'data' => array(
|
145 |
-
'module.version' => null,
|
146 |
-
'carrier.code' => $this->_code,
|
147 |
-
'cart.price_excluding_tax' => $request->_data['package_value_with_discount'],
|
148 |
-
'cart.price_including_tax' => null,
|
149 |
-
'cart.weight' => $request->_data['package_weight'],
|
150 |
-
'cart.weight.unit' => $helper->getConfigWeightUnit(),
|
151 |
-
'cart.quantity' => $request->_data['package_qty'],
|
152 |
-
'destination.country.code' => $request->_data['dest_country_id'],
|
153 |
-
'destination.country.name' => null,
|
154 |
-
'destination.region.code' => $request->_data['dest_region_code'],
|
155 |
-
'destination.postcode' => $request->_data['dest_postcode'],
|
156 |
-
'origin.country.code' => $request->_data['country_id'],
|
157 |
-
'origin.country.name' => null,
|
158 |
-
'origin.region.code' => $request->_data['region_id'],
|
159 |
-
'origin.postcode' => $request->_data['postcode'],
|
160 |
-
'customer.group.id' => null,
|
161 |
-
'customer.group.code' => null,
|
162 |
-
'free_shipping' => $request->getFreeShipping(),
|
163 |
-
'store.id' => $request->_data['store_id'],
|
164 |
-
'store.code' => null,
|
165 |
-
'store.name' => null,
|
166 |
-
'store.address' => null,
|
167 |
-
'store.phone' => null,
|
168 |
-
'date.timestamp' => null,
|
169 |
-
'date.year' => null,
|
170 |
-
'date.month' => null,
|
171 |
-
'date.day' => null,
|
172 |
-
'date.hour' => null,
|
173 |
-
'date.minute' => null,
|
174 |
-
'date.second' => null,
|
175 |
-
),
|
176 |
-
'stop_to_first_match' => null,
|
177 |
-
'config' => null,
|
178 |
-
);
|
179 |
-
|
180 |
-
$items = $request->getAllItems();
|
181 |
-
for ($i=0, $n=count($items); $i<$n; $i++) {
|
182 |
-
$item = $items[$i];
|
183 |
-
if ($item->getProduct() instanceof Mage_Catalog_Model_Product) {
|
184 |
-
$process['cart.items'][$item->getId()] = $item;
|
185 |
-
}
|
186 |
-
}
|
187 |
-
|
188 |
-
$this->_process($process);
|
189 |
-
|
190 |
-
return $process['result'];
|
191 |
-
}
|
192 |
-
|
193 |
-
|
194 |
-
public function getAllowedMethods() {
|
195 |
-
$config = $this->_getConfig();
|
196 |
-
$allowed_methods = array();
|
197 |
-
if (count($config)>0) {
|
198 |
-
foreach ($config as $row) {
|
199 |
-
$allowed_methods[$row['*code']] = isset($row['label']) ? $row['label']['value'] : 'No label';
|
200 |
-
}
|
201 |
-
}
|
202 |
-
return $allowed_methods;
|
203 |
-
}
|
204 |
-
|
205 |
-
public function isTrackingAvailable() {
|
206 |
-
return true;
|
207 |
-
}
|
208 |
-
|
209 |
-
public function getTrackingInfo($tracking_number) {
|
210 |
-
$tracking_url = Mage::helper('chronorelais')->getConfigurationTrackingViewUrl();
|
211 |
-
$parts = explode(':',$tracking_number);
|
212 |
-
if (count($parts)>=2) {
|
213 |
-
$tracking_number = $parts[1];
|
214 |
-
|
215 |
-
$config = $this->_getConfig();
|
216 |
-
|
217 |
-
if (isset($config[$parts[0]]['tracking_url'])) {
|
218 |
-
$row = $config[$parts[0]];
|
219 |
-
$tmp_tracking_url = $this->_helper->getRowProperty($row,'tracking_url');
|
220 |
-
if (isset($tmp_tracking_url)) {
|
221 |
-
$tracking_url = $tmp_tracking_url;
|
222 |
-
}
|
223 |
-
}
|
224 |
-
}
|
225 |
-
|
226 |
-
$tracking_status = Mage::getModel('shipping/tracking_result_status')
|
227 |
-
->setCarrier($this->_code)
|
228 |
-
->setCarrierTitle($this->__getConfigData('title'))
|
229 |
-
->setTracking($tracking_number)
|
230 |
-
->addData(
|
231 |
-
array(
|
232 |
-
'status'=>'<a target="_blank" href="'.str_replace('{tracking_number}',$tracking_number,$tracking_url).'">'.__('track the package').'</a>'
|
233 |
-
)
|
234 |
-
);
|
235 |
-
$tracking_result = Mage::getModel('shipping/tracking_result')
|
236 |
-
->append($tracking_status);
|
237 |
-
|
238 |
-
if ($trackings = $tracking_result->getAllTrackings()) {
|
239 |
-
return $trackings[0];
|
240 |
-
}
|
241 |
-
return false;
|
242 |
-
}
|
243 |
-
|
244 |
-
|
245 |
-
/***************************************************************************************************************************/
|
246 |
-
|
247 |
-
protected function _process(&$process) {
|
248 |
-
$store = Mage::app()->getStore($process['data']['store.id']);
|
249 |
-
$mage_config = Mage::getConfig();
|
250 |
-
$timestamp = time();
|
251 |
-
$customer_group_id = Mage::getSingleton('customer/session')->getCustomerGroupId();
|
252 |
-
$helper = Mage::helper('chronorelais');
|
253 |
-
// Pour les commandes depuis Adminhtml
|
254 |
-
if ($customer_group_id==0) {
|
255 |
-
$customer_group_id2 = Mage::getSingleton('adminhtml/session_quote')->getQuote()->getCustomerGroupId();
|
256 |
-
if (isset($customer_group_id2)) {
|
257 |
-
$customer_group_id = $customer_group_id2;
|
258 |
-
}
|
259 |
-
}
|
260 |
-
|
261 |
-
$customer_group_code = Mage::getSingleton('customer/group')->load($customer_group_id)->getData('customer_group_code');
|
262 |
-
$process['data'] = array_merge($process['data'],array(
|
263 |
-
'customer.group.id' => $customer_group_id,
|
264 |
-
'customer.group.code' => $customer_group_code,
|
265 |
-
'destination.country.name' => $this->__getCountryName($process['data']['destination.country.code']),
|
266 |
-
'origin.country.name' => $this->__getCountryName($process['data']['origin.country.code']),
|
267 |
-
'cart.weight.unit' => $helper->getConfigWeightUnit(),
|
268 |
-
'store.code' => $store->getCode(),
|
269 |
-
'store.name' => $store->getConfig('general/store_information/name'),
|
270 |
-
'store.address' => $store->getConfig('general/store_information/address'),
|
271 |
-
'store.phone' => $store->getConfig('general/store_information/phone'),
|
272 |
-
'date.timestamp' => $timestamp,
|
273 |
-
'date.year' => (int)date('Y',$timestamp),
|
274 |
-
'date.month' => (int)date('m',$timestamp),
|
275 |
-
'date.day' => (int)date('d',$timestamp),
|
276 |
-
'date.hour' => (int)date('H',$timestamp),
|
277 |
-
'date.minute' => (int)date('i',$timestamp),
|
278 |
-
'date.second' => (int)date('s',$timestamp),
|
279 |
-
'module.version' => (string)$mage_config->getNode('modules/Chronopost_Chronorelais/version'),
|
280 |
-
));
|
281 |
-
|
282 |
-
$weight_limit = $this->__getConfigData('weight_limit'); /* weight_limit in kg */
|
283 |
-
$productWeightOverLimit = false;
|
284 |
-
|
285 |
-
foreach ($process['cart.items'] as $item) {
|
286 |
-
if ($item->getProduct()->getTypeId()!='configurable') {
|
287 |
-
$parent_item_id = $item->getParentItemId();
|
288 |
-
$itemWeight = $item->getWeight();
|
289 |
-
if($helper->getConfigWeightUnit() == 'g')
|
290 |
-
{
|
291 |
-
$itemWeight = $itemWeight / 1000; // conversion g => kg
|
292 |
-
}
|
293 |
-
if($itemWeight > $weight_limit) {
|
294 |
-
$productWeightOverLimit = true;
|
295 |
-
}
|
296 |
-
$process['products'][] = new OCS_Magento_Product($item, isset($process['cart.items'][$parent_item_id]) ? $process['cart.items'][$parent_item_id] : null);
|
297 |
-
}
|
298 |
-
}
|
299 |
-
|
300 |
-
if (!$process['data']['free_shipping']) {
|
301 |
-
foreach ($process['cart.items'] as $item) {
|
302 |
-
if ($item->getProduct() instanceof Mage_Catalog_Model_Product) {
|
303 |
-
if ($item->getFreeShipping()) {
|
304 |
-
$process['data']['free_shipping'] = true;
|
305 |
-
} else {
|
306 |
-
$process['data']['free_shipping'] = false;
|
307 |
-
break;
|
308 |
-
}
|
309 |
-
}
|
310 |
-
}
|
311 |
-
}
|
312 |
-
|
313 |
-
$process['data']['cart.price_including_tax'] = $this->__getCartTaxAmount($process)+$process['data']['cart.price_excluding_tax'];
|
314 |
-
$process['stop_to_first_match'] = $this->__getConfigData('stop_to_first_match');
|
315 |
-
$process['config'] = $this->_getConfig();
|
316 |
-
$compression = $this->__getConfigData('auto_compression');
|
317 |
-
if ($compression=='compress') {
|
318 |
-
Mage::getConfig()->saveConfig('carriers/'.$this->_code.'/config',$this->_helper->formatConfig(true));
|
319 |
-
} else if ($compression=='uncompress') {
|
320 |
-
Mage::getConfig()->saveConfig('carriers/'.$this->_code.'/config',$this->_helper->formatConfig(false));
|
321 |
-
}
|
322 |
-
|
323 |
-
$this->_helper->debug = (int)(isset($_GET['debug']) ? $_GET['debug'] : $this->__getConfigData('debug'));
|
324 |
-
$http_request = Mage::app()->getFrontController()->getRequest();
|
325 |
-
$this->_helper->debug = $this->_helper->debug && $http_request->getRouteName()=='checkout' && $http_request->getControllerName()=='cart';
|
326 |
-
if ($this->_helper->debug) {
|
327 |
-
$this->_helper->setDebugHeader($process);
|
328 |
-
}
|
329 |
-
|
330 |
-
$value_found = false;
|
331 |
-
$process_continue = true;
|
332 |
-
|
333 |
-
//Set error messages if not any matching
|
334 |
-
$freeShippingEnable = $this->__getConfigData('free_shipping_enable');
|
335 |
-
$freeShippingSubtotal = $this->__getConfigData('free_shipping_subtotal');
|
336 |
-
$applicationFee = $this->__getConfigData('application_fee');
|
337 |
-
$handlingFee = $this->__getConfigData('handling_fee');
|
338 |
-
|
339 |
-
/* On autorise chronopost > 30 Kg si tous les produits sont <= 30 Kg */
|
340 |
-
if($productWeightOverLimit) {
|
341 |
-
$value_found = false;
|
342 |
-
$process_continue = false;
|
343 |
-
}
|
344 |
-
|
345 |
-
$process_continue = $this->validateMethod();
|
346 |
-
|
347 |
-
if($process_continue) {
|
348 |
-
foreach ($process['config'] as $row) {
|
349 |
-
$result = $this->_helper->processRow($process,$row);
|
350 |
-
$this->_addMessages($this->_helper->getMessages());
|
351 |
-
if ($result && $result->success) {
|
352 |
-
$value_found = true;
|
353 |
-
$fees = $result->result;
|
354 |
-
if($applicationFee) {
|
355 |
-
$fees += $applicationFee;
|
356 |
-
}
|
357 |
-
if($handlingFee) {
|
358 |
-
$fees += $handlingFee;
|
359 |
-
}
|
360 |
-
if($freeShippingEnable && ($freeShippingSubtotal<=$process['data']['cart.price_excluding_tax'])) {
|
361 |
-
$fees = 0;
|
362 |
-
}
|
363 |
-
$this->__appendMethod($process,$row,$fees);
|
364 |
-
if ($process['stop_to_first_match']) {
|
365 |
-
break;
|
366 |
-
}
|
367 |
-
}
|
368 |
-
}
|
369 |
-
}
|
370 |
-
|
371 |
-
$this->_helper->printDebug();
|
372 |
-
}
|
373 |
-
|
374 |
-
/* Additional conditions to show shipping method, each shipping method model might have their own validateMethod function */
|
375 |
-
protected function validateMethod() {
|
376 |
-
$helperWS = Mage::helper('chronorelais/webservice');
|
377 |
-
|
378 |
-
/* Chronorelais => test Si WS fonctionne */
|
379 |
-
if($this->_checkRelaiWs) {
|
380 |
-
$shippingAddress = Mage::getSingleton('adminhtml/session_quote')->getQuote()->getShippingAddress();
|
381 |
-
$webservice = $helperWS->getPointsRelaisByCp($shippingAddress->getPostcode());
|
382 |
-
if($webservice === false) {
|
383 |
-
return false;
|
384 |
-
}
|
385 |
-
}
|
386 |
-
|
387 |
-
if($this->_checkContract) {
|
388 |
-
$isAllowed = $helperWS->getMethodIsAllowed($this->_code);
|
389 |
-
if($isAllowed === false) {
|
390 |
-
return false;
|
391 |
-
}
|
392 |
-
}
|
393 |
-
return true;
|
394 |
-
}
|
395 |
-
|
396 |
-
protected function _getConfig() {
|
397 |
-
if (!isset($this->_config)) {
|
398 |
-
$this->_helper = new ChronorelaisShippingHelper($this->__getConfigData('config'));
|
399 |
-
$this->_config = $this->_helper->getConfig();
|
400 |
-
$this->_addMessages($this->_helper->getMessages());
|
401 |
-
}
|
402 |
-
return $this->_config;
|
403 |
-
}
|
404 |
-
|
405 |
-
protected function _getMethodText($process, $row, $property) {
|
406 |
-
if (!isset($row[$property])) {
|
407 |
-
return '';
|
408 |
-
}
|
409 |
-
|
410 |
-
$output = '';
|
411 |
-
|
412 |
-
return $output . ' '.$this->_helper->evalInput($process,$row,$property,str_replace(
|
413 |
-
array('{cart.weight}','{cart.price_including_tax}','{cart.price_excluding_tax}'),
|
414 |
-
array(
|
415 |
-
$process['data']['cart.weight'].$process['data']['cart.weight.unit'],
|
416 |
-
$this->__formatPrice($process['data']['cart.price_including_tax']),
|
417 |
-
$this->__formatPrice($process['data']['cart.price_excluding_tax'])
|
418 |
-
),
|
419 |
-
$this->_helper->getRowProperty($row,$property)
|
420 |
-
));
|
421 |
-
}
|
422 |
-
|
423 |
-
protected function _addMessages($messages) {
|
424 |
-
if (!is_array($messages)) {
|
425 |
-
$messages = array($messages);
|
426 |
-
}
|
427 |
-
if (!is_array($this->_messages)) {
|
428 |
-
$this->_messages = $messages;
|
429 |
-
} else {
|
430 |
-
$this->_messages = array_merge($this->_messages,$messages);
|
431 |
-
}
|
432 |
-
}
|
433 |
-
|
434 |
-
protected function _appendErrors(&$process, $messages) {
|
435 |
-
if (is_array($messages)) {
|
436 |
-
foreach ($messages as $message) {
|
437 |
-
$this->__appendError($process,$this->__($message));
|
438 |
-
}
|
439 |
-
}
|
440 |
-
}
|
441 |
-
|
442 |
-
/***************************************************************************************************************************/
|
443 |
-
|
444 |
-
protected function __getConfigData($key) {
|
445 |
-
return $this->getConfigData($key);
|
446 |
-
}
|
447 |
-
|
448 |
-
protected function __appendMethod(&$process, $row, $fees) {
|
449 |
-
$method = Mage::getModel('shipping/rate_result_method')
|
450 |
-
->setCarrier($this->_code)
|
451 |
-
->setCarrierTitle($this->__getConfigData('title'))
|
452 |
-
->setMethod($row['*code'])
|
453 |
-
->setMethodTitle($this->_getMethodText($process,$row,'label'))
|
454 |
-
->setMethodDescription($this->_getMethodText($process,$row,'description'))
|
455 |
-
->setMethodLogo($this->__getConfigData('logo_url'))
|
456 |
-
->setPrice($fees)
|
457 |
-
->setCost($fees)
|
458 |
-
;
|
459 |
-
$process['result']->append($method);
|
460 |
-
}
|
461 |
-
|
462 |
-
protected function __appendError(&$process, $message) {
|
463 |
-
if (isset($process['result'])) {
|
464 |
-
$error = Mage::getModel('shipping/rate_result_error')
|
465 |
-
->setCarrier($this->_code)
|
466 |
-
->setCarrierTitle($this->__getConfigData('title'))
|
467 |
-
->setErrorMessage($message)
|
468 |
-
;
|
469 |
-
$process['result']->append($error);
|
470 |
-
}
|
471 |
-
}
|
472 |
-
|
473 |
-
protected function __formatPrice($price) {
|
474 |
-
if (!isset($this->_core_helper)) {
|
475 |
-
$this->_core_helper = Mage::helper('core');
|
476 |
-
}
|
477 |
-
return $this->_core_helper->currency($price);
|
478 |
-
}
|
479 |
-
|
480 |
-
protected function __($message) {
|
481 |
-
$args = func_get_args();
|
482 |
-
$message = array_shift($args);
|
483 |
-
if ($message instanceof OCS_Message) {
|
484 |
-
$args = $message->args;
|
485 |
-
$message = $message->message;
|
486 |
-
}
|
487 |
-
|
488 |
-
$output = Mage::helper('shipping')->__($message);
|
489 |
-
if (count($args)==0) {
|
490 |
-
return $output;
|
491 |
-
}
|
492 |
-
|
493 |
-
if (!isset($this->_translate_inline)) {
|
494 |
-
$this->_translate_inline = Mage::getSingleton('core/translate')->getTranslateInline();
|
495 |
-
}
|
496 |
-
if ($this->_translate_inline) {
|
497 |
-
$parts = explode('}}{{',$output);
|
498 |
-
$parts[0] = vsprintf($parts[0],$args);
|
499 |
-
return implode('}}{{',$parts);
|
500 |
-
} else {
|
501 |
-
return vsprintf($output,$args);
|
502 |
-
}
|
503 |
-
}
|
504 |
-
|
505 |
-
protected function __getCountryName($country_code) {
|
506 |
-
return Mage::getModel('directory/country')->load($country_code)->getName();
|
507 |
-
}
|
508 |
-
|
509 |
-
protected function __getCartTaxAmount($process) {
|
510 |
-
$tax_amount = 0;
|
511 |
-
foreach ($process['cart.items'] as $item) {
|
512 |
-
$tax_amount += $item->getData('tax_amount');
|
513 |
-
}
|
514 |
-
return $tax_amount;
|
515 |
-
}
|
516 |
-
}
|
517 |
-
|
518 |
?>
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Magento Chronopost Chronorelais Module
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* @category Chronopost
|
17 |
+
* @package Chronopost_Chronorelais
|
18 |
+
* @copyright Copyright (c) 2008-10 Owebia (http://www.owebia.com/)
|
19 |
+
* @author Antoine Lemoine
|
20 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
+
*/
|
22 |
+
|
23 |
+
// Pour gérer les cas où il y a eu compilation
|
24 |
+
if (file_exists(dirname(__FILE__).'/Chronopost_Chronorelais_includes_ChronorelaisShippingHelper.php')) {
|
25 |
+
include_once 'Chronopost_Chronorelais_includes_ChronorelaisShippingHelper.php';
|
26 |
+
}
|
27 |
+
else {
|
28 |
+
include_once Mage::getBaseDir('code').'/community/Chronopost/Chronorelais/includes/ChronorelaisShippingHelper.php';
|
29 |
+
}
|
30 |
+
|
31 |
+
class OCS_Magento_Product implements OCS_Product {
|
32 |
+
private $parent_cart_item;
|
33 |
+
private $cart_item;
|
34 |
+
private $cart_product;
|
35 |
+
private $loaded_product;
|
36 |
+
private $quantity;
|
37 |
+
|
38 |
+
public function OCS_Magento_Product($cart_item, $parent_cart_item) {
|
39 |
+
$this->cart_item = $cart_item;
|
40 |
+
$this->cart_product = $cart_item->getProduct();
|
41 |
+
$this->parent_cart_item = $parent_cart_item;
|
42 |
+
$this->quantity = isset($parent_cart_item) ? $parent_cart_item->getQty() : $cart_item->getQty();
|
43 |
+
}
|
44 |
+
|
45 |
+
public function getOption($option_name, $get_by_id=false) {
|
46 |
+
$value = null;
|
47 |
+
$product = $this->cart_product;
|
48 |
+
foreach ($product->getOptions() as $option) {
|
49 |
+
if ($option->getTitle()==$option_name) {
|
50 |
+
$custom_option = $product->getCustomOption('option_'.$option->getId());
|
51 |
+
if ($custom_option) {
|
52 |
+
$value = $custom_option->getValue();
|
53 |
+
if ($option->getType()=='drop_down' && !$get_by_id) {
|
54 |
+
$option_value = $option->getValueById($value);
|
55 |
+
if ($option_value) {
|
56 |
+
$value = $option_value->getTitle();
|
57 |
+
}
|
58 |
+
}
|
59 |
+
}
|
60 |
+
break;
|
61 |
+
}
|
62 |
+
}
|
63 |
+
return $value;
|
64 |
+
}
|
65 |
+
|
66 |
+
public function getAttribute($attribute_name, $get_by_id=false) {
|
67 |
+
$value = null;
|
68 |
+
$product = $this->_getLoadedProduct();
|
69 |
+
$attribute = $product->getResource()->getAttribute($attribute_name);
|
70 |
+
if ($attribute) {
|
71 |
+
$input_type = $attribute->getFrontend()->getInputType();
|
72 |
+
if($input_type == 'select') {
|
73 |
+
$value = $get_by_id ? $product->getData($attribute_name) : $product->getAttributeText($attribute_name);
|
74 |
+
} else {
|
75 |
+
$value = $product->getData($attribute_name);
|
76 |
+
}
|
77 |
+
}
|
78 |
+
return $value;
|
79 |
+
}
|
80 |
+
|
81 |
+
private function _getLoadedProduct() {
|
82 |
+
if (!isset($this->loaded_product)) {
|
83 |
+
$this->loaded_product = Mage::getModel('catalog/product')->load($this->cart_product->getId());
|
84 |
+
}
|
85 |
+
return $this->loaded_product;
|
86 |
+
}
|
87 |
+
|
88 |
+
public function getQuantity() {
|
89 |
+
return $this->quantity;
|
90 |
+
}
|
91 |
+
|
92 |
+
public function getName() {
|
93 |
+
return $this->cart_product->getName();
|
94 |
+
}
|
95 |
+
|
96 |
+
public function getSku() {
|
97 |
+
return $this->cart_product->getSku();
|
98 |
+
}
|
99 |
+
|
100 |
+
public function getStockData($key) {
|
101 |
+
$stock = $this->cart_product->getStockItem();
|
102 |
+
if($key == 'is_in_stock') {
|
103 |
+
return (bool)$stock->getIsInStock();
|
104 |
+
} elseif($key == 'quantity') {
|
105 |
+
$quantity = $stock->getQty();
|
106 |
+
return $stock->getIsQtyDecimal() ? (float)$quantity : (int)$quantity;
|
107 |
+
}
|
108 |
+
return null;
|
109 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
abstract class Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
113 |
+
extends Mage_Shipping_Model_Carrier_Abstract
|
114 |
+
{
|
115 |
+
protected $_translate_inline;
|
116 |
+
protected $_result;
|
117 |
+
protected $_config;
|
118 |
+
protected $_countries;
|
119 |
+
protected $_helper;
|
120 |
+
protected $_messages;
|
121 |
+
|
122 |
+
protected $_checkContract = false;
|
123 |
+
protected $_checkRelaiWs = false;
|
124 |
+
|
125 |
+
/**
|
126 |
+
* Collect rates for this shipping method based on information in $request
|
127 |
+
*
|
128 |
+
* @param Mage_Shipping_Model_Rate_Request $data
|
129 |
+
* @return Mage_Shipping_Model_Rate_Result
|
130 |
+
*/
|
131 |
+
public function collectRates(Mage_Shipping_Model_Rate_Request $request) {
|
132 |
+
// skip if not enabled
|
133 |
+
if (!$this->__getConfigData('active')) {
|
134 |
+
return false;
|
135 |
+
}
|
136 |
+
|
137 |
+
$helper = Mage::helper('chronorelais');
|
138 |
+
|
139 |
+
$process = array(
|
140 |
+
'request' => $request,
|
141 |
+
'result' => Mage::getModel('shipping/rate_result'),
|
142 |
+
'cart.items' => array(),
|
143 |
+
'products' => array(),
|
144 |
+
'data' => array(
|
145 |
+
'module.version' => null,
|
146 |
+
'carrier.code' => $this->_code,
|
147 |
+
'cart.price_excluding_tax' => $request->_data['package_value_with_discount'],
|
148 |
+
'cart.price_including_tax' => null,
|
149 |
+
'cart.weight' => $request->_data['package_weight'],
|
150 |
+
'cart.weight.unit' => $helper->getConfigWeightUnit(),
|
151 |
+
'cart.quantity' => $request->_data['package_qty'],
|
152 |
+
'destination.country.code' => $request->_data['dest_country_id'],
|
153 |
+
'destination.country.name' => null,
|
154 |
+
'destination.region.code' => $request->_data['dest_region_code'],
|
155 |
+
'destination.postcode' => $request->_data['dest_postcode'],
|
156 |
+
'origin.country.code' => $request->_data['country_id'],
|
157 |
+
'origin.country.name' => null,
|
158 |
+
'origin.region.code' => $request->_data['region_id'],
|
159 |
+
'origin.postcode' => $request->_data['postcode'],
|
160 |
+
'customer.group.id' => null,
|
161 |
+
'customer.group.code' => null,
|
162 |
+
'free_shipping' => $request->getFreeShipping(),
|
163 |
+
'store.id' => $request->_data['store_id'],
|
164 |
+
'store.code' => null,
|
165 |
+
'store.name' => null,
|
166 |
+
'store.address' => null,
|
167 |
+
'store.phone' => null,
|
168 |
+
'date.timestamp' => null,
|
169 |
+
'date.year' => null,
|
170 |
+
'date.month' => null,
|
171 |
+
'date.day' => null,
|
172 |
+
'date.hour' => null,
|
173 |
+
'date.minute' => null,
|
174 |
+
'date.second' => null,
|
175 |
+
),
|
176 |
+
'stop_to_first_match' => null,
|
177 |
+
'config' => null,
|
178 |
+
);
|
179 |
+
|
180 |
+
$items = $request->getAllItems();
|
181 |
+
for ($i=0, $n=count($items); $i<$n; $i++) {
|
182 |
+
$item = $items[$i];
|
183 |
+
if ($item->getProduct() instanceof Mage_Catalog_Model_Product) {
|
184 |
+
$process['cart.items'][$item->getId()] = $item;
|
185 |
+
}
|
186 |
+
}
|
187 |
+
|
188 |
+
$this->_process($process);
|
189 |
+
|
190 |
+
return $process['result'];
|
191 |
+
}
|
192 |
+
|
193 |
+
|
194 |
+
public function getAllowedMethods() {
|
195 |
+
$config = $this->_getConfig();
|
196 |
+
$allowed_methods = array();
|
197 |
+
if (count($config)>0) {
|
198 |
+
foreach ($config as $row) {
|
199 |
+
$allowed_methods[$row['*code']] = isset($row['label']) ? $row['label']['value'] : 'No label';
|
200 |
+
}
|
201 |
+
}
|
202 |
+
return $allowed_methods;
|
203 |
+
}
|
204 |
+
|
205 |
+
public function isTrackingAvailable() {
|
206 |
+
return true;
|
207 |
+
}
|
208 |
+
|
209 |
+
public function getTrackingInfo($tracking_number) {
|
210 |
+
$tracking_url = Mage::helper('chronorelais')->getConfigurationTrackingViewUrl();
|
211 |
+
$parts = explode(':',$tracking_number);
|
212 |
+
if (count($parts)>=2) {
|
213 |
+
$tracking_number = $parts[1];
|
214 |
+
|
215 |
+
$config = $this->_getConfig();
|
216 |
+
|
217 |
+
if (isset($config[$parts[0]]['tracking_url'])) {
|
218 |
+
$row = $config[$parts[0]];
|
219 |
+
$tmp_tracking_url = $this->_helper->getRowProperty($row,'tracking_url');
|
220 |
+
if (isset($tmp_tracking_url)) {
|
221 |
+
$tracking_url = $tmp_tracking_url;
|
222 |
+
}
|
223 |
+
}
|
224 |
+
}
|
225 |
+
|
226 |
+
$tracking_status = Mage::getModel('shipping/tracking_result_status')
|
227 |
+
->setCarrier($this->_code)
|
228 |
+
->setCarrierTitle($this->__getConfigData('title'))
|
229 |
+
->setTracking($tracking_number)
|
230 |
+
->addData(
|
231 |
+
array(
|
232 |
+
'status'=>'<a target="_blank" href="'.str_replace('{tracking_number}',$tracking_number,$tracking_url).'">'.__('track the package').'</a>'
|
233 |
+
)
|
234 |
+
);
|
235 |
+
$tracking_result = Mage::getModel('shipping/tracking_result')
|
236 |
+
->append($tracking_status);
|
237 |
+
|
238 |
+
if ($trackings = $tracking_result->getAllTrackings()) {
|
239 |
+
return $trackings[0];
|
240 |
+
}
|
241 |
+
return false;
|
242 |
+
}
|
243 |
+
|
244 |
+
|
245 |
+
/***************************************************************************************************************************/
|
246 |
+
|
247 |
+
protected function _process(&$process) {
|
248 |
+
$store = Mage::app()->getStore($process['data']['store.id']);
|
249 |
+
$mage_config = Mage::getConfig();
|
250 |
+
$timestamp = time();
|
251 |
+
$customer_group_id = Mage::getSingleton('customer/session')->getCustomerGroupId();
|
252 |
+
$helper = Mage::helper('chronorelais');
|
253 |
+
// Pour les commandes depuis Adminhtml
|
254 |
+
if ($customer_group_id==0) {
|
255 |
+
$customer_group_id2 = Mage::getSingleton('adminhtml/session_quote')->getQuote()->getCustomerGroupId();
|
256 |
+
if (isset($customer_group_id2)) {
|
257 |
+
$customer_group_id = $customer_group_id2;
|
258 |
+
}
|
259 |
+
}
|
260 |
+
|
261 |
+
$customer_group_code = Mage::getSingleton('customer/group')->load($customer_group_id)->getData('customer_group_code');
|
262 |
+
$process['data'] = array_merge($process['data'],array(
|
263 |
+
'customer.group.id' => $customer_group_id,
|
264 |
+
'customer.group.code' => $customer_group_code,
|
265 |
+
'destination.country.name' => $this->__getCountryName($process['data']['destination.country.code']),
|
266 |
+
'origin.country.name' => $this->__getCountryName($process['data']['origin.country.code']),
|
267 |
+
'cart.weight.unit' => $helper->getConfigWeightUnit(),
|
268 |
+
'store.code' => $store->getCode(),
|
269 |
+
'store.name' => $store->getConfig('general/store_information/name'),
|
270 |
+
'store.address' => $store->getConfig('general/store_information/address'),
|
271 |
+
'store.phone' => $store->getConfig('general/store_information/phone'),
|
272 |
+
'date.timestamp' => $timestamp,
|
273 |
+
'date.year' => (int)date('Y',$timestamp),
|
274 |
+
'date.month' => (int)date('m',$timestamp),
|
275 |
+
'date.day' => (int)date('d',$timestamp),
|
276 |
+
'date.hour' => (int)date('H',$timestamp),
|
277 |
+
'date.minute' => (int)date('i',$timestamp),
|
278 |
+
'date.second' => (int)date('s',$timestamp),
|
279 |
+
'module.version' => (string)$mage_config->getNode('modules/Chronopost_Chronorelais/version'),
|
280 |
+
));
|
281 |
+
|
282 |
+
$weight_limit = $this->__getConfigData('weight_limit'); /* weight_limit in kg */
|
283 |
+
$productWeightOverLimit = false;
|
284 |
+
|
285 |
+
foreach ($process['cart.items'] as $item) {
|
286 |
+
if ($item->getProduct()->getTypeId()!='configurable') {
|
287 |
+
$parent_item_id = $item->getParentItemId();
|
288 |
+
$itemWeight = $item->getWeight();
|
289 |
+
if($helper->getConfigWeightUnit() == 'g')
|
290 |
+
{
|
291 |
+
$itemWeight = $itemWeight / 1000; // conversion g => kg
|
292 |
+
}
|
293 |
+
if($itemWeight > $weight_limit) {
|
294 |
+
$productWeightOverLimit = true;
|
295 |
+
}
|
296 |
+
$process['products'][] = new OCS_Magento_Product($item, isset($process['cart.items'][$parent_item_id]) ? $process['cart.items'][$parent_item_id] : null);
|
297 |
+
}
|
298 |
+
}
|
299 |
+
|
300 |
+
if (!$process['data']['free_shipping']) {
|
301 |
+
foreach ($process['cart.items'] as $item) {
|
302 |
+
if ($item->getProduct() instanceof Mage_Catalog_Model_Product) {
|
303 |
+
if ($item->getFreeShipping()) {
|
304 |
+
$process['data']['free_shipping'] = true;
|
305 |
+
} else {
|
306 |
+
$process['data']['free_shipping'] = false;
|
307 |
+
break;
|
308 |
+
}
|
309 |
+
}
|
310 |
+
}
|
311 |
+
}
|
312 |
+
|
313 |
+
$process['data']['cart.price_including_tax'] = $this->__getCartTaxAmount($process)+$process['data']['cart.price_excluding_tax'];
|
314 |
+
$process['stop_to_first_match'] = $this->__getConfigData('stop_to_first_match');
|
315 |
+
$process['config'] = $this->_getConfig();
|
316 |
+
$compression = $this->__getConfigData('auto_compression');
|
317 |
+
if ($compression=='compress') {
|
318 |
+
Mage::getConfig()->saveConfig('carriers/'.$this->_code.'/config',$this->_helper->formatConfig(true));
|
319 |
+
} else if ($compression=='uncompress') {
|
320 |
+
Mage::getConfig()->saveConfig('carriers/'.$this->_code.'/config',$this->_helper->formatConfig(false));
|
321 |
+
}
|
322 |
+
|
323 |
+
$this->_helper->debug = (int)(isset($_GET['debug']) ? $_GET['debug'] : $this->__getConfigData('debug'));
|
324 |
+
$http_request = Mage::app()->getFrontController()->getRequest();
|
325 |
+
$this->_helper->debug = $this->_helper->debug && $http_request->getRouteName()=='checkout' && $http_request->getControllerName()=='cart';
|
326 |
+
if ($this->_helper->debug) {
|
327 |
+
$this->_helper->setDebugHeader($process);
|
328 |
+
}
|
329 |
+
|
330 |
+
$value_found = false;
|
331 |
+
$process_continue = true;
|
332 |
+
|
333 |
+
//Set error messages if not any matching
|
334 |
+
$freeShippingEnable = $this->__getConfigData('free_shipping_enable');
|
335 |
+
$freeShippingSubtotal = $this->__getConfigData('free_shipping_subtotal');
|
336 |
+
$applicationFee = $this->__getConfigData('application_fee');
|
337 |
+
$handlingFee = $this->__getConfigData('handling_fee');
|
338 |
+
|
339 |
+
/* On autorise chronopost > 30 Kg si tous les produits sont <= 30 Kg */
|
340 |
+
if($productWeightOverLimit) {
|
341 |
+
$value_found = false;
|
342 |
+
$process_continue = false;
|
343 |
+
}
|
344 |
+
|
345 |
+
$process_continue = $this->validateMethod();
|
346 |
+
|
347 |
+
if($process_continue) {
|
348 |
+
foreach ($process['config'] as $row) {
|
349 |
+
$result = $this->_helper->processRow($process,$row);
|
350 |
+
$this->_addMessages($this->_helper->getMessages());
|
351 |
+
if ($result && $result->success) {
|
352 |
+
$value_found = true;
|
353 |
+
$fees = $result->result;
|
354 |
+
if($applicationFee) {
|
355 |
+
$fees += $applicationFee;
|
356 |
+
}
|
357 |
+
if($handlingFee) {
|
358 |
+
$fees += $handlingFee;
|
359 |
+
}
|
360 |
+
if($freeShippingEnable && ($freeShippingSubtotal<=$process['data']['cart.price_excluding_tax'])) {
|
361 |
+
$fees = 0;
|
362 |
+
}
|
363 |
+
$this->__appendMethod($process,$row,$fees);
|
364 |
+
if ($process['stop_to_first_match']) {
|
365 |
+
break;
|
366 |
+
}
|
367 |
+
}
|
368 |
+
}
|
369 |
+
}
|
370 |
+
|
371 |
+
$this->_helper->printDebug();
|
372 |
+
}
|
373 |
+
|
374 |
+
/* Additional conditions to show shipping method, each shipping method model might have their own validateMethod function */
|
375 |
+
protected function validateMethod() {
|
376 |
+
$helperWS = Mage::helper('chronorelais/webservice');
|
377 |
+
|
378 |
+
/* Chronorelais => test Si WS fonctionne */
|
379 |
+
if($this->_checkRelaiWs) {
|
380 |
+
$shippingAddress = Mage::getSingleton('adminhtml/session_quote')->getQuote()->getShippingAddress();
|
381 |
+
$webservice = $helperWS->getPointsRelaisByCp($shippingAddress->getPostcode());
|
382 |
+
if($webservice === false) {
|
383 |
+
return false;
|
384 |
+
}
|
385 |
+
}
|
386 |
+
|
387 |
+
if($this->_checkContract) {
|
388 |
+
$isAllowed = $helperWS->getMethodIsAllowed($this->_code);
|
389 |
+
if($isAllowed === false) {
|
390 |
+
return false;
|
391 |
+
}
|
392 |
+
}
|
393 |
+
return true;
|
394 |
+
}
|
395 |
+
|
396 |
+
protected function _getConfig() {
|
397 |
+
if (!isset($this->_config)) {
|
398 |
+
$this->_helper = new ChronorelaisShippingHelper($this->__getConfigData('config'));
|
399 |
+
$this->_config = $this->_helper->getConfig();
|
400 |
+
$this->_addMessages($this->_helper->getMessages());
|
401 |
+
}
|
402 |
+
return $this->_config;
|
403 |
+
}
|
404 |
+
|
405 |
+
protected function _getMethodText($process, $row, $property) {
|
406 |
+
if (!isset($row[$property])) {
|
407 |
+
return '';
|
408 |
+
}
|
409 |
+
|
410 |
+
$output = '';
|
411 |
+
|
412 |
+
return $output . ' '.$this->_helper->evalInput($process,$row,$property,str_replace(
|
413 |
+
array('{cart.weight}','{cart.price_including_tax}','{cart.price_excluding_tax}'),
|
414 |
+
array(
|
415 |
+
$process['data']['cart.weight'].$process['data']['cart.weight.unit'],
|
416 |
+
$this->__formatPrice($process['data']['cart.price_including_tax']),
|
417 |
+
$this->__formatPrice($process['data']['cart.price_excluding_tax'])
|
418 |
+
),
|
419 |
+
$this->_helper->getRowProperty($row,$property)
|
420 |
+
));
|
421 |
+
}
|
422 |
+
|
423 |
+
protected function _addMessages($messages) {
|
424 |
+
if (!is_array($messages)) {
|
425 |
+
$messages = array($messages);
|
426 |
+
}
|
427 |
+
if (!is_array($this->_messages)) {
|
428 |
+
$this->_messages = $messages;
|
429 |
+
} else {
|
430 |
+
$this->_messages = array_merge($this->_messages,$messages);
|
431 |
+
}
|
432 |
+
}
|
433 |
+
|
434 |
+
protected function _appendErrors(&$process, $messages) {
|
435 |
+
if (is_array($messages)) {
|
436 |
+
foreach ($messages as $message) {
|
437 |
+
$this->__appendError($process,$this->__($message));
|
438 |
+
}
|
439 |
+
}
|
440 |
+
}
|
441 |
+
|
442 |
+
/***************************************************************************************************************************/
|
443 |
+
|
444 |
+
protected function __getConfigData($key) {
|
445 |
+
return $this->getConfigData($key);
|
446 |
+
}
|
447 |
+
|
448 |
+
protected function __appendMethod(&$process, $row, $fees) {
|
449 |
+
$method = Mage::getModel('shipping/rate_result_method')
|
450 |
+
->setCarrier($this->_code)
|
451 |
+
->setCarrierTitle($this->__getConfigData('title'))
|
452 |
+
->setMethod($row['*code'])
|
453 |
+
->setMethodTitle($this->_getMethodText($process,$row,'label'))
|
454 |
+
->setMethodDescription($this->_getMethodText($process,$row,'description'))
|
455 |
+
->setMethodLogo($this->__getConfigData('logo_url'))
|
456 |
+
->setPrice($fees)
|
457 |
+
->setCost($fees)
|
458 |
+
;
|
459 |
+
$process['result']->append($method);
|
460 |
+
}
|
461 |
+
|
462 |
+
protected function __appendError(&$process, $message) {
|
463 |
+
if (isset($process['result'])) {
|
464 |
+
$error = Mage::getModel('shipping/rate_result_error')
|
465 |
+
->setCarrier($this->_code)
|
466 |
+
->setCarrierTitle($this->__getConfigData('title'))
|
467 |
+
->setErrorMessage($message)
|
468 |
+
;
|
469 |
+
$process['result']->append($error);
|
470 |
+
}
|
471 |
+
}
|
472 |
+
|
473 |
+
protected function __formatPrice($price) {
|
474 |
+
if (!isset($this->_core_helper)) {
|
475 |
+
$this->_core_helper = Mage::helper('core');
|
476 |
+
}
|
477 |
+
return $this->_core_helper->currency($price);
|
478 |
+
}
|
479 |
+
|
480 |
+
protected function __($message) {
|
481 |
+
$args = func_get_args();
|
482 |
+
$message = array_shift($args);
|
483 |
+
if ($message instanceof OCS_Message) {
|
484 |
+
$args = $message->args;
|
485 |
+
$message = $message->message;
|
486 |
+
}
|
487 |
+
|
488 |
+
$output = Mage::helper('shipping')->__($message);
|
489 |
+
if (count($args)==0) {
|
490 |
+
return $output;
|
491 |
+
}
|
492 |
+
|
493 |
+
if (!isset($this->_translate_inline)) {
|
494 |
+
$this->_translate_inline = Mage::getSingleton('core/translate')->getTranslateInline();
|
495 |
+
}
|
496 |
+
if ($this->_translate_inline) {
|
497 |
+
$parts = explode('}}{{',$output);
|
498 |
+
$parts[0] = vsprintf($parts[0],$args);
|
499 |
+
return implode('}}{{',$parts);
|
500 |
+
} else {
|
501 |
+
return vsprintf($output,$args);
|
502 |
+
}
|
503 |
+
}
|
504 |
+
|
505 |
+
protected function __getCountryName($country_code) {
|
506 |
+
return Mage::getModel('directory/country')->load($country_code)->getName();
|
507 |
+
}
|
508 |
+
|
509 |
+
protected function __getCartTaxAmount($process) {
|
510 |
+
$tax_amount = 0;
|
511 |
+
foreach ($process['cart.items'] as $item) {
|
512 |
+
$tax_amount += $item->getData('tax_amount');
|
513 |
+
}
|
514 |
+
return $tax_amount;
|
515 |
+
}
|
516 |
+
}
|
517 |
+
|
518 |
?>
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronoexpress.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Carrier_Chronoexpress extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
-
{
|
4 |
-
protected $_code = 'chronoexpress';
|
5 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Carrier_Chronoexpress extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
+
{
|
4 |
+
protected $_code = 'chronoexpress';
|
5 |
}
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronopost.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Carrier_Chronopost extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
-
{
|
4 |
-
protected $_code = 'chronopost';
|
5 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Carrier_Chronopost extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
+
{
|
4 |
+
protected $_code = 'chronopost';
|
5 |
}
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/ChronopostC10.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Carrier_ChronopostC10 extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
-
{
|
4 |
-
protected $_code = 'chronopostc10';
|
5 |
-
protected $_checkContract = true;
|
6 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Carrier_ChronopostC10 extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
+
{
|
4 |
+
protected $_code = 'chronopostc10';
|
5 |
+
protected $_checkContract = true;
|
6 |
}
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/ChronopostC18.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Carrier_ChronopostC18 extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
-
{
|
4 |
-
protected $_code = 'chronopostc18';
|
5 |
-
protected $_checkContract = true;
|
6 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Carrier_ChronopostC18 extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
+
{
|
4 |
+
protected $_code = 'chronopostc18';
|
5 |
+
protected $_checkContract = true;
|
6 |
}
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/ChronopostCClassic.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Carrier_ChronopostCClassic extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
-
{
|
4 |
-
protected $_code = 'chronopostcclassic';
|
5 |
-
protected $_checkContract = true;
|
6 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Carrier_ChronopostCClassic extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
+
{
|
4 |
+
protected $_code = 'chronopostcclassic';
|
5 |
+
protected $_checkContract = true;
|
6 |
}
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronopostsameday.php
CHANGED
@@ -1,33 +1,33 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Model_Carrier_Chronopostsameday extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
4 |
-
{
|
5 |
-
|
6 |
-
protected $_code = 'chronopostsameday';
|
7 |
-
protected $_checkContract = true;
|
8 |
-
|
9 |
-
protected function validateMethod()
|
10 |
-
{
|
11 |
-
$validate = parent::validateMethod();
|
12 |
-
|
13 |
-
// Check if we should auto disable the module (it's past hour)
|
14 |
-
$deliveryTimeLimitConf = Mage::getStoreConfig('carriers/' . $this->getCarrierCode() . '/delivery_time_limit');
|
15 |
-
// Safe fallback
|
16 |
-
if (!$deliveryTimeLimitConf) {
|
17 |
-
$deliveryTimeLimitConf = '15:00';
|
18 |
-
}
|
19 |
-
$deliveryTimeLimit = new DateTime(date('Y-m-d') . ' ' . $deliveryTimeLimitConf . ':00');
|
20 |
-
$currentTime = new DateTime('NOW');
|
21 |
-
|
22 |
-
if ($validate === true) {
|
23 |
-
if (Mage::getModel('core/date')->timestamp($currentTime->getTimestamp())
|
24 |
-
<= $deliveryTimeLimit->getTimestamp()) {
|
25 |
-
$validate = true;
|
26 |
-
} else {
|
27 |
-
$validate = false;
|
28 |
-
}
|
29 |
-
}
|
30 |
-
|
31 |
-
return $validate;
|
32 |
-
}
|
33 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Model_Carrier_Chronopostsameday extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
4 |
+
{
|
5 |
+
|
6 |
+
protected $_code = 'chronopostsameday';
|
7 |
+
protected $_checkContract = true;
|
8 |
+
|
9 |
+
protected function validateMethod()
|
10 |
+
{
|
11 |
+
$validate = parent::validateMethod();
|
12 |
+
|
13 |
+
// Check if we should auto disable the module (it's past hour)
|
14 |
+
$deliveryTimeLimitConf = Mage::getStoreConfig('carriers/' . $this->getCarrierCode() . '/delivery_time_limit');
|
15 |
+
// Safe fallback
|
16 |
+
if (!$deliveryTimeLimitConf) {
|
17 |
+
$deliveryTimeLimitConf = '15:00';
|
18 |
+
}
|
19 |
+
$deliveryTimeLimit = new DateTime(date('Y-m-d') . ' ' . $deliveryTimeLimitConf . ':00');
|
20 |
+
$currentTime = new DateTime('NOW');
|
21 |
+
|
22 |
+
if ($validate === true) {
|
23 |
+
if (Mage::getModel('core/date')->timestamp($currentTime->getTimestamp())
|
24 |
+
<= $deliveryTimeLimit->getTimestamp()) {
|
25 |
+
$validate = true;
|
26 |
+
} else {
|
27 |
+
$validate = false;
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
return $validate;
|
32 |
+
}
|
33 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronopostsrdv.php
CHANGED
@@ -1,85 +1,85 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Model_Carrier_Chronopostsrdv extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
4 |
-
{
|
5 |
-
|
6 |
-
protected $_code = 'chronopostsrdv';
|
7 |
-
protected $_checkContract = true;
|
8 |
-
|
9 |
-
public function collectRates(Mage_Shipping_Model_Rate_Request $request) {
|
10 |
-
$result = parent::collectRates($request);
|
11 |
-
return $this->updatePriceAndLabel($result);
|
12 |
-
}
|
13 |
-
|
14 |
-
/* update shipping method price and label to add date and hours */
|
15 |
-
public function updatePriceAndLabel($result) {
|
16 |
-
$rates = $result->getAllRates();
|
17 |
-
$quote = Mage::getSingleton('checkout/session')->getQuote();
|
18 |
-
|
19 |
-
if(!$quote) {
|
20 |
-
return $result;
|
21 |
-
}
|
22 |
-
|
23 |
-
$shippingAddress = $quote->getShippingAddress();
|
24 |
-
|
25 |
-
if(!$shippingAddress || !$shippingAddress->getShippingMethod()) { // || !isset($_SESSION['chronopostsrdv_creneaux_info'])
|
26 |
-
//return $result;
|
27 |
-
}
|
28 |
-
|
29 |
-
// We will rebuild it later
|
30 |
-
$result->reset();
|
31 |
-
|
32 |
-
/*$price = $_srdvConfig[$tarifLevel."_price"];
|
33 |
-
$price = $_helper->addMargeToQuickcost($price,$this->_code, false);*/
|
34 |
-
|
35 |
-
foreach ($rates as $rate) {
|
36 |
-
|
37 |
-
if($rate->getMethod() == $this->_code) {
|
38 |
-
|
39 |
-
/*if(!$rate->getOriginalPrice()) {
|
40 |
-
$rate->setOriginalPrice($rate->getPrice());
|
41 |
-
}*/
|
42 |
-
|
43 |
-
|
44 |
-
$_srdvConfig = Mage::getStoreConfig('carriers/chronopostsrdv/rdv_config');
|
45 |
-
$_srdvConfig = json_decode($_srdvConfig,true);
|
46 |
-
|
47 |
-
$_helper = Mage::helper('chronorelais');
|
48 |
-
|
49 |
-
if(isset($_SESSION['chronopostsrdv_creneaux_info'])) {
|
50 |
-
$chronopostsrdv_creneaux_info = $_SESSION['chronopostsrdv_creneaux_info'];
|
51 |
-
$tarifLevel = $chronopostsrdv_creneaux_info['tariffLevel'];
|
52 |
-
$price = $_srdvConfig[$tarifLevel."_price"] + $rate->getCost();
|
53 |
-
|
54 |
-
$_dateRdvStart = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
55 |
-
$_dateRdvStart->setTime($chronopostsrdv_creneaux_info['startHour'],$chronopostsrdv_creneaux_info['startMinutes']);
|
56 |
-
|
57 |
-
$_dateRdvEnd = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
58 |
-
$_dateRdvEnd->setTime($chronopostsrdv_creneaux_info['endHour'],$chronopostsrdv_creneaux_info['endMinutes']);
|
59 |
-
|
60 |
-
$methodTitle = $rate->getMethodTitle();
|
61 |
-
$methodTitle .= ' - '.$_helper->__('Le').' '.$_dateRdvStart->format('d/m/Y');
|
62 |
-
$methodTitle .= ' '.$_helper->__('entre %s et %s',$_dateRdvStart->format('H:i'),$_dateRdvEnd->format('H:i'));
|
63 |
-
$rate->setData('method_title',$methodTitle);
|
64 |
-
|
65 |
-
} else {
|
66 |
-
$minimal_price = '';
|
67 |
-
for($i = 1; $i <= 4; $i++) {
|
68 |
-
if($minimal_price === '' || isset($_srdvConfig["N".$i."_price"]) && $_srdvConfig["N".$i."_price"] < $minimal_price) {
|
69 |
-
$minimal_price = $_srdvConfig["N".$i."_price"];
|
70 |
-
}
|
71 |
-
}
|
72 |
-
$price = $minimal_price + $rate->getCost();
|
73 |
-
}
|
74 |
-
|
75 |
-
$rate->setPrice($price);
|
76 |
-
|
77 |
-
$shippingAddress->setShippingDescription($methodTitle);
|
78 |
-
|
79 |
-
}
|
80 |
-
|
81 |
-
$result->append($rate);
|
82 |
-
}
|
83 |
-
return $result;
|
84 |
-
}
|
85 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Model_Carrier_Chronopostsrdv extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
4 |
+
{
|
5 |
+
|
6 |
+
protected $_code = 'chronopostsrdv';
|
7 |
+
protected $_checkContract = true;
|
8 |
+
|
9 |
+
public function collectRates(Mage_Shipping_Model_Rate_Request $request) {
|
10 |
+
$result = parent::collectRates($request);
|
11 |
+
return $this->updatePriceAndLabel($result);
|
12 |
+
}
|
13 |
+
|
14 |
+
/* update shipping method price and label to add date and hours */
|
15 |
+
public function updatePriceAndLabel($result) {
|
16 |
+
$rates = $result->getAllRates();
|
17 |
+
$quote = Mage::getSingleton('checkout/session')->getQuote();
|
18 |
+
|
19 |
+
if(!$quote) {
|
20 |
+
return $result;
|
21 |
+
}
|
22 |
+
|
23 |
+
$shippingAddress = $quote->getShippingAddress();
|
24 |
+
|
25 |
+
if(!$shippingAddress || !$shippingAddress->getShippingMethod()) { // || !isset($_SESSION['chronopostsrdv_creneaux_info'])
|
26 |
+
//return $result;
|
27 |
+
}
|
28 |
+
|
29 |
+
// We will rebuild it later
|
30 |
+
$result->reset();
|
31 |
+
|
32 |
+
/*$price = $_srdvConfig[$tarifLevel."_price"];
|
33 |
+
$price = $_helper->addMargeToQuickcost($price,$this->_code, false);*/
|
34 |
+
|
35 |
+
foreach ($rates as $rate) {
|
36 |
+
|
37 |
+
if($rate->getMethod() == $this->_code) {
|
38 |
+
|
39 |
+
/*if(!$rate->getOriginalPrice()) {
|
40 |
+
$rate->setOriginalPrice($rate->getPrice());
|
41 |
+
}*/
|
42 |
+
|
43 |
+
|
44 |
+
$_srdvConfig = Mage::getStoreConfig('carriers/chronopostsrdv/rdv_config');
|
45 |
+
$_srdvConfig = json_decode($_srdvConfig,true);
|
46 |
+
|
47 |
+
$_helper = Mage::helper('chronorelais');
|
48 |
+
|
49 |
+
if(isset($_SESSION['chronopostsrdv_creneaux_info'])) {
|
50 |
+
$chronopostsrdv_creneaux_info = $_SESSION['chronopostsrdv_creneaux_info'];
|
51 |
+
$tarifLevel = $chronopostsrdv_creneaux_info['tariffLevel'];
|
52 |
+
$price = $_srdvConfig[$tarifLevel."_price"] + $rate->getCost();
|
53 |
+
|
54 |
+
$_dateRdvStart = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
55 |
+
$_dateRdvStart->setTime($chronopostsrdv_creneaux_info['startHour'],$chronopostsrdv_creneaux_info['startMinutes']);
|
56 |
+
|
57 |
+
$_dateRdvEnd = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
58 |
+
$_dateRdvEnd->setTime($chronopostsrdv_creneaux_info['endHour'],$chronopostsrdv_creneaux_info['endMinutes']);
|
59 |
+
|
60 |
+
$methodTitle = $rate->getMethodTitle();
|
61 |
+
$methodTitle .= ' - '.$_helper->__('Le').' '.$_dateRdvStart->format('d/m/Y');
|
62 |
+
$methodTitle .= ' '.$_helper->__('entre %s et %s',$_dateRdvStart->format('H:i'),$_dateRdvEnd->format('H:i'));
|
63 |
+
$rate->setData('method_title',$methodTitle);
|
64 |
+
|
65 |
+
} else {
|
66 |
+
$minimal_price = '';
|
67 |
+
for($i = 1; $i <= 4; $i++) {
|
68 |
+
if($minimal_price === '' || isset($_srdvConfig["N".$i."_price"]) && $_srdvConfig["N".$i."_price"] < $minimal_price) {
|
69 |
+
$minimal_price = $_srdvConfig["N".$i."_price"];
|
70 |
+
}
|
71 |
+
}
|
72 |
+
$price = $minimal_price + $rate->getCost();
|
73 |
+
}
|
74 |
+
|
75 |
+
$rate->setPrice($price);
|
76 |
+
|
77 |
+
$shippingAddress->setShippingDescription($methodTitle);
|
78 |
+
|
79 |
+
}
|
80 |
+
|
81 |
+
$result->append($rate);
|
82 |
+
}
|
83 |
+
return $result;
|
84 |
+
}
|
85 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronorelais.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Carrier_Chronorelais extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
-
{
|
4 |
-
protected $_code = 'chronorelais';
|
5 |
-
protected $_checkRelaiWs = true;
|
6 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Carrier_Chronorelais extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
+
{
|
4 |
+
protected $_code = 'chronorelais';
|
5 |
+
protected $_checkRelaiWs = true;
|
6 |
}
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronorelaisdom.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Carrier_Chronorelaisdom extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
-
{
|
4 |
-
protected $_code = 'chronorelaisdom';
|
5 |
-
protected $_checkContract = true;
|
6 |
-
protected $_checkRelaiWs = true;
|
7 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Carrier_Chronorelaisdom extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
+
{
|
4 |
+
protected $_code = 'chronorelaisdom';
|
5 |
+
protected $_checkContract = true;
|
6 |
+
protected $_checkRelaiWs = true;
|
7 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Carrier/Chronorelaiseurope.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Carrier_Chronorelaiseurope extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
-
{
|
4 |
-
protected $_code = 'chronorelaiseurope';
|
5 |
-
protected $_checkContract = true;
|
6 |
-
protected $_checkRelaiWs = true;
|
7 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Carrier_Chronorelaiseurope extends Chronopost_Chronorelais_Model_Carrier_AbstractChronorelaisShipping
|
3 |
+
{
|
4 |
+
protected $_code = 'chronorelaiseurope';
|
5 |
+
protected $_checkContract = true;
|
6 |
+
protected $_checkRelaiWs = true;
|
7 |
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Backend/Date.php
CHANGED
@@ -1,17 +1,17 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* System config file field backend model
|
4 |
-
*
|
5 |
-
* @category Adexos
|
6 |
-
* @package Adexos_Productcustomizer
|
7 |
-
* @author Adexos
|
8 |
-
*/
|
9 |
-
class Chronopost_Chronorelais_Model_Config_Backend_Date extends Mage_Core_Model_Config_Data
|
10 |
-
{
|
11 |
-
protected function _beforeSave()
|
12 |
-
{
|
13 |
-
$range = $this->getValue();
|
14 |
-
$this->setValue($range[0].':'.$range[1].':'.$range[2]);
|
15 |
-
return $this;
|
16 |
-
}
|
17 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* System config file field backend model
|
4 |
+
*
|
5 |
+
* @category Adexos
|
6 |
+
* @package Adexos_Productcustomizer
|
7 |
+
* @author Adexos
|
8 |
+
*/
|
9 |
+
class Chronopost_Chronorelais_Model_Config_Backend_Date extends Mage_Core_Model_Config_Data
|
10 |
+
{
|
11 |
+
protected function _beforeSave()
|
12 |
+
{
|
13 |
+
$range = $this->getValue();
|
14 |
+
$this->setValue($range[0].':'.$range[1].':'.$range[2]);
|
15 |
+
return $this;
|
16 |
+
}
|
17 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/Civility.php
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_Civility
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
return array(
|
7 |
-
array('value'=>'E', 'label'=>Mage::helper('chronorelais')->__('Madame')),
|
8 |
-
array('value'=>'L', 'label'=>Mage::helper('chronorelais')->__('Mademoiselle')),
|
9 |
-
array('value'=>'M', 'label'=>Mage::helper('chronorelais')->__('Monsieur'))
|
10 |
-
);
|
11 |
-
}
|
12 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_Civility
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'E', 'label'=>Mage::helper('chronorelais')->__('Madame')),
|
8 |
+
array('value'=>'L', 'label'=>Mage::helper('chronorelais')->__('Mademoiselle')),
|
9 |
+
array('value'=>'M', 'label'=>Mage::helper('chronorelais')->__('Monsieur'))
|
10 |
+
);
|
11 |
+
}
|
12 |
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/Day.php
CHANGED
@@ -1,16 +1,16 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_Day
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
return array(
|
7 |
-
array('value'=>'monday', 'label'=>Mage::helper('chronorelais')->__('Monday')),
|
8 |
-
array('value'=>'tuesday', 'label'=>Mage::helper('chronorelais')->__('Tuesday')),
|
9 |
-
array('value'=>'wednesday', 'label'=>Mage::helper('chronorelais')->__('Wednesday')),
|
10 |
-
array('value'=>'thursday', 'label'=>Mage::helper('chronorelais')->__('Thursday')),
|
11 |
-
array('value'=>'friday', 'label'=>Mage::helper('chronorelais')->__('Friday')),
|
12 |
-
array('value'=>'saturday', 'label'=>Mage::helper('chronorelais')->__('Saturday')),
|
13 |
-
array('value'=>'sunday', 'label'=>Mage::helper('chronorelais')->__('Sunday'))
|
14 |
-
);
|
15 |
-
}
|
16 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_Day
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'monday', 'label'=>Mage::helper('chronorelais')->__('Monday')),
|
8 |
+
array('value'=>'tuesday', 'label'=>Mage::helper('chronorelais')->__('Tuesday')),
|
9 |
+
array('value'=>'wednesday', 'label'=>Mage::helper('chronorelais')->__('Wednesday')),
|
10 |
+
array('value'=>'thursday', 'label'=>Mage::helper('chronorelais')->__('Thursday')),
|
11 |
+
array('value'=>'friday', 'label'=>Mage::helper('chronorelais')->__('Friday')),
|
12 |
+
array('value'=>'saturday', 'label'=>Mage::helper('chronorelais')->__('Saturday')),
|
13 |
+
array('value'=>'sunday', 'label'=>Mage::helper('chronorelais')->__('Sunday'))
|
14 |
+
);
|
15 |
+
}
|
16 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/EndOfLineCharacter.php
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_EndOfLineCharacter
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
return array(
|
7 |
-
array('value'=>'lf', 'label'=>Mage::helper('chronorelais')->__('LF')),
|
8 |
-
array('value'=>'cr', 'label'=>Mage::helper('chronorelais')->__('CR')),
|
9 |
-
array('value'=>'crlf', 'label'=>Mage::helper('chronorelais')->__('CR+LF'))
|
10 |
-
);
|
11 |
-
}
|
12 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_EndOfLineCharacter
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'lf', 'label'=>Mage::helper('chronorelais')->__('LF')),
|
8 |
+
array('value'=>'cr', 'label'=>Mage::helper('chronorelais')->__('CR')),
|
9 |
+
array('value'=>'crlf', 'label'=>Mage::helper('chronorelais')->__('CR+LF'))
|
10 |
+
);
|
11 |
+
}
|
12 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/FieldDelimiter.php
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_FieldDelimiter
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
return array(
|
7 |
-
array('value'=>'none', 'label'=>Mage::helper('chronorelais')->__('None')),
|
8 |
-
array('value'=>'simple_quote', 'label'=>Mage::helper('chronorelais')->__('Simple Quote')),
|
9 |
-
array('value'=>'double_quotes', 'label'=>Mage::helper('chronorelais')->__('Double Quotes'))
|
10 |
-
);
|
11 |
-
}
|
12 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_FieldDelimiter
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'none', 'label'=>Mage::helper('chronorelais')->__('None')),
|
8 |
+
array('value'=>'simple_quote', 'label'=>Mage::helper('chronorelais')->__('Simple Quote')),
|
9 |
+
array('value'=>'double_quotes', 'label'=>Mage::helper('chronorelais')->__('Double Quotes'))
|
10 |
+
);
|
11 |
+
}
|
12 |
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/FieldSeparator.php
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_FieldSeparator
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
return array(
|
7 |
-
array('value'=>';', 'label'=>Mage::helper('chronorelais')->__('Semicolon')),
|
8 |
-
array('value'=>',', 'label'=>Mage::helper('chronorelais')->__('Comma'))
|
9 |
-
);
|
10 |
-
}
|
11 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_FieldSeparator
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>';', 'label'=>Mage::helper('chronorelais')->__('Semicolon')),
|
8 |
+
array('value'=>',', 'label'=>Mage::helper('chronorelais')->__('Comma'))
|
9 |
+
);
|
10 |
+
}
|
11 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/FileCharset.php
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_FileCharset
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
return array(
|
7 |
-
array('value'=>'ISO-8859-1', 'label'=>Mage::helper('chronorelais')->__('ISO-8859-1')),
|
8 |
-
array('value'=>'UTF-8', 'label'=>Mage::helper('chronorelais')->__('UTF-8')),
|
9 |
-
array('value'=>'ASCII-7', 'label'=>Mage::helper('chronorelais')->__('ASCII-7 Bits'))
|
10 |
-
);
|
11 |
-
}
|
12 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_FileCharset
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'ISO-8859-1', 'label'=>Mage::helper('chronorelais')->__('ISO-8859-1')),
|
8 |
+
array('value'=>'UTF-8', 'label'=>Mage::helper('chronorelais')->__('UTF-8')),
|
9 |
+
array('value'=>'ASCII-7', 'label'=>Mage::helper('chronorelais')->__('ASCII-7 Bits'))
|
10 |
+
);
|
11 |
+
}
|
12 |
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/FileExtension.php
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_FileExtension
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
return array(
|
7 |
-
array('value'=>'.txt', 'label'=>Mage::helper('chronorelais')->__('.txt')),
|
8 |
-
array('value'=>'.csv', 'label'=>Mage::helper('chronorelais')->__('.csv')),
|
9 |
-
array('value'=>'.chr', 'label'=>Mage::helper('chronorelais')->__('.chr'))
|
10 |
-
);
|
11 |
-
}
|
12 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_FileExtension
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'.txt', 'label'=>Mage::helper('chronorelais')->__('.txt')),
|
8 |
+
array('value'=>'.csv', 'label'=>Mage::helper('chronorelais')->__('.csv')),
|
9 |
+
array('value'=>'.chr', 'label'=>Mage::helper('chronorelais')->__('.chr'))
|
10 |
+
);
|
11 |
+
}
|
12 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/Hour.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_Hour
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
$hour = array();
|
7 |
-
for($i = 0; $i <= 23; $i++) {
|
8 |
-
$hour_str = str_pad($i, 2, '0',STR_PAD_LEFT);
|
9 |
-
$hour[] = array('value' => $hour_str, 'label' => $hour_str);
|
10 |
-
}
|
11 |
-
return $hour;
|
12 |
-
}
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_Hour
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
$hour = array();
|
7 |
+
for($i = 0; $i <= 23; $i++) {
|
8 |
+
$hour_str = str_pad($i, 2, '0',STR_PAD_LEFT);
|
9 |
+
$hour[] = array('value' => $hour_str, 'label' => $hour_str);
|
10 |
+
}
|
11 |
+
return $hour;
|
12 |
+
}
|
13 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/Margetype.php
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_Margetype
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
return array(
|
7 |
-
array('value'=>'prcent', 'label'=>Mage::helper('chronorelais')->__('Percentage')." (%)"),
|
8 |
-
array('value'=>'amount', 'label'=>Mage::helper('chronorelais')->__('Amount')." (€)")
|
9 |
-
);
|
10 |
-
}
|
11 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_Margetype
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'prcent', 'label'=>Mage::helper('chronorelais')->__('Percentage')." (%)"),
|
8 |
+
array('value'=>'amount', 'label'=>Mage::helper('chronorelais')->__('Amount')." (€)")
|
9 |
+
);
|
10 |
+
}
|
11 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/Minute.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_Minute
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
$minute = array();
|
7 |
-
for($i = 0; $i <= 59; $i++) {
|
8 |
-
$minute_str = str_pad($i, 2, '0',STR_PAD_LEFT);
|
9 |
-
$minute[] = array('value' => $minute_str, 'label' => $minute_str);
|
10 |
-
}
|
11 |
-
return $minute;
|
12 |
-
}
|
13 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_Minute
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
$minute = array();
|
7 |
+
for($i = 0; $i <= 59; $i++) {
|
8 |
+
$minute_str = str_pad($i, 2, '0',STR_PAD_LEFT);
|
9 |
+
$minute[] = array('value' => $minute_str, 'label' => $minute_str);
|
10 |
+
}
|
11 |
+
return $minute;
|
12 |
+
}
|
13 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/PrintMode.php
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_PrintMode
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
return array(
|
7 |
-
array('value'=>'PDF', 'label'=>Mage::helper('chronorelais')->__('Print PDF Laser with proof')),
|
8 |
-
array('value'=>'SPD', 'label'=>Mage::helper('chronorelais')->__('Print PDF laser without proof')),
|
9 |
-
array('value'=>'THE', 'label'=>Mage::helper('chronorelais')->__('Print PDF thermal'))
|
10 |
-
);
|
11 |
-
}
|
12 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_PrintMode
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'PDF', 'label'=>Mage::helper('chronorelais')->__('Print PDF Laser with proof')),
|
8 |
+
array('value'=>'SPD', 'label'=>Mage::helper('chronorelais')->__('Print PDF laser without proof')),
|
9 |
+
array('value'=>'THE', 'label'=>Mage::helper('chronorelais')->__('Print PDF thermal'))
|
10 |
+
);
|
11 |
+
}
|
12 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/Time.php
CHANGED
@@ -1,31 +1,31 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_Time
|
3 |
-
{
|
4 |
-
/**
|
5 |
-
* 07:00 / 07 :30 / 08:00 / 08 :30 / 09:00 / 09 :30 / 10:00 / 10 :30 / 11:00
|
6 |
-
* 11:30 / 12:00 / 12 :30 / 13:00 / 13 :30 / 14:00 / 14 :30 / 15:00
|
7 |
-
* @return type
|
8 |
-
*/
|
9 |
-
public function toOptionArray()
|
10 |
-
{
|
11 |
-
return array(
|
12 |
-
array('value'=>'07:00', 'label'=>Mage::helper('chronorelais')->__('7 AM')),
|
13 |
-
array('value'=>'07:30', 'label'=>Mage::helper('chronorelais')->__('7.30 AM')),
|
14 |
-
array('value'=>'08:00', 'label'=>Mage::helper('chronorelais')->__('8 AM')),
|
15 |
-
array('value'=>'08:30', 'label'=>Mage::helper('chronorelais')->__('8.30 AM')),
|
16 |
-
array('value'=>'09:00', 'label'=>Mage::helper('chronorelais')->__('9 AM')),
|
17 |
-
array('value'=>'09:30', 'label'=>Mage::helper('chronorelais')->__('9.30 AM')),
|
18 |
-
array('value'=>'10:00', 'label'=>Mage::helper('chronorelais')->__('10 AM')),
|
19 |
-
array('value'=>'10:30', 'label'=>Mage::helper('chronorelais')->__('10.30 AM')),
|
20 |
-
array('value'=>'11:00', 'label'=>Mage::helper('chronorelais')->__('11 AM')),
|
21 |
-
array('value'=>'11:30', 'label'=>Mage::helper('chronorelais')->__('11.30 AM')),
|
22 |
-
array('value'=>'12:00', 'label'=>Mage::helper('chronorelais')->__('12 AM')),
|
23 |
-
array('value'=>'12:30', 'label'=>Mage::helper('chronorelais')->__('12.30 AM')),
|
24 |
-
array('value'=>'13:00', 'label'=>Mage::helper('chronorelais')->__('1 PM')),
|
25 |
-
array('value'=>'13:30', 'label'=>Mage::helper('chronorelais')->__('1.30 PM')),
|
26 |
-
array('value'=>'14:00', 'label'=>Mage::helper('chronorelais')->__('2 PM')),
|
27 |
-
array('value'=>'14:30', 'label'=>Mage::helper('chronorelais')->__('2.30 PM')),
|
28 |
-
array('value'=>'15:00', 'label'=>Mage::helper('chronorelais')->__('3 PM'))
|
29 |
-
);
|
30 |
-
}
|
31 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_Time
|
3 |
+
{
|
4 |
+
/**
|
5 |
+
* 07:00 / 07 :30 / 08:00 / 08 :30 / 09:00 / 09 :30 / 10:00 / 10 :30 / 11:00
|
6 |
+
* 11:30 / 12:00 / 12 :30 / 13:00 / 13 :30 / 14:00 / 14 :30 / 15:00
|
7 |
+
* @return type
|
8 |
+
*/
|
9 |
+
public function toOptionArray()
|
10 |
+
{
|
11 |
+
return array(
|
12 |
+
array('value'=>'07:00', 'label'=>Mage::helper('chronorelais')->__('7 AM')),
|
13 |
+
array('value'=>'07:30', 'label'=>Mage::helper('chronorelais')->__('7.30 AM')),
|
14 |
+
array('value'=>'08:00', 'label'=>Mage::helper('chronorelais')->__('8 AM')),
|
15 |
+
array('value'=>'08:30', 'label'=>Mage::helper('chronorelais')->__('8.30 AM')),
|
16 |
+
array('value'=>'09:00', 'label'=>Mage::helper('chronorelais')->__('9 AM')),
|
17 |
+
array('value'=>'09:30', 'label'=>Mage::helper('chronorelais')->__('9.30 AM')),
|
18 |
+
array('value'=>'10:00', 'label'=>Mage::helper('chronorelais')->__('10 AM')),
|
19 |
+
array('value'=>'10:30', 'label'=>Mage::helper('chronorelais')->__('10.30 AM')),
|
20 |
+
array('value'=>'11:00', 'label'=>Mage::helper('chronorelais')->__('11 AM')),
|
21 |
+
array('value'=>'11:30', 'label'=>Mage::helper('chronorelais')->__('11.30 AM')),
|
22 |
+
array('value'=>'12:00', 'label'=>Mage::helper('chronorelais')->__('12 AM')),
|
23 |
+
array('value'=>'12:30', 'label'=>Mage::helper('chronorelais')->__('12.30 AM')),
|
24 |
+
array('value'=>'13:00', 'label'=>Mage::helper('chronorelais')->__('1 PM')),
|
25 |
+
array('value'=>'13:30', 'label'=>Mage::helper('chronorelais')->__('1.30 PM')),
|
26 |
+
array('value'=>'14:00', 'label'=>Mage::helper('chronorelais')->__('2 PM')),
|
27 |
+
array('value'=>'14:30', 'label'=>Mage::helper('chronorelais')->__('2.30 PM')),
|
28 |
+
array('value'=>'15:00', 'label'=>Mage::helper('chronorelais')->__('3 PM'))
|
29 |
+
);
|
30 |
+
}
|
31 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Config/Source/WeightUnit.php
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Model_Config_Source_WeightUnit
|
3 |
-
{
|
4 |
-
public function toOptionArray()
|
5 |
-
{
|
6 |
-
return array(
|
7 |
-
array('value'=>'kg', 'label'=>Mage::helper('chronorelais')->__('Kilogramme')),
|
8 |
-
array('value'=>'g', 'label'=>Mage::helper('chronorelais')->__('gramme')),
|
9 |
-
);
|
10 |
-
}
|
11 |
-
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Model_Config_Source_WeightUnit
|
3 |
+
{
|
4 |
+
public function toOptionArray()
|
5 |
+
{
|
6 |
+
return array(
|
7 |
+
array('value'=>'kg', 'label'=>Mage::helper('chronorelais')->__('Kilogramme')),
|
8 |
+
array('value'=>'g', 'label'=>Mage::helper('chronorelais')->__('gramme')),
|
9 |
+
);
|
10 |
+
}
|
11 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Observer.php
CHANGED
@@ -1,271 +1,271 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Model_Observer
|
4 |
-
{
|
5 |
-
public function checkSoapExists() {
|
6 |
-
if (!extension_loaded('soap') && (Mage::helper('chronorelais')->getConfigData('carriers/chronopost/active') || Mage::helper('chronorelais')->getConfigData('carriers/chronorelais/active') || Mage::helper('chronorelais')->getConfigData('carriers/chronoexpress/active'))) {
|
7 |
-
Mage::getSingleton('checkout/session')->addError(Mage::helper('chronorelais')->__('The SOAP extension is not installed in the server. Please contact the site administrator. Sorry for inconvenience.'));
|
8 |
-
Mage::app()->getResponse()->setRedirect(Mage::getUrl("checkout/cart"));
|
9 |
-
return;
|
10 |
-
}
|
11 |
-
}
|
12 |
-
|
13 |
-
public function saveBillingBefore() {
|
14 |
-
$request = Mage::app()->getRequest();
|
15 |
-
$data = $request->getPost('billing', array());
|
16 |
-
$customerAddressId = $request->getPost('billing_address_id', false);
|
17 |
-
|
18 |
-
if (isset($data['use_for_shipping']) && $data['use_for_shipping'] == 1) {
|
19 |
-
|
20 |
-
//WEC chronorelais
|
21 |
-
if (isset($_SESSION["customer_shipping_address_reference"])) {
|
22 |
-
unset($_SESSION["customer_shipping_address_reference"]);
|
23 |
-
}
|
24 |
-
|
25 |
-
if (!array_key_exists("company", $data)) {
|
26 |
-
$data["company"] = "";
|
27 |
-
}
|
28 |
-
|
29 |
-
$_SESSION["customer_shipping_address_reference"]["data"] = $data;
|
30 |
-
$_SESSION["customer_shipping_address_reference"]["customerAddressId"] = $customerAddressId;
|
31 |
-
$_SESSION["customer_shipping_address_reference"]["available"] = false;
|
32 |
-
//ENDWEC
|
33 |
-
}
|
34 |
-
}
|
35 |
-
|
36 |
-
public function saveShippingBefore() {
|
37 |
-
$request = Mage::app()->getRequest();
|
38 |
-
$data = $request->getPost('shipping', array());
|
39 |
-
$customerAddressId = $request->getPost('shipping_address_id', false);
|
40 |
-
|
41 |
-
//WEC chronorelais
|
42 |
-
if (isset($_SESSION["customer_shipping_address_reference"])) {
|
43 |
-
unset($_SESSION["customer_shipping_address_reference"]);
|
44 |
-
}
|
45 |
-
if (!array_key_exists("company", $data)) {
|
46 |
-
$data["company"] = "";
|
47 |
-
}
|
48 |
-
$_SESSION["customer_shipping_address_reference"]["data"] = $data;
|
49 |
-
$_SESSION["customer_shipping_address_reference"]["customerAddressId"] = $customerAddressId;
|
50 |
-
$_SESSION["customer_shipping_address_reference"]["available"] = false;
|
51 |
-
//ENDWEC
|
52 |
-
}
|
53 |
-
|
54 |
-
public function saveShippingMethodBefore() {
|
55 |
-
$request = Mage::app()->getRequest();
|
56 |
-
$onepage = Mage::getSingleton('checkout/type_onepage');
|
57 |
-
//WEC chronorelais
|
58 |
-
|
59 |
-
if ($_SESSION["customer_shipping_address_reference"]["available"]) {
|
60 |
-
$data = $_SESSION["customer_shipping_address_reference"]["data"];
|
61 |
-
$customerAddressId = $_SESSION["customer_shipping_address_reference"]["customerAddressId"];
|
62 |
-
$_SESSION["customer_shipping_address_reference"]["available"] = false;
|
63 |
-
|
64 |
-
$result = $onepage->saveShipping($data, $customerAddressId);
|
65 |
-
if(!Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')) {
|
66 |
-
Mage::app()->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
|
67 |
-
}
|
68 |
-
}
|
69 |
-
|
70 |
-
$method = $request->getParam('shipping_method');
|
71 |
-
$quote = Mage::getSingleton('checkout/cart')->getQuote();
|
72 |
-
$address = $quote->getShippingAddress();
|
73 |
-
|
74 |
-
$shippingMethodSelected = $request->getParam('shipping_method');
|
75 |
-
|
76 |
-
$methodTitle = "";
|
77 |
-
|
78 |
-
/* Chronorelais */
|
79 |
-
if(strpos($shippingMethodSelected,'chronorelais') !== false) {
|
80 |
-
$relaisId = $request->getParam('shipping_method_chronorelais');
|
81 |
-
if ($relaisId != "") {
|
82 |
-
$helper = Mage::helper('chronorelais/webservice');
|
83 |
-
$relais = $helper->getDetailRelaisPoint($relaisId);
|
84 |
-
|
85 |
-
if ($relais) {
|
86 |
-
$address->setCity($relais->localite)
|
87 |
-
->setPostcode($relais->codePostal)
|
88 |
-
->setStreet(trim($relais->adresse1 . "\n" . $relais->adresse2 . " " . $relais->adresse3))
|
89 |
-
->setCompany($relais->nomEnseigne)
|
90 |
-
->setWRelayPointCode($relais->identifiantChronopostPointA2PAS)
|
91 |
-
->save()
|
92 |
-
->setCollectShippingRates(true);
|
93 |
-
|
94 |
-
$_SESSION['chronopost_relais_id'] = $relaisId;
|
95 |
-
|
96 |
-
$_SESSION["customer_shipping_address_reference"]["available"] = true;
|
97 |
-
|
98 |
-
if (isset($relais->localite)) {
|
99 |
-
$methodTitle = ' - ' . $relais->nomEnseigne . ' - ' . trim($relais->adresse1 . " " . $relais->adresse2 . " " . $relais->adresse3) . ' - ' . $relais->codePostal . ' - ' . $relais->localite;
|
100 |
-
}
|
101 |
-
}
|
102 |
-
} else {
|
103 |
-
if(!Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')) {
|
104 |
-
$result['error'] = true;
|
105 |
-
$result['message'] = Mage::helper('chronorelais')->__('Veuillez sélectionner votre point relais');
|
106 |
-
echo Mage::helper('core')->jsonEncode($result);
|
107 |
-
exit;
|
108 |
-
}
|
109 |
-
}
|
110 |
-
} else {
|
111 |
-
unset($_SESSION['chronopost_relais_id']);
|
112 |
-
}
|
113 |
-
|
114 |
-
/* Chronopostsrdv */
|
115 |
-
if(strpos($shippingMethodSelected,'chronopostsrdv') !== false) {
|
116 |
-
$rdvInfo = $request->getParam('chronopostsrdv_creneaux_info');
|
117 |
-
|
118 |
-
if ($rdvInfo != "") {
|
119 |
-
$helper = Mage::helper('chronorelais/webservice');
|
120 |
-
|
121 |
-
/* vérification creneau ok */
|
122 |
-
$rdvInfo = json_decode($rdvInfo,true);
|
123 |
-
|
124 |
-
$confirm = $helper->confirmDeliverySlot($rdvInfo);
|
125 |
-
if($confirm->return->code == 0) {
|
126 |
-
|
127 |
-
$rdvInfo['productCode'] = $confirm->return->productService->productCode;
|
128 |
-
$rdvInfo['serviceCode'] = $confirm->return->productService->serviceCode;
|
129 |
-
|
130 |
-
$_SESSION['chronopostsrdv_creneaux_info'] = $rdvInfo;
|
131 |
-
|
132 |
-
/* Important : permet de mettre à jour libellé method + prix */
|
133 |
-
$address->setChronopostsrdvCreneauxInfo(json_encode($rdvInfo))
|
134 |
-
->save()
|
135 |
-
->setCollectShippingRates(true);
|
136 |
-
|
137 |
-
} else {
|
138 |
-
$result['error'] = true;
|
139 |
-
$result['message'] = Mage::helper('chronorelais')->__($confirm->return->message);
|
140 |
-
echo Mage::helper('core')->jsonEncode($result);
|
141 |
-
exit;
|
142 |
-
}
|
143 |
-
|
144 |
-
} else {
|
145 |
-
if(!Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')) {
|
146 |
-
$result['error'] = true;
|
147 |
-
$result['message'] = Mage::helper('chronorelais')->__('Veuillez sélectionner votre horaire de rendez-vous');
|
148 |
-
echo Mage::helper('core')->jsonEncode($result);
|
149 |
-
exit;
|
150 |
-
}
|
151 |
-
}
|
152 |
-
} else {
|
153 |
-
unset($_SESSION['chronopostsrdv_creneaux_info']);
|
154 |
-
}
|
155 |
-
|
156 |
-
if ($method) {
|
157 |
-
foreach ($address->getAllShippingRates() as $rate) {
|
158 |
-
if ($rate->getCode() == $method) {
|
159 |
-
$address->setShippingDescription($rate->getCarrierTitle() . ' - ' . $rate->getMethodTitle() . $methodTitle);
|
160 |
-
break;
|
161 |
-
}
|
162 |
-
}
|
163 |
-
}
|
164 |
-
//ENDWEC chronorelais
|
165 |
-
}
|
166 |
-
|
167 |
-
public function updateShippingAddress($observer) {
|
168 |
-
|
169 |
-
$address = $observer->getEvent()->getAddress();
|
170 |
-
$shippingMethodSelected = $address->getShippingMethod();
|
171 |
-
|
172 |
-
$onepage = Mage::getSingleton('checkout/type_onepage');
|
173 |
-
//WEC chronorelais
|
174 |
-
|
175 |
-
if(strpos($shippingMethodSelected,'chronorelais') !== false) {
|
176 |
-
$relaisId = $_SESSION['chronopost_relais_id'];
|
177 |
-
if ($relaisId != "") {
|
178 |
-
$helper = Mage::helper('chronorelais/webservice');
|
179 |
-
$relais = $helper->getDetailRelaisPoint($relaisId);
|
180 |
-
|
181 |
-
if ($relais) {
|
182 |
-
$address->setCity($relais->localite)
|
183 |
-
->setPostcode($relais->codePostal)
|
184 |
-
->setStreet(trim($relais->adresse1 . "\n" . $relais->adresse2 . " " . $relais->adresse3))
|
185 |
-
->setCompany($relais->nomEnseigne)
|
186 |
-
->setWRelayPointCode($relais->identifiantChronopostPointA2PAS)
|
187 |
-
->save()
|
188 |
-
->setCollectShippingRates(true);
|
189 |
-
|
190 |
-
$_SESSION["customer_shipping_address_reference"]["available"] = true;
|
191 |
-
}
|
192 |
-
} else {
|
193 |
-
/*$result['error'] = true;
|
194 |
-
$result['message'] = Mage::helper('chronorelais')->__('Veuillez sélectionner votre point relais');
|
195 |
-
echo Mage::helper('core')->jsonEncode($result);
|
196 |
-
exit;*/
|
197 |
-
}
|
198 |
-
}
|
199 |
-
|
200 |
-
/* Chronopostsrdv */
|
201 |
-
if(strpos($shippingMethodSelected,'chronopostsrdv') !== false) {
|
202 |
-
$rdvInfo = $_SESSION['chronopostsrdv_creneaux_info'];
|
203 |
-
|
204 |
-
if ($rdvInfo != "") {
|
205 |
-
$helper = Mage::helper('chronorelais/webservice');
|
206 |
-
|
207 |
-
/* vérification creneau ok */
|
208 |
-
$confirm = $helper->confirmDeliverySlot($rdvInfo);
|
209 |
-
|
210 |
-
if($confirm->return->code == 0) {
|
211 |
-
|
212 |
-
$rdvInfo['productCode'] = $confirm->return->productService->productCode;
|
213 |
-
$rdvInfo['serviceCode'] = $confirm->return->productService->serviceCode;
|
214 |
-
|
215 |
-
/* Important : permet de mettre à jour libellé method + prix */
|
216 |
-
$address->setChronopostsrdvCreneauxInfo(json_encode($rdvInfo))
|
217 |
-
->setCollectShippingRates(true)->collectShippingRates()->save();
|
218 |
-
|
219 |
-
} else {
|
220 |
-
$result['error'] = true;
|
221 |
-
$result['message'] = Mage::helper('chronorelais')->__($confirm->return->message);
|
222 |
-
echo Mage::helper('core')->jsonEncode($result);
|
223 |
-
exit;
|
224 |
-
}
|
225 |
-
|
226 |
-
} else {
|
227 |
-
if(!Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')) {
|
228 |
-
$result['error'] = true;
|
229 |
-
$result['message'] = Mage::helper('chronorelais')->__('Veuillez sélectionner votre horaire de rendez-vous');
|
230 |
-
echo Mage::helper('core')->jsonEncode($result);
|
231 |
-
exit;
|
232 |
-
}
|
233 |
-
}
|
234 |
-
}
|
235 |
-
|
236 |
-
$methodTitle = "";
|
237 |
-
if (isset($relais->localite)) {
|
238 |
-
$methodTitle = ' - ' . $relais->nomEnseigne . ' - ' . trim($relais->adresse1 . " " . $relais->adresse2 . " " . $relais->adresse3) . ' - ' . $relais->codePostal . ' - ' . $relais->localite;
|
239 |
-
}
|
240 |
-
if ($method) {
|
241 |
-
foreach ($address->getAllShippingRates() as $rate) {
|
242 |
-
if ($rate->getCode() == $method) {
|
243 |
-
$address->setShippingDescription($rate->getCarrierTitle() . ' - ' . $rate->getMethodTitle() . $methodTitle);
|
244 |
-
break;
|
245 |
-
}
|
246 |
-
}
|
247 |
-
}
|
248 |
-
//ENDWEC chronorelais
|
249 |
-
}
|
250 |
-
|
251 |
-
public function checkRelayPoint($observer) {
|
252 |
-
|
253 |
-
if(Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')) {
|
254 |
-
$_quote = Mage::helper('checkout')->getQuote();
|
255 |
-
$address = $_quote->getShippingAddress();
|
256 |
-
|
257 |
-
$shippingMethodSelected = $address->getShippingMethod();
|
258 |
-
|
259 |
-
if(strpos($shippingMethodSelected,'chronorelais') !== false) {
|
260 |
-
$relaisId = $_SESSION['chronopost_relais_id'];
|
261 |
-
if ($relaisId == "") {
|
262 |
-
Mage::throwException(Mage::helper('checkout')->__('Veuillez sélectionner votre point relais'));
|
263 |
-
}
|
264 |
-
}
|
265 |
-
}
|
266 |
-
|
267 |
-
unset($_SESSION['chronopostsrdv_creneaux_info']);
|
268 |
-
}
|
269 |
-
|
270 |
-
|
271 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Model_Observer
|
4 |
+
{
|
5 |
+
public function checkSoapExists() {
|
6 |
+
if (!extension_loaded('soap') && (Mage::helper('chronorelais')->getConfigData('carriers/chronopost/active') || Mage::helper('chronorelais')->getConfigData('carriers/chronorelais/active') || Mage::helper('chronorelais')->getConfigData('carriers/chronoexpress/active'))) {
|
7 |
+
Mage::getSingleton('checkout/session')->addError(Mage::helper('chronorelais')->__('The SOAP extension is not installed in the server. Please contact the site administrator. Sorry for inconvenience.'));
|
8 |
+
Mage::app()->getResponse()->setRedirect(Mage::getUrl("checkout/cart"));
|
9 |
+
return;
|
10 |
+
}
|
11 |
+
}
|
12 |
+
|
13 |
+
public function saveBillingBefore() {
|
14 |
+
$request = Mage::app()->getRequest();
|
15 |
+
$data = $request->getPost('billing', array());
|
16 |
+
$customerAddressId = $request->getPost('billing_address_id', false);
|
17 |
+
|
18 |
+
if (isset($data['use_for_shipping']) && $data['use_for_shipping'] == 1) {
|
19 |
+
|
20 |
+
//WEC chronorelais
|
21 |
+
if (isset($_SESSION["customer_shipping_address_reference"])) {
|
22 |
+
unset($_SESSION["customer_shipping_address_reference"]);
|
23 |
+
}
|
24 |
+
|
25 |
+
if (!array_key_exists("company", $data)) {
|
26 |
+
$data["company"] = "";
|
27 |
+
}
|
28 |
+
|
29 |
+
$_SESSION["customer_shipping_address_reference"]["data"] = $data;
|
30 |
+
$_SESSION["customer_shipping_address_reference"]["customerAddressId"] = $customerAddressId;
|
31 |
+
$_SESSION["customer_shipping_address_reference"]["available"] = false;
|
32 |
+
//ENDWEC
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
public function saveShippingBefore() {
|
37 |
+
$request = Mage::app()->getRequest();
|
38 |
+
$data = $request->getPost('shipping', array());
|
39 |
+
$customerAddressId = $request->getPost('shipping_address_id', false);
|
40 |
+
|
41 |
+
//WEC chronorelais
|
42 |
+
if (isset($_SESSION["customer_shipping_address_reference"])) {
|
43 |
+
unset($_SESSION["customer_shipping_address_reference"]);
|
44 |
+
}
|
45 |
+
if (!array_key_exists("company", $data)) {
|
46 |
+
$data["company"] = "";
|
47 |
+
}
|
48 |
+
$_SESSION["customer_shipping_address_reference"]["data"] = $data;
|
49 |
+
$_SESSION["customer_shipping_address_reference"]["customerAddressId"] = $customerAddressId;
|
50 |
+
$_SESSION["customer_shipping_address_reference"]["available"] = false;
|
51 |
+
//ENDWEC
|
52 |
+
}
|
53 |
+
|
54 |
+
public function saveShippingMethodBefore() {
|
55 |
+
$request = Mage::app()->getRequest();
|
56 |
+
$onepage = Mage::getSingleton('checkout/type_onepage');
|
57 |
+
//WEC chronorelais
|
58 |
+
|
59 |
+
if ($_SESSION["customer_shipping_address_reference"]["available"]) {
|
60 |
+
$data = $_SESSION["customer_shipping_address_reference"]["data"];
|
61 |
+
$customerAddressId = $_SESSION["customer_shipping_address_reference"]["customerAddressId"];
|
62 |
+
$_SESSION["customer_shipping_address_reference"]["available"] = false;
|
63 |
+
|
64 |
+
$result = $onepage->saveShipping($data, $customerAddressId);
|
65 |
+
if(!Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')) {
|
66 |
+
Mage::app()->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
$method = $request->getParam('shipping_method');
|
71 |
+
$quote = Mage::getSingleton('checkout/cart')->getQuote();
|
72 |
+
$address = $quote->getShippingAddress();
|
73 |
+
|
74 |
+
$shippingMethodSelected = $request->getParam('shipping_method');
|
75 |
+
|
76 |
+
$methodTitle = "";
|
77 |
+
|
78 |
+
/* Chronorelais */
|
79 |
+
if(strpos($shippingMethodSelected,'chronorelais') !== false) {
|
80 |
+
$relaisId = $request->getParam('shipping_method_chronorelais');
|
81 |
+
if ($relaisId != "") {
|
82 |
+
$helper = Mage::helper('chronorelais/webservice');
|
83 |
+
$relais = $helper->getDetailRelaisPoint($relaisId);
|
84 |
+
|
85 |
+
if ($relais) {
|
86 |
+
$address->setCity($relais->localite)
|
87 |
+
->setPostcode($relais->codePostal)
|
88 |
+
->setStreet(trim($relais->adresse1 . "\n" . $relais->adresse2 . " " . $relais->adresse3))
|
89 |
+
->setCompany($relais->nomEnseigne)
|
90 |
+
->setWRelayPointCode($relais->identifiantChronopostPointA2PAS)
|
91 |
+
->save()
|
92 |
+
->setCollectShippingRates(true);
|
93 |
+
|
94 |
+
$_SESSION['chronopost_relais_id'] = $relaisId;
|
95 |
+
|
96 |
+
$_SESSION["customer_shipping_address_reference"]["available"] = true;
|
97 |
+
|
98 |
+
if (isset($relais->localite)) {
|
99 |
+
$methodTitle = ' - ' . $relais->nomEnseigne . ' - ' . trim($relais->adresse1 . " " . $relais->adresse2 . " " . $relais->adresse3) . ' - ' . $relais->codePostal . ' - ' . $relais->localite;
|
100 |
+
}
|
101 |
+
}
|
102 |
+
} else {
|
103 |
+
if(!Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')) {
|
104 |
+
$result['error'] = true;
|
105 |
+
$result['message'] = Mage::helper('chronorelais')->__('Veuillez sélectionner votre point relais');
|
106 |
+
echo Mage::helper('core')->jsonEncode($result);
|
107 |
+
exit;
|
108 |
+
}
|
109 |
+
}
|
110 |
+
} else {
|
111 |
+
unset($_SESSION['chronopost_relais_id']);
|
112 |
+
}
|
113 |
+
|
114 |
+
/* Chronopostsrdv */
|
115 |
+
if(strpos($shippingMethodSelected,'chronopostsrdv') !== false) {
|
116 |
+
$rdvInfo = $request->getParam('chronopostsrdv_creneaux_info');
|
117 |
+
|
118 |
+
if ($rdvInfo != "") {
|
119 |
+
$helper = Mage::helper('chronorelais/webservice');
|
120 |
+
|
121 |
+
/* vérification creneau ok */
|
122 |
+
$rdvInfo = json_decode($rdvInfo,true);
|
123 |
+
|
124 |
+
$confirm = $helper->confirmDeliverySlot($rdvInfo);
|
125 |
+
if($confirm->return->code == 0) {
|
126 |
+
|
127 |
+
$rdvInfo['productCode'] = $confirm->return->productService->productCode;
|
128 |
+
$rdvInfo['serviceCode'] = $confirm->return->productService->serviceCode;
|
129 |
+
|
130 |
+
$_SESSION['chronopostsrdv_creneaux_info'] = $rdvInfo;
|
131 |
+
|
132 |
+
/* Important : permet de mettre à jour libellé method + prix */
|
133 |
+
$address->setChronopostsrdvCreneauxInfo(json_encode($rdvInfo))
|
134 |
+
->save()
|
135 |
+
->setCollectShippingRates(true);
|
136 |
+
|
137 |
+
} else {
|
138 |
+
$result['error'] = true;
|
139 |
+
$result['message'] = Mage::helper('chronorelais')->__($confirm->return->message);
|
140 |
+
echo Mage::helper('core')->jsonEncode($result);
|
141 |
+
exit;
|
142 |
+
}
|
143 |
+
|
144 |
+
} else {
|
145 |
+
if(!Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')) {
|
146 |
+
$result['error'] = true;
|
147 |
+
$result['message'] = Mage::helper('chronorelais')->__('Veuillez sélectionner votre horaire de rendez-vous');
|
148 |
+
echo Mage::helper('core')->jsonEncode($result);
|
149 |
+
exit;
|
150 |
+
}
|
151 |
+
}
|
152 |
+
} else {
|
153 |
+
unset($_SESSION['chronopostsrdv_creneaux_info']);
|
154 |
+
}
|
155 |
+
|
156 |
+
if ($method) {
|
157 |
+
foreach ($address->getAllShippingRates() as $rate) {
|
158 |
+
if ($rate->getCode() == $method) {
|
159 |
+
$address->setShippingDescription($rate->getCarrierTitle() . ' - ' . $rate->getMethodTitle() . $methodTitle);
|
160 |
+
break;
|
161 |
+
}
|
162 |
+
}
|
163 |
+
}
|
164 |
+
//ENDWEC chronorelais
|
165 |
+
}
|
166 |
+
|
167 |
+
public function updateShippingAddress($observer) {
|
168 |
+
|
169 |
+
$address = $observer->getEvent()->getAddress();
|
170 |
+
$shippingMethodSelected = $address->getShippingMethod();
|
171 |
+
|
172 |
+
$onepage = Mage::getSingleton('checkout/type_onepage');
|
173 |
+
//WEC chronorelais
|
174 |
+
|
175 |
+
if(strpos($shippingMethodSelected,'chronorelais') !== false) {
|
176 |
+
$relaisId = $_SESSION['chronopost_relais_id'];
|
177 |
+
if ($relaisId != "") {
|
178 |
+
$helper = Mage::helper('chronorelais/webservice');
|
179 |
+
$relais = $helper->getDetailRelaisPoint($relaisId);
|
180 |
+
|
181 |
+
if ($relais) {
|
182 |
+
$address->setCity($relais->localite)
|
183 |
+
->setPostcode($relais->codePostal)
|
184 |
+
->setStreet(trim($relais->adresse1 . "\n" . $relais->adresse2 . " " . $relais->adresse3))
|
185 |
+
->setCompany($relais->nomEnseigne)
|
186 |
+
->setWRelayPointCode($relais->identifiantChronopostPointA2PAS)
|
187 |
+
->save()
|
188 |
+
->setCollectShippingRates(true);
|
189 |
+
|
190 |
+
$_SESSION["customer_shipping_address_reference"]["available"] = true;
|
191 |
+
}
|
192 |
+
} else {
|
193 |
+
/*$result['error'] = true;
|
194 |
+
$result['message'] = Mage::helper('chronorelais')->__('Veuillez sélectionner votre point relais');
|
195 |
+
echo Mage::helper('core')->jsonEncode($result);
|
196 |
+
exit;*/
|
197 |
+
}
|
198 |
+
}
|
199 |
+
|
200 |
+
/* Chronopostsrdv */
|
201 |
+
if(strpos($shippingMethodSelected,'chronopostsrdv') !== false) {
|
202 |
+
$rdvInfo = $_SESSION['chronopostsrdv_creneaux_info'];
|
203 |
+
|
204 |
+
if ($rdvInfo != "") {
|
205 |
+
$helper = Mage::helper('chronorelais/webservice');
|
206 |
+
|
207 |
+
/* vérification creneau ok */
|
208 |
+
$confirm = $helper->confirmDeliverySlot($rdvInfo);
|
209 |
+
|
210 |
+
if($confirm->return->code == 0) {
|
211 |
+
|
212 |
+
$rdvInfo['productCode'] = $confirm->return->productService->productCode;
|
213 |
+
$rdvInfo['serviceCode'] = $confirm->return->productService->serviceCode;
|
214 |
+
|
215 |
+
/* Important : permet de mettre à jour libellé method + prix */
|
216 |
+
$address->setChronopostsrdvCreneauxInfo(json_encode($rdvInfo))
|
217 |
+
->setCollectShippingRates(true)->collectShippingRates()->save();
|
218 |
+
|
219 |
+
} else {
|
220 |
+
$result['error'] = true;
|
221 |
+
$result['message'] = Mage::helper('chronorelais')->__($confirm->return->message);
|
222 |
+
echo Mage::helper('core')->jsonEncode($result);
|
223 |
+
exit;
|
224 |
+
}
|
225 |
+
|
226 |
+
} else {
|
227 |
+
if(!Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')) {
|
228 |
+
$result['error'] = true;
|
229 |
+
$result['message'] = Mage::helper('chronorelais')->__('Veuillez sélectionner votre horaire de rendez-vous');
|
230 |
+
echo Mage::helper('core')->jsonEncode($result);
|
231 |
+
exit;
|
232 |
+
}
|
233 |
+
}
|
234 |
+
}
|
235 |
+
|
236 |
+
$methodTitle = "";
|
237 |
+
if (isset($relais->localite)) {
|
238 |
+
$methodTitle = ' - ' . $relais->nomEnseigne . ' - ' . trim($relais->adresse1 . " " . $relais->adresse2 . " " . $relais->adresse3) . ' - ' . $relais->codePostal . ' - ' . $relais->localite;
|
239 |
+
}
|
240 |
+
if ($method) {
|
241 |
+
foreach ($address->getAllShippingRates() as $rate) {
|
242 |
+
if ($rate->getCode() == $method) {
|
243 |
+
$address->setShippingDescription($rate->getCarrierTitle() . ' - ' . $rate->getMethodTitle() . $methodTitle);
|
244 |
+
break;
|
245 |
+
}
|
246 |
+
}
|
247 |
+
}
|
248 |
+
//ENDWEC chronorelais
|
249 |
+
}
|
250 |
+
|
251 |
+
public function checkRelayPoint($observer) {
|
252 |
+
|
253 |
+
if(Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links')) {
|
254 |
+
$_quote = Mage::helper('checkout')->getQuote();
|
255 |
+
$address = $_quote->getShippingAddress();
|
256 |
+
|
257 |
+
$shippingMethodSelected = $address->getShippingMethod();
|
258 |
+
|
259 |
+
if(strpos($shippingMethodSelected,'chronorelais') !== false) {
|
260 |
+
$relaisId = $_SESSION['chronopost_relais_id'];
|
261 |
+
if ($relaisId == "") {
|
262 |
+
Mage::throwException(Mage::helper('checkout')->__('Veuillez sélectionner votre point relais'));
|
263 |
+
}
|
264 |
+
}
|
265 |
+
}
|
266 |
+
|
267 |
+
unset($_SESSION['chronopostsrdv_creneaux_info']);
|
268 |
+
}
|
269 |
+
|
270 |
+
|
271 |
}
|
app/code/community/Chronopost/Chronorelais/Model/Sales/Quote/Address/Total/Shipping.php
CHANGED
@@ -1,206 +1,206 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Magento
|
4 |
-
*
|
5 |
-
* NOTICE OF LICENSE
|
6 |
-
*
|
7 |
-
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
-
* that is bundled with this package in the file LICENSE.txt.
|
9 |
-
* It is also available through the world-wide-web at this URL:
|
10 |
-
* http://opensource.org/licenses/osl-3.0.php
|
11 |
-
* If you did not receive a copy of the license and are unable to
|
12 |
-
* obtain it through the world-wide-web, please send an email
|
13 |
-
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
-
*
|
15 |
-
* DISCLAIMER
|
16 |
-
*
|
17 |
-
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
-
* versions in the future. If you wish to customize Magento for your
|
19 |
-
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
-
*
|
21 |
-
* @category Mage
|
22 |
-
* @package Mage_Sales
|
23 |
-
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
24 |
-
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
-
*/
|
26 |
-
|
27 |
-
|
28 |
-
class Chronopost_Chronorelais_Model_Sales_Quote_Address_Total_Shipping extends Mage_Sales_Model_Quote_Address_Total_Abstract
|
29 |
-
{
|
30 |
-
public function __construct()
|
31 |
-
{
|
32 |
-
$this->setCode('shipping');
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Collect totals information about shipping
|
37 |
-
*
|
38 |
-
* @param Mage_Sales_Model_Quote_Address $address
|
39 |
-
* @return Mage_Sales_Model_Quote_Address_Total_Shipping
|
40 |
-
*/
|
41 |
-
public function collect(Mage_Sales_Model_Quote_Address $address)
|
42 |
-
{
|
43 |
-
parent::collect($address);
|
44 |
-
|
45 |
-
$address->setWeight(0);
|
46 |
-
$address->setFreeMethodWeight(0);
|
47 |
-
$this->_setAmount(0)
|
48 |
-
->_setBaseAmount(0);
|
49 |
-
|
50 |
-
$items = $this->_getAddressItems($address);
|
51 |
-
if (!count($items)) {
|
52 |
-
return $this;
|
53 |
-
}
|
54 |
-
|
55 |
-
$method = $address->getShippingMethod();
|
56 |
-
$freeAddress= $address->getFreeShipping();
|
57 |
-
|
58 |
-
$addressWeight = $address->getWeight();
|
59 |
-
$freeMethodWeight = $address->getFreeMethodWeight();
|
60 |
-
|
61 |
-
$addressQty = 0;
|
62 |
-
|
63 |
-
foreach ($items as $item) {
|
64 |
-
/**
|
65 |
-
* Skip if this item is virtual
|
66 |
-
*/
|
67 |
-
if ($item->getProduct()->isVirtual()) {
|
68 |
-
continue;
|
69 |
-
}
|
70 |
-
|
71 |
-
/**
|
72 |
-
* Children weight we calculate for parent
|
73 |
-
*/
|
74 |
-
if ($item->getParentItem()) {
|
75 |
-
continue;
|
76 |
-
}
|
77 |
-
|
78 |
-
if ($item->getHasChildren() && $item->isShipSeparately()) {
|
79 |
-
foreach ($item->getChildren() as $child) {
|
80 |
-
if ($child->getProduct()->isVirtual()) {
|
81 |
-
continue;
|
82 |
-
}
|
83 |
-
$addressQty += $child->getTotalQty();
|
84 |
-
|
85 |
-
if (!$item->getProduct()->getWeightType()) {
|
86 |
-
$itemWeight = $child->getWeight();
|
87 |
-
$itemQty = $child->getTotalQty();
|
88 |
-
$rowWeight = $itemWeight*$itemQty;
|
89 |
-
$addressWeight += $rowWeight;
|
90 |
-
if ($freeAddress || $child->getFreeShipping()===true) {
|
91 |
-
$rowWeight = 0;
|
92 |
-
} elseif (is_numeric($child->getFreeShipping())) {
|
93 |
-
$freeQty = $child->getFreeShipping();
|
94 |
-
if ($itemQty>$freeQty) {
|
95 |
-
$rowWeight = $itemWeight*($itemQty-$freeQty);
|
96 |
-
}
|
97 |
-
else {
|
98 |
-
$rowWeight = 0;
|
99 |
-
}
|
100 |
-
}
|
101 |
-
$freeMethodWeight += $rowWeight;
|
102 |
-
$item->setRowWeight($rowWeight);
|
103 |
-
}
|
104 |
-
}
|
105 |
-
if ($item->getProduct()->getWeightType()) {
|
106 |
-
$itemWeight = $item->getWeight();
|
107 |
-
$rowWeight = $itemWeight*$item->getQty();
|
108 |
-
$addressWeight+= $rowWeight;
|
109 |
-
if ($freeAddress || $item->getFreeShipping()===true) {
|
110 |
-
$rowWeight = 0;
|
111 |
-
} elseif (is_numeric($item->getFreeShipping())) {
|
112 |
-
$freeQty = $item->getFreeShipping();
|
113 |
-
if ($item->getQty()>$freeQty) {
|
114 |
-
$rowWeight = $itemWeight*($item->getQty()-$freeQty);
|
115 |
-
}
|
116 |
-
else {
|
117 |
-
$rowWeight = 0;
|
118 |
-
}
|
119 |
-
}
|
120 |
-
$freeMethodWeight+= $rowWeight;
|
121 |
-
$item->setRowWeight($rowWeight);
|
122 |
-
}
|
123 |
-
}
|
124 |
-
else {
|
125 |
-
if (!$item->getProduct()->isVirtual()) {
|
126 |
-
$addressQty += $item->getQty();
|
127 |
-
}
|
128 |
-
$itemWeight = $item->getWeight();
|
129 |
-
$rowWeight = $itemWeight*$item->getQty();
|
130 |
-
$addressWeight+= $rowWeight;
|
131 |
-
if ($freeAddress || $item->getFreeShipping()===true) {
|
132 |
-
$rowWeight = 0;
|
133 |
-
} elseif (is_numeric($item->getFreeShipping())) {
|
134 |
-
$freeQty = $item->getFreeShipping();
|
135 |
-
if ($item->getQty()>$freeQty) {
|
136 |
-
$rowWeight = $itemWeight*($item->getQty()-$freeQty);
|
137 |
-
}
|
138 |
-
else {
|
139 |
-
$rowWeight = 0;
|
140 |
-
}
|
141 |
-
}
|
142 |
-
$freeMethodWeight+= $rowWeight;
|
143 |
-
$item->setRowWeight($rowWeight);
|
144 |
-
}
|
145 |
-
}
|
146 |
-
|
147 |
-
if (isset($addressQty)) {
|
148 |
-
$address->setItemQty($addressQty);
|
149 |
-
}
|
150 |
-
|
151 |
-
$address->setWeight($addressWeight);
|
152 |
-
$address->setFreeMethodWeight($freeMethodWeight);
|
153 |
-
|
154 |
-
$address->collectShippingRates();
|
155 |
-
|
156 |
-
$this->_setAmount(0)
|
157 |
-
->_setBaseAmount(0);
|
158 |
-
|
159 |
-
$method = $address->getShippingMethod();
|
160 |
-
|
161 |
-
if ($method) {
|
162 |
-
foreach ($address->getAllShippingRates() as $rate) {
|
163 |
-
if ($rate->getCode()==$method) {
|
164 |
-
$amountPrice = $address->getQuote()->getStore()->convertPrice($rate->getPrice(), false);
|
165 |
-
$this->_setAmount($amountPrice);
|
166 |
-
$this->_setBaseAmount($rate->getPrice());
|
167 |
-
if(!$address->getShippingDescription()) {
|
168 |
-
$address->setShippingDescription($rate->getCarrierTitle().' - '.$rate->getMethodTitle());
|
169 |
-
}
|
170 |
-
break;
|
171 |
-
}
|
172 |
-
}
|
173 |
-
}
|
174 |
-
|
175 |
-
return $this;
|
176 |
-
}
|
177 |
-
|
178 |
-
/**
|
179 |
-
* Add shipping totals information to address object
|
180 |
-
*
|
181 |
-
* @param Mage_Sales_Model_Quote_Address $address
|
182 |
-
* @return Mage_Sales_Model_Quote_Address_Total_Shipping
|
183 |
-
*/
|
184 |
-
public function fetch(Mage_Sales_Model_Quote_Address $address)
|
185 |
-
{
|
186 |
-
$amount = $address->getShippingAmount();
|
187 |
-
if ($amount!=0 || $address->getShippingDescription()) {
|
188 |
-
$address->addTotal(array(
|
189 |
-
'code'=>$this->getCode(),
|
190 |
-
'title'=>Mage::helper('sales')->__('Shipping & Handling').' ('.$address->getShippingDescription().')',
|
191 |
-
'value'=>$address->getShippingAmount()
|
192 |
-
));
|
193 |
-
}
|
194 |
-
return $this;
|
195 |
-
}
|
196 |
-
|
197 |
-
/**
|
198 |
-
* Get Shipping label
|
199 |
-
*
|
200 |
-
* @return string
|
201 |
-
*/
|
202 |
-
public function getLabel()
|
203 |
-
{
|
204 |
-
return Mage::helper('sales')->__('Shipping');
|
205 |
-
}
|
206 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Sales
|
23 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
class Chronopost_Chronorelais_Model_Sales_Quote_Address_Total_Shipping extends Mage_Sales_Model_Quote_Address_Total_Abstract
|
29 |
+
{
|
30 |
+
public function __construct()
|
31 |
+
{
|
32 |
+
$this->setCode('shipping');
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Collect totals information about shipping
|
37 |
+
*
|
38 |
+
* @param Mage_Sales_Model_Quote_Address $address
|
39 |
+
* @return Mage_Sales_Model_Quote_Address_Total_Shipping
|
40 |
+
*/
|
41 |
+
public function collect(Mage_Sales_Model_Quote_Address $address)
|
42 |
+
{
|
43 |
+
parent::collect($address);
|
44 |
+
|
45 |
+
$address->setWeight(0);
|
46 |
+
$address->setFreeMethodWeight(0);
|
47 |
+
$this->_setAmount(0)
|
48 |
+
->_setBaseAmount(0);
|
49 |
+
|
50 |
+
$items = $this->_getAddressItems($address);
|
51 |
+
if (!count($items)) {
|
52 |
+
return $this;
|
53 |
+
}
|
54 |
+
|
55 |
+
$method = $address->getShippingMethod();
|
56 |
+
$freeAddress= $address->getFreeShipping();
|
57 |
+
|
58 |
+
$addressWeight = $address->getWeight();
|
59 |
+
$freeMethodWeight = $address->getFreeMethodWeight();
|
60 |
+
|
61 |
+
$addressQty = 0;
|
62 |
+
|
63 |
+
foreach ($items as $item) {
|
64 |
+
/**
|
65 |
+
* Skip if this item is virtual
|
66 |
+
*/
|
67 |
+
if ($item->getProduct()->isVirtual()) {
|
68 |
+
continue;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Children weight we calculate for parent
|
73 |
+
*/
|
74 |
+
if ($item->getParentItem()) {
|
75 |
+
continue;
|
76 |
+
}
|
77 |
+
|
78 |
+
if ($item->getHasChildren() && $item->isShipSeparately()) {
|
79 |
+
foreach ($item->getChildren() as $child) {
|
80 |
+
if ($child->getProduct()->isVirtual()) {
|
81 |
+
continue;
|
82 |
+
}
|
83 |
+
$addressQty += $child->getTotalQty();
|
84 |
+
|
85 |
+
if (!$item->getProduct()->getWeightType()) {
|
86 |
+
$itemWeight = $child->getWeight();
|
87 |
+
$itemQty = $child->getTotalQty();
|
88 |
+
$rowWeight = $itemWeight*$itemQty;
|
89 |
+
$addressWeight += $rowWeight;
|
90 |
+
if ($freeAddress || $child->getFreeShipping()===true) {
|
91 |
+
$rowWeight = 0;
|
92 |
+
} elseif (is_numeric($child->getFreeShipping())) {
|
93 |
+
$freeQty = $child->getFreeShipping();
|
94 |
+
if ($itemQty>$freeQty) {
|
95 |
+
$rowWeight = $itemWeight*($itemQty-$freeQty);
|
96 |
+
}
|
97 |
+
else {
|
98 |
+
$rowWeight = 0;
|
99 |
+
}
|
100 |
+
}
|
101 |
+
$freeMethodWeight += $rowWeight;
|
102 |
+
$item->setRowWeight($rowWeight);
|
103 |
+
}
|
104 |
+
}
|
105 |
+
if ($item->getProduct()->getWeightType()) {
|
106 |
+
$itemWeight = $item->getWeight();
|
107 |
+
$rowWeight = $itemWeight*$item->getQty();
|
108 |
+
$addressWeight+= $rowWeight;
|
109 |
+
if ($freeAddress || $item->getFreeShipping()===true) {
|
110 |
+
$rowWeight = 0;
|
111 |
+
} elseif (is_numeric($item->getFreeShipping())) {
|
112 |
+
$freeQty = $item->getFreeShipping();
|
113 |
+
if ($item->getQty()>$freeQty) {
|
114 |
+
$rowWeight = $itemWeight*($item->getQty()-$freeQty);
|
115 |
+
}
|
116 |
+
else {
|
117 |
+
$rowWeight = 0;
|
118 |
+
}
|
119 |
+
}
|
120 |
+
$freeMethodWeight+= $rowWeight;
|
121 |
+
$item->setRowWeight($rowWeight);
|
122 |
+
}
|
123 |
+
}
|
124 |
+
else {
|
125 |
+
if (!$item->getProduct()->isVirtual()) {
|
126 |
+
$addressQty += $item->getQty();
|
127 |
+
}
|
128 |
+
$itemWeight = $item->getWeight();
|
129 |
+
$rowWeight = $itemWeight*$item->getQty();
|
130 |
+
$addressWeight+= $rowWeight;
|
131 |
+
if ($freeAddress || $item->getFreeShipping()===true) {
|
132 |
+
$rowWeight = 0;
|
133 |
+
} elseif (is_numeric($item->getFreeShipping())) {
|
134 |
+
$freeQty = $item->getFreeShipping();
|
135 |
+
if ($item->getQty()>$freeQty) {
|
136 |
+
$rowWeight = $itemWeight*($item->getQty()-$freeQty);
|
137 |
+
}
|
138 |
+
else {
|
139 |
+
$rowWeight = 0;
|
140 |
+
}
|
141 |
+
}
|
142 |
+
$freeMethodWeight+= $rowWeight;
|
143 |
+
$item->setRowWeight($rowWeight);
|
144 |
+
}
|
145 |
+
}
|
146 |
+
|
147 |
+
if (isset($addressQty)) {
|
148 |
+
$address->setItemQty($addressQty);
|
149 |
+
}
|
150 |
+
|
151 |
+
$address->setWeight($addressWeight);
|
152 |
+
$address->setFreeMethodWeight($freeMethodWeight);
|
153 |
+
|
154 |
+
$address->collectShippingRates();
|
155 |
+
|
156 |
+
$this->_setAmount(0)
|
157 |
+
->_setBaseAmount(0);
|
158 |
+
|
159 |
+
$method = $address->getShippingMethod();
|
160 |
+
|
161 |
+
if ($method) {
|
162 |
+
foreach ($address->getAllShippingRates() as $rate) {
|
163 |
+
if ($rate->getCode()==$method) {
|
164 |
+
$amountPrice = $address->getQuote()->getStore()->convertPrice($rate->getPrice(), false);
|
165 |
+
$this->_setAmount($amountPrice);
|
166 |
+
$this->_setBaseAmount($rate->getPrice());
|
167 |
+
if(!$address->getShippingDescription()) {
|
168 |
+
$address->setShippingDescription($rate->getCarrierTitle().' - '.$rate->getMethodTitle());
|
169 |
+
}
|
170 |
+
break;
|
171 |
+
}
|
172 |
+
}
|
173 |
+
}
|
174 |
+
|
175 |
+
return $this;
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* Add shipping totals information to address object
|
180 |
+
*
|
181 |
+
* @param Mage_Sales_Model_Quote_Address $address
|
182 |
+
* @return Mage_Sales_Model_Quote_Address_Total_Shipping
|
183 |
+
*/
|
184 |
+
public function fetch(Mage_Sales_Model_Quote_Address $address)
|
185 |
+
{
|
186 |
+
$amount = $address->getShippingAmount();
|
187 |
+
if ($amount!=0 || $address->getShippingDescription()) {
|
188 |
+
$address->addTotal(array(
|
189 |
+
'code'=>$this->getCode(),
|
190 |
+
'title'=>Mage::helper('sales')->__('Shipping & Handling').' ('.$address->getShippingDescription().')',
|
191 |
+
'value'=>$address->getShippingAmount()
|
192 |
+
));
|
193 |
+
}
|
194 |
+
return $this;
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
* Get Shipping label
|
199 |
+
*
|
200 |
+
* @return string
|
201 |
+
*/
|
202 |
+
public function getLabel()
|
203 |
+
{
|
204 |
+
return Mage::helper('sales')->__('Shipping');
|
205 |
+
}
|
206 |
+
}
|
app/code/community/Chronopost/Chronorelais/Model/Sales/Quote/Address/Total/Shipping.toDel.php
CHANGED
@@ -1,206 +1,206 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Magento
|
4 |
-
*
|
5 |
-
* NOTICE OF LICENSE
|
6 |
-
*
|
7 |
-
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
-
* that is bundled with this package in the file LICENSE.txt.
|
9 |
-
* It is also available through the world-wide-web at this URL:
|
10 |
-
* http://opensource.org/licenses/osl-3.0.php
|
11 |
-
* If you did not receive a copy of the license and are unable to
|
12 |
-
* obtain it through the world-wide-web, please send an email
|
13 |
-
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
-
*
|
15 |
-
* DISCLAIMER
|
16 |
-
*
|
17 |
-
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
-
* versions in the future. If you wish to customize Magento for your
|
19 |
-
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
-
*
|
21 |
-
* @category Mage
|
22 |
-
* @package Mage_Sales
|
23 |
-
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
24 |
-
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
-
*/
|
26 |
-
|
27 |
-
|
28 |
-
class Chronopost_Chronorelais_Model_Sales_Quote_Address_Total_Shipping extends Mage_Sales_Model_Quote_Address_Total_Abstract
|
29 |
-
{
|
30 |
-
public function __construct()
|
31 |
-
{
|
32 |
-
$this->setCode('shipping');
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Collect totals information about shipping
|
37 |
-
*
|
38 |
-
* @param Mage_Sales_Model_Quote_Address $address
|
39 |
-
* @return Mage_Sales_Model_Quote_Address_Total_Shipping
|
40 |
-
*/
|
41 |
-
public function collect(Mage_Sales_Model_Quote_Address $address)
|
42 |
-
{
|
43 |
-
parent::collect($address);
|
44 |
-
|
45 |
-
$address->setWeight(0);
|
46 |
-
$address->setFreeMethodWeight(0);
|
47 |
-
$this->_setAmount(0)
|
48 |
-
->_setBaseAmount(0);
|
49 |
-
|
50 |
-
$items = $this->_getAddressItems($address);
|
51 |
-
if (!count($items)) {
|
52 |
-
return $this;
|
53 |
-
}
|
54 |
-
|
55 |
-
$method = $address->getShippingMethod();
|
56 |
-
$freeAddress= $address->getFreeShipping();
|
57 |
-
|
58 |
-
$addressWeight = $address->getWeight();
|
59 |
-
$freeMethodWeight = $address->getFreeMethodWeight();
|
60 |
-
|
61 |
-
$addressQty = 0;
|
62 |
-
|
63 |
-
foreach ($items as $item) {
|
64 |
-
/**
|
65 |
-
* Skip if this item is virtual
|
66 |
-
*/
|
67 |
-
if ($item->getProduct()->isVirtual()) {
|
68 |
-
continue;
|
69 |
-
}
|
70 |
-
|
71 |
-
/**
|
72 |
-
* Children weight we calculate for parent
|
73 |
-
*/
|
74 |
-
if ($item->getParentItem()) {
|
75 |
-
continue;
|
76 |
-
}
|
77 |
-
|
78 |
-
if ($item->getHasChildren() && $item->isShipSeparately()) {
|
79 |
-
foreach ($item->getChildren() as $child) {
|
80 |
-
if ($child->getProduct()->isVirtual()) {
|
81 |
-
continue;
|
82 |
-
}
|
83 |
-
$addressQty += $child->getTotalQty();
|
84 |
-
|
85 |
-
if (!$item->getProduct()->getWeightType()) {
|
86 |
-
$itemWeight = $child->getWeight();
|
87 |
-
$itemQty = $child->getTotalQty();
|
88 |
-
$rowWeight = $itemWeight*$itemQty;
|
89 |
-
$addressWeight += $rowWeight;
|
90 |
-
if ($freeAddress || $child->getFreeShipping()===true) {
|
91 |
-
$rowWeight = 0;
|
92 |
-
} elseif (is_numeric($child->getFreeShipping())) {
|
93 |
-
$freeQty = $child->getFreeShipping();
|
94 |
-
if ($itemQty>$freeQty) {
|
95 |
-
$rowWeight = $itemWeight*($itemQty-$freeQty);
|
96 |
-
}
|
97 |
-
else {
|
98 |
-
$rowWeight = 0;
|
99 |
-
}
|
100 |
-
}
|
101 |
-
$freeMethodWeight += $rowWeight;
|
102 |
-
$item->setRowWeight($rowWeight);
|
103 |
-
}
|
104 |
-
}
|
105 |
-
if ($item->getProduct()->getWeightType()) {
|
106 |
-
$itemWeight = $item->getWeight();
|
107 |
-
$rowWeight = $itemWeight*$item->getQty();
|
108 |
-
$addressWeight+= $rowWeight;
|
109 |
-
if ($freeAddress || $item->getFreeShipping()===true) {
|
110 |
-
$rowWeight = 0;
|
111 |
-
} elseif (is_numeric($item->getFreeShipping())) {
|
112 |
-
$freeQty = $item->getFreeShipping();
|
113 |
-
if ($item->getQty()>$freeQty) {
|
114 |
-
$rowWeight = $itemWeight*($item->getQty()-$freeQty);
|
115 |
-
}
|
116 |
-
else {
|
117 |
-
$rowWeight = 0;
|
118 |
-
}
|
119 |
-
}
|
120 |
-
$freeMethodWeight+= $rowWeight;
|
121 |
-
$item->setRowWeight($rowWeight);
|
122 |
-
}
|
123 |
-
}
|
124 |
-
else {
|
125 |
-
if (!$item->getProduct()->isVirtual()) {
|
126 |
-
$addressQty += $item->getQty();
|
127 |
-
}
|
128 |
-
$itemWeight = $item->getWeight();
|
129 |
-
$rowWeight = $itemWeight*$item->getQty();
|
130 |
-
$addressWeight+= $rowWeight;
|
131 |
-
if ($freeAddress || $item->getFreeShipping()===true) {
|
132 |
-
$rowWeight = 0;
|
133 |
-
} elseif (is_numeric($item->getFreeShipping())) {
|
134 |
-
$freeQty = $item->getFreeShipping();
|
135 |
-
if ($item->getQty()>$freeQty) {
|
136 |
-
$rowWeight = $itemWeight*($item->getQty()-$freeQty);
|
137 |
-
}
|
138 |
-
else {
|
139 |
-
$rowWeight = 0;
|
140 |
-
}
|
141 |
-
}
|
142 |
-
$freeMethodWeight+= $rowWeight;
|
143 |
-
$item->setRowWeight($rowWeight);
|
144 |
-
}
|
145 |
-
}
|
146 |
-
|
147 |
-
if (isset($addressQty)) {
|
148 |
-
$address->setItemQty($addressQty);
|
149 |
-
}
|
150 |
-
|
151 |
-
$address->setWeight($addressWeight);
|
152 |
-
$address->setFreeMethodWeight($freeMethodWeight);
|
153 |
-
|
154 |
-
$address->collectShippingRates();
|
155 |
-
|
156 |
-
$this->_setAmount(0)
|
157 |
-
->_setBaseAmount(0);
|
158 |
-
|
159 |
-
$method = $address->getShippingMethod();
|
160 |
-
|
161 |
-
if ($method) {
|
162 |
-
foreach ($address->getAllShippingRates() as $rate) {
|
163 |
-
if ($rate->getCode()==$method) {
|
164 |
-
$amountPrice = $address->getQuote()->getStore()->convertPrice($rate->getPrice(), false);
|
165 |
-
$this->_setAmount($amountPrice);
|
166 |
-
$this->_setBaseAmount($rate->getPrice());
|
167 |
-
if(!$address->getShippingDescription()) {
|
168 |
-
$address->setShippingDescription($rate->getCarrierTitle().' - '.$rate->getMethodTitle());
|
169 |
-
}
|
170 |
-
break;
|
171 |
-
}
|
172 |
-
}
|
173 |
-
}
|
174 |
-
|
175 |
-
return $this;
|
176 |
-
}
|
177 |
-
|
178 |
-
/**
|
179 |
-
* Add shipping totals information to address object
|
180 |
-
*
|
181 |
-
* @param Mage_Sales_Model_Quote_Address $address
|
182 |
-
* @return Mage_Sales_Model_Quote_Address_Total_Shipping
|
183 |
-
*/
|
184 |
-
public function fetch(Mage_Sales_Model_Quote_Address $address)
|
185 |
-
{
|
186 |
-
$amount = $address->getShippingAmount();
|
187 |
-
if ($amount!=0 || $address->getShippingDescription()) {
|
188 |
-
$address->addTotal(array(
|
189 |
-
'code'=>$this->getCode(),
|
190 |
-
'title'=>Mage::helper('sales')->__('Shipping & Handling').' ('.$address->getShippingDescription().')',
|
191 |
-
'value'=>$address->getShippingAmount()
|
192 |
-
));
|
193 |
-
}
|
194 |
-
return $this;
|
195 |
-
}
|
196 |
-
|
197 |
-
/**
|
198 |
-
* Get Shipping label
|
199 |
-
*
|
200 |
-
* @return string
|
201 |
-
*/
|
202 |
-
public function getLabel()
|
203 |
-
{
|
204 |
-
return Mage::helper('sales')->__('Shipping');
|
205 |
-
}
|
206 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Sales
|
23 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
class Chronopost_Chronorelais_Model_Sales_Quote_Address_Total_Shipping extends Mage_Sales_Model_Quote_Address_Total_Abstract
|
29 |
+
{
|
30 |
+
public function __construct()
|
31 |
+
{
|
32 |
+
$this->setCode('shipping');
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Collect totals information about shipping
|
37 |
+
*
|
38 |
+
* @param Mage_Sales_Model_Quote_Address $address
|
39 |
+
* @return Mage_Sales_Model_Quote_Address_Total_Shipping
|
40 |
+
*/
|
41 |
+
public function collect(Mage_Sales_Model_Quote_Address $address)
|
42 |
+
{
|
43 |
+
parent::collect($address);
|
44 |
+
|
45 |
+
$address->setWeight(0);
|
46 |
+
$address->setFreeMethodWeight(0);
|
47 |
+
$this->_setAmount(0)
|
48 |
+
->_setBaseAmount(0);
|
49 |
+
|
50 |
+
$items = $this->_getAddressItems($address);
|
51 |
+
if (!count($items)) {
|
52 |
+
return $this;
|
53 |
+
}
|
54 |
+
|
55 |
+
$method = $address->getShippingMethod();
|
56 |
+
$freeAddress= $address->getFreeShipping();
|
57 |
+
|
58 |
+
$addressWeight = $address->getWeight();
|
59 |
+
$freeMethodWeight = $address->getFreeMethodWeight();
|
60 |
+
|
61 |
+
$addressQty = 0;
|
62 |
+
|
63 |
+
foreach ($items as $item) {
|
64 |
+
/**
|
65 |
+
* Skip if this item is virtual
|
66 |
+
*/
|
67 |
+
if ($item->getProduct()->isVirtual()) {
|
68 |
+
continue;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Children weight we calculate for parent
|
73 |
+
*/
|
74 |
+
if ($item->getParentItem()) {
|
75 |
+
continue;
|
76 |
+
}
|
77 |
+
|
78 |
+
if ($item->getHasChildren() && $item->isShipSeparately()) {
|
79 |
+
foreach ($item->getChildren() as $child) {
|
80 |
+
if ($child->getProduct()->isVirtual()) {
|
81 |
+
continue;
|
82 |
+
}
|
83 |
+
$addressQty += $child->getTotalQty();
|
84 |
+
|
85 |
+
if (!$item->getProduct()->getWeightType()) {
|
86 |
+
$itemWeight = $child->getWeight();
|
87 |
+
$itemQty = $child->getTotalQty();
|
88 |
+
$rowWeight = $itemWeight*$itemQty;
|
89 |
+
$addressWeight += $rowWeight;
|
90 |
+
if ($freeAddress || $child->getFreeShipping()===true) {
|
91 |
+
$rowWeight = 0;
|
92 |
+
} elseif (is_numeric($child->getFreeShipping())) {
|
93 |
+
$freeQty = $child->getFreeShipping();
|
94 |
+
if ($itemQty>$freeQty) {
|
95 |
+
$rowWeight = $itemWeight*($itemQty-$freeQty);
|
96 |
+
}
|
97 |
+
else {
|
98 |
+
$rowWeight = 0;
|
99 |
+
}
|
100 |
+
}
|
101 |
+
$freeMethodWeight += $rowWeight;
|
102 |
+
$item->setRowWeight($rowWeight);
|
103 |
+
}
|
104 |
+
}
|
105 |
+
if ($item->getProduct()->getWeightType()) {
|
106 |
+
$itemWeight = $item->getWeight();
|
107 |
+
$rowWeight = $itemWeight*$item->getQty();
|
108 |
+
$addressWeight+= $rowWeight;
|
109 |
+
if ($freeAddress || $item->getFreeShipping()===true) {
|
110 |
+
$rowWeight = 0;
|
111 |
+
} elseif (is_numeric($item->getFreeShipping())) {
|
112 |
+
$freeQty = $item->getFreeShipping();
|
113 |
+
if ($item->getQty()>$freeQty) {
|
114 |
+
$rowWeight = $itemWeight*($item->getQty()-$freeQty);
|
115 |
+
}
|
116 |
+
else {
|
117 |
+
$rowWeight = 0;
|
118 |
+
}
|
119 |
+
}
|
120 |
+
$freeMethodWeight+= $rowWeight;
|
121 |
+
$item->setRowWeight($rowWeight);
|
122 |
+
}
|
123 |
+
}
|
124 |
+
else {
|
125 |
+
if (!$item->getProduct()->isVirtual()) {
|
126 |
+
$addressQty += $item->getQty();
|
127 |
+
}
|
128 |
+
$itemWeight = $item->getWeight();
|
129 |
+
$rowWeight = $itemWeight*$item->getQty();
|
130 |
+
$addressWeight+= $rowWeight;
|
131 |
+
if ($freeAddress || $item->getFreeShipping()===true) {
|
132 |
+
$rowWeight = 0;
|
133 |
+
} elseif (is_numeric($item->getFreeShipping())) {
|
134 |
+
$freeQty = $item->getFreeShipping();
|
135 |
+
if ($item->getQty()>$freeQty) {
|
136 |
+
$rowWeight = $itemWeight*($item->getQty()-$freeQty);
|
137 |
+
}
|
138 |
+
else {
|
139 |
+
$rowWeight = 0;
|
140 |
+
}
|
141 |
+
}
|
142 |
+
$freeMethodWeight+= $rowWeight;
|
143 |
+
$item->setRowWeight($rowWeight);
|
144 |
+
}
|
145 |
+
}
|
146 |
+
|
147 |
+
if (isset($addressQty)) {
|
148 |
+
$address->setItemQty($addressQty);
|
149 |
+
}
|
150 |
+
|
151 |
+
$address->setWeight($addressWeight);
|
152 |
+
$address->setFreeMethodWeight($freeMethodWeight);
|
153 |
+
|
154 |
+
$address->collectShippingRates();
|
155 |
+
|
156 |
+
$this->_setAmount(0)
|
157 |
+
->_setBaseAmount(0);
|
158 |
+
|
159 |
+
$method = $address->getShippingMethod();
|
160 |
+
|
161 |
+
if ($method) {
|
162 |
+
foreach ($address->getAllShippingRates() as $rate) {
|
163 |
+
if ($rate->getCode()==$method) {
|
164 |
+
$amountPrice = $address->getQuote()->getStore()->convertPrice($rate->getPrice(), false);
|
165 |
+
$this->_setAmount($amountPrice);
|
166 |
+
$this->_setBaseAmount($rate->getPrice());
|
167 |
+
if(!$address->getShippingDescription()) {
|
168 |
+
$address->setShippingDescription($rate->getCarrierTitle().' - '.$rate->getMethodTitle());
|
169 |
+
}
|
170 |
+
break;
|
171 |
+
}
|
172 |
+
}
|
173 |
+
}
|
174 |
+
|
175 |
+
return $this;
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* Add shipping totals information to address object
|
180 |
+
*
|
181 |
+
* @param Mage_Sales_Model_Quote_Address $address
|
182 |
+
* @return Mage_Sales_Model_Quote_Address_Total_Shipping
|
183 |
+
*/
|
184 |
+
public function fetch(Mage_Sales_Model_Quote_Address $address)
|
185 |
+
{
|
186 |
+
$amount = $address->getShippingAmount();
|
187 |
+
if ($amount!=0 || $address->getShippingDescription()) {
|
188 |
+
$address->addTotal(array(
|
189 |
+
'code'=>$this->getCode(),
|
190 |
+
'title'=>Mage::helper('sales')->__('Shipping & Handling').' ('.$address->getShippingDescription().')',
|
191 |
+
'value'=>$address->getShippingAmount()
|
192 |
+
));
|
193 |
+
}
|
194 |
+
return $this;
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
* Get Shipping label
|
199 |
+
*
|
200 |
+
* @return string
|
201 |
+
*/
|
202 |
+
public function getLabel()
|
203 |
+
{
|
204 |
+
return Mage::helper('sales')->__('Shipping');
|
205 |
+
}
|
206 |
+
}
|
app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/AjaxController.php
CHANGED
@@ -1,432 +1,432 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Magento Chronopost Chronorelais Module
|
5 |
-
*
|
6 |
-
* NOTICE OF LICENSE
|
7 |
-
*
|
8 |
-
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
-
* that is bundled with this package in the file LICENSE.txt.
|
10 |
-
* It is also available through the world-wide-web at this URL:
|
11 |
-
* http://opensource.org/licenses/osl-3.0.php
|
12 |
-
* If you did not receive a copy of the license and are unable to
|
13 |
-
* obtain it through the world-wide-web, please send an email
|
14 |
-
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
-
*
|
16 |
-
* @category Chronopost
|
17 |
-
* @package Chronopost_Chronorelais
|
18 |
-
* @copyright Copyright (c) 2008-10 Owebia (http://www.owebia.com/)
|
19 |
-
* @author Antoine Lemoine
|
20 |
-
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
-
*/
|
22 |
-
class Chronopost_Chronorelais_Adminhtml_Chronorelais_AjaxController extends Chronopost_Chronorelais_Controller_Abstract {
|
23 |
-
|
24 |
-
private function getPropertyHelper($row_id, $property_key, $property) {
|
25 |
-
$cleaned_property = $this->cleanKey($property_key);
|
26 |
-
$prefix = "r-" . $row_id . "-p-" . $cleaned_property;
|
27 |
-
$value = isset($property['original_value']) ? $property['original_value'] : (isset($property['value']) ? $property['value'] : '');
|
28 |
-
|
29 |
-
switch ($property_key) {
|
30 |
-
case 'enabled':
|
31 |
-
$enabled = $value !== false;
|
32 |
-
return "<p><select id=\"" . $prefix . "\" class=\"field\">"
|
33 |
-
. "<option value=\"0\"" . ($enabled ? '' : ' selected="selected"') . ">" . $this->__('Disabled') . "</option>"
|
34 |
-
. "<option value=\"1\"" . ($enabled ? ' selected="selected"' : '') . ">" . $this->__('Enabled') . "</option>"
|
35 |
-
. "</select><p>";
|
36 |
-
break;
|
37 |
-
case 'label':
|
38 |
-
case 'description':
|
39 |
-
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
40 |
-
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Insert') . "</legend>"
|
41 |
-
. "<p>"
|
42 |
-
. $this->button('Destination country', "ocseditor.insertAtCaret(this,'{destination.country.name}');")
|
43 |
-
. $this->button('Cart weight', "ocseditor.insertAtCaret(this,'{cart.weight}');")
|
44 |
-
. $this->button('Cart quantity', "ocseditor.insertAtCaret(this,'{cart.quantity}');")
|
45 |
-
. $this->button('Price including tax', "ocseditor.insertAtCaret(this,'{cart.price_including_tax}');")
|
46 |
-
. $this->button('Price excluding tax', "ocseditor.insertAtCaret(this,'{cart.price_excluding_tax}');")
|
47 |
-
. "</p>"
|
48 |
-
. "</fieldset>";
|
49 |
-
break;
|
50 |
-
case 'fees':
|
51 |
-
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
52 |
-
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Insert') . "</legend>"
|
53 |
-
. "<p><span class=\"buttons-set-label\">" . $this->__('Cart') . "</span>"
|
54 |
-
. $this->button('Weight', "ocseditor.insertAtCaret(this,'{cart.weight}');")
|
55 |
-
. $this->button('Products quantity', "ocseditor.insertAtCaret(this,'{cart.quantity}');")
|
56 |
-
. $this->button('Price including tax', "ocseditor.insertAtCaret(this,'{cart.price_including_tax}');")
|
57 |
-
. $this->button('Price excluding tax', "ocseditor.insertAtCaret(this,'{cart.price_excluding_tax}');")
|
58 |
-
. "</p>"
|
59 |
-
. "<p><span class=\"buttons-set-label\">" . $this->__('Selection') . "</span>"
|
60 |
-
. $this->button('Weight', "ocseditor.insertAtCaret(this,'{selection.weight}');")
|
61 |
-
. $this->button('Products quantity', "ocseditor.insertAtCaret(this,'{selection.quantity}');")
|
62 |
-
. "</p>"
|
63 |
-
. "<p><span class=\"buttons-set-label\">" . $this->__('Product') . "</span>"
|
64 |
-
. $this->button('Weight', "ocseditor.insertAtCaret(this,'{product.weight}');")
|
65 |
-
. $this->button('Quantity', "ocseditor.insertAtCaret(this,'{product.quantity}');")
|
66 |
-
. "</p>"
|
67 |
-
. "</fieldset>";
|
68 |
-
break;
|
69 |
-
case 'conditions':
|
70 |
-
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
71 |
-
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Insert') . "</legend>"
|
72 |
-
. "<p><span class=\"buttons-set-label\">" . $this->__('Cart') . "</span>"
|
73 |
-
. $this->button('Weight', "ocseditor.insertAtCaret(this,'{cart.weight}');")
|
74 |
-
. $this->button('Products quantity', "ocseditor.insertAtCaret(this,'{cart.quantity}');")
|
75 |
-
. $this->button('Price including tax', "ocseditor.insertAtCaret(this,'{cart.price_including_tax}');")
|
76 |
-
. $this->button('Price excluding tax', "ocseditor.insertAtCaret(this,'{cart.price_excluding_tax}');")
|
77 |
-
. "</p>"
|
78 |
-
. "</fieldset>";
|
79 |
-
break;
|
80 |
-
case 'customer_groups':
|
81 |
-
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
82 |
-
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Insert') . "</legend>"
|
83 |
-
. "<p>"
|
84 |
-
. $this->button('Not logged in', "ocseditor.insertAtCaret(this,'NOT LOGGED IN');")
|
85 |
-
. "</p>"
|
86 |
-
. "</fieldset>";
|
87 |
-
break;
|
88 |
-
case 'tracking_url':
|
89 |
-
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
90 |
-
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Insert') . "</legend>"
|
91 |
-
. "<p>"
|
92 |
-
. $this->button('Tracking number', "ocseditor.insertAtCaret(this,'{tracking_number}');")
|
93 |
-
. "</p>"
|
94 |
-
. "</fieldset>";
|
95 |
-
break;
|
96 |
-
case 'destination':
|
97 |
-
case 'origin':
|
98 |
-
$parsed_value = $this->parseAddressFilter($value);
|
99 |
-
$excluding = $parsed_value['excluding'];
|
100 |
-
return "<div class=\"address-filters-property\"><p>"
|
101 |
-
. "<input type=\"radio\" class=\"excluding\" id=\"" . $prefix . "-exluding-0\" name=\"" . $prefix . "-exluding\""
|
102 |
-
. " value=\"0\"" . (!$excluding ? " checked=\"checked\"" : '') . " onclick=\"ocseditor.updateCountries(this);\"/>"
|
103 |
-
. "<label for=\"" . $prefix . "-exluding-0\"> " . $this->__('Limit to') . "</label> "
|
104 |
-
. "<input type=\"radio\" class=\"excluding\" id=\"" . $prefix . "-exluding-1\" name=\"" . $prefix . "-exluding\""
|
105 |
-
. " value=\"1\"" . ($excluding ? " checked=\"checked\"" : '') . " onclick=\"ocseditor.updateCountries(this);\"/>"
|
106 |
-
. "<label for=\"" . $prefix . "-exluding-1\"> " . $this->__('Exclude') . "</label></p>"
|
107 |
-
. "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
108 |
-
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Display') . "</legend>"
|
109 |
-
. "<p>"
|
110 |
-
. $this->button('Display original input', "ocseditor.displayCountry('original-value',this,false);")
|
111 |
-
. $this->button('Display corrected names', "ocseditor.displayCountry('full-value',this,false);")
|
112 |
-
. $this->button('Display codes', "ocseditor.displayCountry('compact-value',this,true);")
|
113 |
-
. "</p>"
|
114 |
-
. "</fieldset>"
|
115 |
-
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Preview') . "</legend>"
|
116 |
-
. "<div class=\"address-filter-list\">" . $this->getAddressFilters($parsed_value) . "</div>"
|
117 |
-
. "</fieldset>"
|
118 |
-
. "</div>"
|
119 |
-
;
|
120 |
-
break;
|
121 |
-
case '*comment' :
|
122 |
-
$lines = explode("\n", trim($value));
|
123 |
-
for ($i = 0; $i < count($lines); $i++) {
|
124 |
-
$lines[$i] = preg_replace('/^# ?/', '', $lines[$i]);
|
125 |
-
}
|
126 |
-
$value = implode("\n", $lines);
|
127 |
-
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>";
|
128 |
-
default :
|
129 |
-
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>";
|
130 |
-
}
|
131 |
-
}
|
132 |
-
|
133 |
-
private function getAddressFilters($data) {
|
134 |
-
$address_filters = array();
|
135 |
-
foreach ($data['countries'] as $country) {
|
136 |
-
$address_filters[] = new AddressFilter($country);
|
137 |
-
}
|
138 |
-
return implode('', $address_filters);
|
139 |
-
}
|
140 |
-
|
141 |
-
private function parseAddressFilter($address_filter) {
|
142 |
-
$output = array(
|
143 |
-
'excluding' => false,
|
144 |
-
'countries' => array(),
|
145 |
-
'original' => $address_filter,
|
146 |
-
);
|
147 |
-
|
148 |
-
$address_filter = str_replace(array("\r\n", "\r", "\n"), array(',', ',', ','), $address_filter);
|
149 |
-
|
150 |
-
if (preg_match('# *\* *- *\((.*)\) *#s', $address_filter, $result)) {
|
151 |
-
$address_filter = $result[1];
|
152 |
-
$output['excluding'] = true;
|
153 |
-
}
|
154 |
-
|
155 |
-
$tmp_address_filter_array = explode(',', trim($address_filter));
|
156 |
-
|
157 |
-
$concat = false;
|
158 |
-
$concatened = '';
|
159 |
-
$address_filter_array = array();
|
160 |
-
$i = 0;
|
161 |
-
|
162 |
-
foreach ($tmp_address_filter_array as $address_filter) {
|
163 |
-
if ($concat) {
|
164 |
-
$concatened .= ',' . $address_filter;
|
165 |
-
} else {
|
166 |
-
if ($i < count($tmp_address_filter_array) - 1 && preg_match('#\(#', $address_filter)) {
|
167 |
-
$concat = true;
|
168 |
-
$concatened .= $address_filter;
|
169 |
-
} else {
|
170 |
-
$address_filter_array[] = $address_filter;
|
171 |
-
}
|
172 |
-
}
|
173 |
-
if (preg_match('#\)#', $address_filter)) {
|
174 |
-
$address_filter_array[] = $concatened;
|
175 |
-
$concatened = '';
|
176 |
-
$concat = false;
|
177 |
-
}
|
178 |
-
$i++;
|
179 |
-
}
|
180 |
-
|
181 |
-
foreach ($address_filter_array as $address_filter) {
|
182 |
-
$address_filter = trim($address_filter);
|
183 |
-
if (trim($address_filter) != '') {
|
184 |
-
if (preg_match('# *([^,(]+) *(-)? *(?:\( *(-)? *(.*)\))? *#s', $address_filter, $result)) {
|
185 |
-
$country_code = $result[1];
|
186 |
-
|
187 |
-
$region_codes = array();
|
188 |
-
if(isset($result[4])) {
|
189 |
-
$region_codes = explode(',', $result[4]);
|
190 |
-
for ($i = count($region_codes); --$i >= 0;) {
|
191 |
-
$code = trim($region_codes[$i]);
|
192 |
-
$region_codes[$i] = $code;
|
193 |
-
}
|
194 |
-
}
|
195 |
-
|
196 |
-
$excluding_region = (isset($result[2]) && $result[2] == '-') || (isset($result[3]) && $result[3] == '-');
|
197 |
-
$output['countries'][] = array(
|
198 |
-
'excluding' => $excluding_region,
|
199 |
-
'country_code' => $country_code,
|
200 |
-
'region_codes' => implode(',', $region_codes),
|
201 |
-
'original' => $address_filter,
|
202 |
-
);
|
203 |
-
} else {
|
204 |
-
$output['countries'][] = array(
|
205 |
-
'excluding' => null,
|
206 |
-
'country_code' => $address_filter,
|
207 |
-
'region_codes' => null,
|
208 |
-
'original' => $address_filter,
|
209 |
-
);
|
210 |
-
}
|
211 |
-
}
|
212 |
-
}
|
213 |
-
return $output;
|
214 |
-
}
|
215 |
-
|
216 |
-
private function getRowUI($row, $selected) {
|
217 |
-
$row['_ID_']['value'] = isset($row['_ID_']['value']) ? $row['_ID_']['value'] : uniqid('c');
|
218 |
-
$row_id = $row['_ID_']['value'];
|
219 |
-
|
220 |
-
if (isset($row['lines'])) {
|
221 |
-
$output = "<div id=\"r-" . $row_id . "-container\" class=\"row-container has-error ignored-lines" . ($selected ? ' selected' : '') . "\">"
|
222 |
-
. "<div class=\"row-header\" onclick=\"ocseditor.selectRow('" . $row_id . "');\">"
|
223 |
-
. "<div class=\"row-actions\">"
|
224 |
-
. $this->button('Apply changes', "ocseditor.applyChanges();")
|
225 |
-
. $this->button('Delete', "ocseditor.removeRow(this);", 'delete')
|
226 |
-
. "</div>"
|
227 |
-
. "<div class=\"row-title\">" . $this->__('Ignored lines') . "</div></div>"
|
228 |
-
. "<div class=\"properties-container\"><textarea class=\"field\">" . $row['lines'] . "</textarea></div></div>";
|
229 |
-
return $output;
|
230 |
-
}
|
231 |
-
|
232 |
-
if (!isset($row['label'])) {
|
233 |
-
$row['label']['value'] = $this->__('New shipping method');
|
234 |
-
}
|
235 |
-
|
236 |
-
$properties = array(
|
237 |
-
'enabled' => 'Enabled',
|
238 |
-
'code' => 'Code',
|
239 |
-
'label' => 'Label',
|
240 |
-
'description' => 'Description',
|
241 |
-
'destination' => 'Destination',
|
242 |
-
'origin' => 'Origin',
|
243 |
-
'conditions' => 'Conditions',
|
244 |
-
'fees' => 'Fees',
|
245 |
-
'customer_groups' => 'Customer groups',
|
246 |
-
'tracking_url' => 'Tracking url',
|
247 |
-
'*comment' => 'Comment',
|
248 |
-
);
|
249 |
-
|
250 |
-
$label = $row['label']['value'];
|
251 |
-
$output = "<div id=\"r-" . $row_id . "-container\" class=\"row-container" . ($selected ? ' selected' : '') . "\">"
|
252 |
-
. "<div class=\"row-header\" onclick=\"ocseditor.selectRow('" . $row_id . "');\">"
|
253 |
-
. "<div class=\"row-actions\">" . $this->button('Delete', "ocseditor.removeRow(this);", 'delete') . "</div><div class=\"row-title\">" . $label . "</div></div>"
|
254 |
-
. "<div class=\"properties-container\">";
|
255 |
-
$list = "<ul class=\"properties-list\">";
|
256 |
-
$j = 0;
|
257 |
-
foreach ($properties as $property_key => $label) {
|
258 |
-
$cleaned_property = $this->cleanKey($property_key);
|
259 |
-
$value = isset($row[$property_key]) ? trim($row[$property_key]['value']) : '';
|
260 |
-
$property = isset($row[$property_key]) ? $row[$property_key] : '';
|
261 |
-
|
262 |
-
$list .= "<li id=\"r-" . $row_id . "-p-" . $cleaned_property . "-item\" class=\"property-item" . ($j == 0 ? ' selected' : '')
|
263 |
-
. (empty($value) ? ' empty' : '')
|
264 |
-
. "\" onclick=\"ocseditor.selectProperty('" . $row_id . "','" . $cleaned_property . "');\">" . $this->__($label) . "</li>";
|
265 |
-
$output .= "<div id=\"r-" . $row_id . "-p-" . $cleaned_property . "-container\" class=\"property-container"
|
266 |
-
. ($j == 0 ? ' selected' : '') . "\" property-name=\"" . $property_key . "\">"
|
267 |
-
. "<div class=\"buttons-set\" style=\"text-align:right;\">" . $this->button('Help', "ocseditor.help('property." . $property_key . "');", 'help') . "</div>"
|
268 |
-
. $this->getPropertyHelper($row_id, $property_key, $property) . "</div>";
|
269 |
-
$j++;
|
270 |
-
}
|
271 |
-
foreach ($row as $property_key => $property) {
|
272 |
-
if (!isset($properties[$property_key]) && substr($property_key, 0, 1) != '*') {
|
273 |
-
$label = $property_key;
|
274 |
-
$cleaned_property = $this->cleanKey($property_key);
|
275 |
-
$value = isset($row[$property_key]) ? trim($row[$property_key]['value']) : '';
|
276 |
-
$list .= "<li id=\"r-" . $row_id . "-p-" . $cleaned_property . "-item\" class=\"property-item" . ($j == 0 ? ' selected' : '')
|
277 |
-
. (empty($value) ? ' empty' : '') . ($cleaned_property == '_ID_' ? ' hide' : '')
|
278 |
-
. "\" onclick=\"ocseditor.selectProperty('" . $row_id . "','" . $cleaned_property . "');\">" . $this->__($label) . "</li>";
|
279 |
-
$output .= "<div id=\"r-" . $row_id . "-p-" . $cleaned_property . "-container\" class=\"property-container"
|
280 |
-
. ($j == 0 ? ' selected' : '') . "\" property-name=\"" . $property_key . "\">"
|
281 |
-
. "<div class=\"buttons-set\" style=\"text-align:right;\">" . $this->button('Help', "ocseditor.help('property." . $property_key . "');", 'help') . "</div>"
|
282 |
-
. $this->getPropertyHelper($row_id, $property_key, $property) . "</div>";
|
283 |
-
$j++;
|
284 |
-
}
|
285 |
-
}
|
286 |
-
$output .= $list . "</div></div>";
|
287 |
-
return $output;
|
288 |
-
}
|
289 |
-
|
290 |
-
private function getConfigErrors($config) {
|
291 |
-
$script = "ocseditor.resetErrors();";
|
292 |
-
foreach ($config as $row) {
|
293 |
-
if (isset($row['*messages'])) {
|
294 |
-
$error = '';
|
295 |
-
foreach ($row['*messages'] as $message) {
|
296 |
-
$error .= "<p>" . $this->__($message) . "</p>";
|
297 |
-
}
|
298 |
-
if ($error != '') {
|
299 |
-
$script .= "ocseditor.setError('" . $row['_ID_']['value'] . "','','" . $this->jsEscape($error) . "');";
|
300 |
-
}
|
301 |
-
}
|
302 |
-
foreach ($row as $property_key => $property) {
|
303 |
-
if (isset($property['messages'])) {
|
304 |
-
$error = '';
|
305 |
-
foreach ($property['messages'] as $message) {
|
306 |
-
$error .= "<p>" . $this->__($message) . "</p>";
|
307 |
-
}
|
308 |
-
if ($error != '') {
|
309 |
-
$script .= "ocseditor.setError('" . $row['_ID_']['value'] . "','" . $property_key . "','"
|
310 |
-
. $this->jsEscape($error
|
311 |
-
. ($property['value'] != $property['original_value'] ?
|
312 |
-
"<p>"
|
313 |
-
. $this->button('Correct', "ocseditor.correct('" . $row['_ID_']['value'] . "','" . $property_key . "','" . $this->jsEscape($property['value']) . "');")
|
314 |
-
. "</p>" : '')
|
315 |
-
) . "');";
|
316 |
-
}
|
317 |
-
}
|
318 |
-
}
|
319 |
-
}
|
320 |
-
return $script;
|
321 |
-
}
|
322 |
-
|
323 |
-
private function loadConfig($input) {
|
324 |
-
include_once $this->getIncludingPath('ChronorelaisShippingHelper.php');
|
325 |
-
|
326 |
-
$helper = new ChronorelaisShippingHelper($input);
|
327 |
-
$helper->checkConfig();
|
328 |
-
$config = $helper->getConfig();
|
329 |
-
|
330 |
-
$output = "<div class=\"buttons-set\">"
|
331 |
-
. $this->button('Add a shipping method', "ocseditor.addRow();", 'add')
|
332 |
-
. "</div><div class=\"config-container\">";
|
333 |
-
$i = 0;
|
334 |
-
foreach ($config as &$row) {
|
335 |
-
$output .= $this->getRowUI($row, $i == 0);
|
336 |
-
$i++;
|
337 |
-
}
|
338 |
-
$output .= "</div><script type=\"text/javascript\">" . $this->getConfigErrors($config) . "</script>";
|
339 |
-
return $output;
|
340 |
-
}
|
341 |
-
|
342 |
-
public function indexAction() {
|
343 |
-
header('Content-Type: text/html; charset=UTF-8');
|
344 |
-
|
345 |
-
include_once $this->getIncludingPath('countries.inc.php');
|
346 |
-
|
347 |
-
switch ($_POST['what']) {
|
348 |
-
case 'open':
|
349 |
-
$output = ""
|
350 |
-
// Help page
|
351 |
-
. $this->page('help', "Chronorelais Shipping extension help", '')
|
352 |
-
// Main page
|
353 |
-
. $this->pageHeader("Chronorelais Shipping configuration editor", $this->button('Save', "ocseditor.save();", 'save')
|
354 |
-
. $this->button('Export', "ocseditor.saveToFile();", '')
|
355 |
-
. $this->button('Load', "ocseditor.showConfigLoader();", '')
|
356 |
-
. $this->button('Close', "ocseditor.close();", 'cancel')
|
357 |
-
)
|
358 |
-
. "<div id=\"ocs-editor-config-loader\">"
|
359 |
-
. "<textarea></textarea>"
|
360 |
-
. "<div class=\"buttons-set\">"
|
361 |
-
. $this->button('Load', "ocseditor.loadConfig();", '')
|
362 |
-
. $this->button('Cancel', "ocseditor.hideConfigLoader();", 'cancel')
|
363 |
-
. "</div>"
|
364 |
-
. "</div>"
|
365 |
-
. "<div id=\"ocs-editor-config-container\">" . $this->loadConfig($_POST['input']) . "</div>";
|
366 |
-
echo $output;
|
367 |
-
exit;
|
368 |
-
case 'help':
|
369 |
-
echo $this->__('{ocseditor.help.' . $_POST['input'] . '}');
|
370 |
-
exit;
|
371 |
-
case 'add-row':
|
372 |
-
echo $this->getRowUI(array(), true);
|
373 |
-
exit;
|
374 |
-
case 'load-config':
|
375 |
-
echo $this->loadConfig($_POST['config']);
|
376 |
-
exit;
|
377 |
-
case 'check-config':
|
378 |
-
include_once $this->getIncludingPath('ChronorelaisShippingHelper.php');
|
379 |
-
|
380 |
-
$helper = new ChronorelaisShippingHelper(urldecode($_POST['config']));
|
381 |
-
$helper->checkConfig();
|
382 |
-
print_r($helper->getConfig(), $out);
|
383 |
-
$script = $this->getConfigErrors($helper->getConfig());
|
384 |
-
break;
|
385 |
-
case 'save-to-file':
|
386 |
-
include_once $this->getIncludingPath('ChronorelaisShippingHelper.php');
|
387 |
-
|
388 |
-
$helper = new ChronorelaisShippingHelper(urldecode($_POST['config']));
|
389 |
-
$formatted_config = $helper->formatConfig(false);
|
390 |
-
$this->forceDownload('chronorelais-shipping-config.txt', $formatted_config);
|
391 |
-
exit;
|
392 |
-
case 'get-address-filters':
|
393 |
-
$result = $this->parseAddressFilter($_POST['input']);
|
394 |
-
echo $this->getAddressFilters($result);
|
395 |
-
exit;
|
396 |
-
default:
|
397 |
-
break;
|
398 |
-
}
|
399 |
-
|
400 |
-
echo "<script type=\"text/javascript\">" . $script . "</script>";
|
401 |
-
exit;
|
402 |
-
}
|
403 |
-
|
404 |
-
public function checkloginAction() {
|
405 |
-
$params = $this->getRequest()->getParams();
|
406 |
-
$account_number = $params['account_number'];
|
407 |
-
$account_pass = $params['account_pass'];
|
408 |
-
$helper = Mage::helper('chronorelais');
|
409 |
-
|
410 |
-
$WSParams = array(
|
411 |
-
'accountNumber' => $account_number,
|
412 |
-
'password' => $account_pass,
|
413 |
-
'depCountryCode' => $helper->getConfigurationShipperInfo('country'),
|
414 |
-
'depZipCode' => $helper->getConfigurationShipperInfo('zipcode'),
|
415 |
-
'arrCountryCode' => $helper->getConfigurationShipperInfo('country'),
|
416 |
-
'arrZipCode' => $helper->getConfigurationShipperInfo('zipcode'),
|
417 |
-
'arrCity' => $helper->getConfigurationShipperInfo('city'),
|
418 |
-
'type' => 'M',
|
419 |
-
'weight' => 1
|
420 |
-
);
|
421 |
-
|
422 |
-
$helperWS = Mage::helper('chronorelais/webservice');
|
423 |
-
$webservbt = (array)$helperWS->checkLogin($WSParams);
|
424 |
-
|
425 |
-
echo json_encode($webservbt);
|
426 |
-
}
|
427 |
-
|
428 |
-
public function checkConflictsAction() {
|
429 |
-
// Vérification
|
430 |
-
echo '<pre style="background: #000; color: #FFF; padding: 5px 10px; margin-top: 5px; border: 1px solid #0F0; font-family: Courier, Sans Serif; white-space: normal; text-indent: -20px; padding-left: 30px; line-height: 15px;">' . Mage::helper('chronorelais/conflicts')->checkForConflicts() . '</pre>';
|
431 |
-
}
|
432 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Magento Chronopost Chronorelais Module
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* @category Chronopost
|
17 |
+
* @package Chronopost_Chronorelais
|
18 |
+
* @copyright Copyright (c) 2008-10 Owebia (http://www.owebia.com/)
|
19 |
+
* @author Antoine Lemoine
|
20 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
21 |
+
*/
|
22 |
+
class Chronopost_Chronorelais_Adminhtml_Chronorelais_AjaxController extends Chronopost_Chronorelais_Controller_Abstract {
|
23 |
+
|
24 |
+
private function getPropertyHelper($row_id, $property_key, $property) {
|
25 |
+
$cleaned_property = $this->cleanKey($property_key);
|
26 |
+
$prefix = "r-" . $row_id . "-p-" . $cleaned_property;
|
27 |
+
$value = isset($property['original_value']) ? $property['original_value'] : (isset($property['value']) ? $property['value'] : '');
|
28 |
+
|
29 |
+
switch ($property_key) {
|
30 |
+
case 'enabled':
|
31 |
+
$enabled = $value !== false;
|
32 |
+
return "<p><select id=\"" . $prefix . "\" class=\"field\">"
|
33 |
+
. "<option value=\"0\"" . ($enabled ? '' : ' selected="selected"') . ">" . $this->__('Disabled') . "</option>"
|
34 |
+
. "<option value=\"1\"" . ($enabled ? ' selected="selected"' : '') . ">" . $this->__('Enabled') . "</option>"
|
35 |
+
. "</select><p>";
|
36 |
+
break;
|
37 |
+
case 'label':
|
38 |
+
case 'description':
|
39 |
+
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
40 |
+
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Insert') . "</legend>"
|
41 |
+
. "<p>"
|
42 |
+
. $this->button('Destination country', "ocseditor.insertAtCaret(this,'{destination.country.name}');")
|
43 |
+
. $this->button('Cart weight', "ocseditor.insertAtCaret(this,'{cart.weight}');")
|
44 |
+
. $this->button('Cart quantity', "ocseditor.insertAtCaret(this,'{cart.quantity}');")
|
45 |
+
. $this->button('Price including tax', "ocseditor.insertAtCaret(this,'{cart.price_including_tax}');")
|
46 |
+
. $this->button('Price excluding tax', "ocseditor.insertAtCaret(this,'{cart.price_excluding_tax}');")
|
47 |
+
. "</p>"
|
48 |
+
. "</fieldset>";
|
49 |
+
break;
|
50 |
+
case 'fees':
|
51 |
+
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
52 |
+
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Insert') . "</legend>"
|
53 |
+
. "<p><span class=\"buttons-set-label\">" . $this->__('Cart') . "</span>"
|
54 |
+
. $this->button('Weight', "ocseditor.insertAtCaret(this,'{cart.weight}');")
|
55 |
+
. $this->button('Products quantity', "ocseditor.insertAtCaret(this,'{cart.quantity}');")
|
56 |
+
. $this->button('Price including tax', "ocseditor.insertAtCaret(this,'{cart.price_including_tax}');")
|
57 |
+
. $this->button('Price excluding tax', "ocseditor.insertAtCaret(this,'{cart.price_excluding_tax}');")
|
58 |
+
. "</p>"
|
59 |
+
. "<p><span class=\"buttons-set-label\">" . $this->__('Selection') . "</span>"
|
60 |
+
. $this->button('Weight', "ocseditor.insertAtCaret(this,'{selection.weight}');")
|
61 |
+
. $this->button('Products quantity', "ocseditor.insertAtCaret(this,'{selection.quantity}');")
|
62 |
+
. "</p>"
|
63 |
+
. "<p><span class=\"buttons-set-label\">" . $this->__('Product') . "</span>"
|
64 |
+
. $this->button('Weight', "ocseditor.insertAtCaret(this,'{product.weight}');")
|
65 |
+
. $this->button('Quantity', "ocseditor.insertAtCaret(this,'{product.quantity}');")
|
66 |
+
. "</p>"
|
67 |
+
. "</fieldset>";
|
68 |
+
break;
|
69 |
+
case 'conditions':
|
70 |
+
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
71 |
+
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Insert') . "</legend>"
|
72 |
+
. "<p><span class=\"buttons-set-label\">" . $this->__('Cart') . "</span>"
|
73 |
+
. $this->button('Weight', "ocseditor.insertAtCaret(this,'{cart.weight}');")
|
74 |
+
. $this->button('Products quantity', "ocseditor.insertAtCaret(this,'{cart.quantity}');")
|
75 |
+
. $this->button('Price including tax', "ocseditor.insertAtCaret(this,'{cart.price_including_tax}');")
|
76 |
+
. $this->button('Price excluding tax', "ocseditor.insertAtCaret(this,'{cart.price_excluding_tax}');")
|
77 |
+
. "</p>"
|
78 |
+
. "</fieldset>";
|
79 |
+
break;
|
80 |
+
case 'customer_groups':
|
81 |
+
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
82 |
+
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Insert') . "</legend>"
|
83 |
+
. "<p>"
|
84 |
+
. $this->button('Not logged in', "ocseditor.insertAtCaret(this,'NOT LOGGED IN');")
|
85 |
+
. "</p>"
|
86 |
+
. "</fieldset>";
|
87 |
+
break;
|
88 |
+
case 'tracking_url':
|
89 |
+
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
90 |
+
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Insert') . "</legend>"
|
91 |
+
. "<p>"
|
92 |
+
. $this->button('Tracking number', "ocseditor.insertAtCaret(this,'{tracking_number}');")
|
93 |
+
. "</p>"
|
94 |
+
. "</fieldset>";
|
95 |
+
break;
|
96 |
+
case 'destination':
|
97 |
+
case 'origin':
|
98 |
+
$parsed_value = $this->parseAddressFilter($value);
|
99 |
+
$excluding = $parsed_value['excluding'];
|
100 |
+
return "<div class=\"address-filters-property\"><p>"
|
101 |
+
. "<input type=\"radio\" class=\"excluding\" id=\"" . $prefix . "-exluding-0\" name=\"" . $prefix . "-exluding\""
|
102 |
+
. " value=\"0\"" . (!$excluding ? " checked=\"checked\"" : '') . " onclick=\"ocseditor.updateCountries(this);\"/>"
|
103 |
+
. "<label for=\"" . $prefix . "-exluding-0\"> " . $this->__('Limit to') . "</label> "
|
104 |
+
. "<input type=\"radio\" class=\"excluding\" id=\"" . $prefix . "-exluding-1\" name=\"" . $prefix . "-exluding\""
|
105 |
+
. " value=\"1\"" . ($excluding ? " checked=\"checked\"" : '') . " onclick=\"ocseditor.updateCountries(this);\"/>"
|
106 |
+
. "<label for=\"" . $prefix . "-exluding-1\"> " . $this->__('Exclude') . "</label></p>"
|
107 |
+
. "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>"
|
108 |
+
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Display') . "</legend>"
|
109 |
+
. "<p>"
|
110 |
+
. $this->button('Display original input', "ocseditor.displayCountry('original-value',this,false);")
|
111 |
+
. $this->button('Display corrected names', "ocseditor.displayCountry('full-value',this,false);")
|
112 |
+
. $this->button('Display codes', "ocseditor.displayCountry('compact-value',this,true);")
|
113 |
+
. "</p>"
|
114 |
+
. "</fieldset>"
|
115 |
+
. "<fieldset class=\"buttons-set\"><legend>" . $this->__('Preview') . "</legend>"
|
116 |
+
. "<div class=\"address-filter-list\">" . $this->getAddressFilters($parsed_value) . "</div>"
|
117 |
+
. "</fieldset>"
|
118 |
+
. "</div>"
|
119 |
+
;
|
120 |
+
break;
|
121 |
+
case '*comment' :
|
122 |
+
$lines = explode("\n", trim($value));
|
123 |
+
for ($i = 0; $i < count($lines); $i++) {
|
124 |
+
$lines[$i] = preg_replace('/^# ?/', '', $lines[$i]);
|
125 |
+
}
|
126 |
+
$value = implode("\n", $lines);
|
127 |
+
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>";
|
128 |
+
default :
|
129 |
+
return "<textarea id=\"" . $prefix . "\" class=\"field\">" . $value . "</textarea>";
|
130 |
+
}
|
131 |
+
}
|
132 |
+
|
133 |
+
private function getAddressFilters($data) {
|
134 |
+
$address_filters = array();
|
135 |
+
foreach ($data['countries'] as $country) {
|
136 |
+
$address_filters[] = new AddressFilter($country);
|
137 |
+
}
|
138 |
+
return implode('', $address_filters);
|
139 |
+
}
|
140 |
+
|
141 |
+
private function parseAddressFilter($address_filter) {
|
142 |
+
$output = array(
|
143 |
+
'excluding' => false,
|
144 |
+
'countries' => array(),
|
145 |
+
'original' => $address_filter,
|
146 |
+
);
|
147 |
+
|
148 |
+
$address_filter = str_replace(array("\r\n", "\r", "\n"), array(',', ',', ','), $address_filter);
|
149 |
+
|
150 |
+
if (preg_match('# *\* *- *\((.*)\) *#s', $address_filter, $result)) {
|
151 |
+
$address_filter = $result[1];
|
152 |
+
$output['excluding'] = true;
|
153 |
+
}
|
154 |
+
|
155 |
+
$tmp_address_filter_array = explode(',', trim($address_filter));
|
156 |
+
|
157 |
+
$concat = false;
|
158 |
+
$concatened = '';
|
159 |
+
$address_filter_array = array();
|
160 |
+
$i = 0;
|
161 |
+
|
162 |
+
foreach ($tmp_address_filter_array as $address_filter) {
|
163 |
+
if ($concat) {
|
164 |
+
$concatened .= ',' . $address_filter;
|
165 |
+
} else {
|
166 |
+
if ($i < count($tmp_address_filter_array) - 1 && preg_match('#\(#', $address_filter)) {
|
167 |
+
$concat = true;
|
168 |
+
$concatened .= $address_filter;
|
169 |
+
} else {
|
170 |
+
$address_filter_array[] = $address_filter;
|
171 |
+
}
|
172 |
+
}
|
173 |
+
if (preg_match('#\)#', $address_filter)) {
|
174 |
+
$address_filter_array[] = $concatened;
|
175 |
+
$concatened = '';
|
176 |
+
$concat = false;
|
177 |
+
}
|
178 |
+
$i++;
|
179 |
+
}
|
180 |
+
|
181 |
+
foreach ($address_filter_array as $address_filter) {
|
182 |
+
$address_filter = trim($address_filter);
|
183 |
+
if (trim($address_filter) != '') {
|
184 |
+
if (preg_match('# *([^,(]+) *(-)? *(?:\( *(-)? *(.*)\))? *#s', $address_filter, $result)) {
|
185 |
+
$country_code = $result[1];
|
186 |
+
|
187 |
+
$region_codes = array();
|
188 |
+
if(isset($result[4])) {
|
189 |
+
$region_codes = explode(',', $result[4]);
|
190 |
+
for ($i = count($region_codes); --$i >= 0;) {
|
191 |
+
$code = trim($region_codes[$i]);
|
192 |
+
$region_codes[$i] = $code;
|
193 |
+
}
|
194 |
+
}
|
195 |
+
|
196 |
+
$excluding_region = (isset($result[2]) && $result[2] == '-') || (isset($result[3]) && $result[3] == '-');
|
197 |
+
$output['countries'][] = array(
|
198 |
+
'excluding' => $excluding_region,
|
199 |
+
'country_code' => $country_code,
|
200 |
+
'region_codes' => implode(',', $region_codes),
|
201 |
+
'original' => $address_filter,
|
202 |
+
);
|
203 |
+
} else {
|
204 |
+
$output['countries'][] = array(
|
205 |
+
'excluding' => null,
|
206 |
+
'country_code' => $address_filter,
|
207 |
+
'region_codes' => null,
|
208 |
+
'original' => $address_filter,
|
209 |
+
);
|
210 |
+
}
|
211 |
+
}
|
212 |
+
}
|
213 |
+
return $output;
|
214 |
+
}
|
215 |
+
|
216 |
+
private function getRowUI($row, $selected) {
|
217 |
+
$row['_ID_']['value'] = isset($row['_ID_']['value']) ? $row['_ID_']['value'] : uniqid('c');
|
218 |
+
$row_id = $row['_ID_']['value'];
|
219 |
+
|
220 |
+
if (isset($row['lines'])) {
|
221 |
+
$output = "<div id=\"r-" . $row_id . "-container\" class=\"row-container has-error ignored-lines" . ($selected ? ' selected' : '') . "\">"
|
222 |
+
. "<div class=\"row-header\" onclick=\"ocseditor.selectRow('" . $row_id . "');\">"
|
223 |
+
. "<div class=\"row-actions\">"
|
224 |
+
. $this->button('Apply changes', "ocseditor.applyChanges();")
|
225 |
+
. $this->button('Delete', "ocseditor.removeRow(this);", 'delete')
|
226 |
+
. "</div>"
|
227 |
+
. "<div class=\"row-title\">" . $this->__('Ignored lines') . "</div></div>"
|
228 |
+
. "<div class=\"properties-container\"><textarea class=\"field\">" . $row['lines'] . "</textarea></div></div>";
|
229 |
+
return $output;
|
230 |
+
}
|
231 |
+
|
232 |
+
if (!isset($row['label'])) {
|
233 |
+
$row['label']['value'] = $this->__('New shipping method');
|
234 |
+
}
|
235 |
+
|
236 |
+
$properties = array(
|
237 |
+
'enabled' => 'Enabled',
|
238 |
+
'code' => 'Code',
|
239 |
+
'label' => 'Label',
|
240 |
+
'description' => 'Description',
|
241 |
+
'destination' => 'Destination',
|
242 |
+
'origin' => 'Origin',
|
243 |
+
'conditions' => 'Conditions',
|
244 |
+
'fees' => 'Fees',
|
245 |
+
'customer_groups' => 'Customer groups',
|
246 |
+
'tracking_url' => 'Tracking url',
|
247 |
+
'*comment' => 'Comment',
|
248 |
+
);
|
249 |
+
|
250 |
+
$label = $row['label']['value'];
|
251 |
+
$output = "<div id=\"r-" . $row_id . "-container\" class=\"row-container" . ($selected ? ' selected' : '') . "\">"
|
252 |
+
. "<div class=\"row-header\" onclick=\"ocseditor.selectRow('" . $row_id . "');\">"
|
253 |
+
. "<div class=\"row-actions\">" . $this->button('Delete', "ocseditor.removeRow(this);", 'delete') . "</div><div class=\"row-title\">" . $label . "</div></div>"
|
254 |
+
. "<div class=\"properties-container\">";
|
255 |
+
$list = "<ul class=\"properties-list\">";
|
256 |
+
$j = 0;
|
257 |
+
foreach ($properties as $property_key => $label) {
|
258 |
+
$cleaned_property = $this->cleanKey($property_key);
|
259 |
+
$value = isset($row[$property_key]) ? trim($row[$property_key]['value']) : '';
|
260 |
+
$property = isset($row[$property_key]) ? $row[$property_key] : '';
|
261 |
+
|
262 |
+
$list .= "<li id=\"r-" . $row_id . "-p-" . $cleaned_property . "-item\" class=\"property-item" . ($j == 0 ? ' selected' : '')
|
263 |
+
. (empty($value) ? ' empty' : '')
|
264 |
+
. "\" onclick=\"ocseditor.selectProperty('" . $row_id . "','" . $cleaned_property . "');\">" . $this->__($label) . "</li>";
|
265 |
+
$output .= "<div id=\"r-" . $row_id . "-p-" . $cleaned_property . "-container\" class=\"property-container"
|
266 |
+
. ($j == 0 ? ' selected' : '') . "\" property-name=\"" . $property_key . "\">"
|
267 |
+
. "<div class=\"buttons-set\" style=\"text-align:right;\">" . $this->button('Help', "ocseditor.help('property." . $property_key . "');", 'help') . "</div>"
|
268 |
+
. $this->getPropertyHelper($row_id, $property_key, $property) . "</div>";
|
269 |
+
$j++;
|
270 |
+
}
|
271 |
+
foreach ($row as $property_key => $property) {
|
272 |
+
if (!isset($properties[$property_key]) && substr($property_key, 0, 1) != '*') {
|
273 |
+
$label = $property_key;
|
274 |
+
$cleaned_property = $this->cleanKey($property_key);
|
275 |
+
$value = isset($row[$property_key]) ? trim($row[$property_key]['value']) : '';
|
276 |
+
$list .= "<li id=\"r-" . $row_id . "-p-" . $cleaned_property . "-item\" class=\"property-item" . ($j == 0 ? ' selected' : '')
|
277 |
+
. (empty($value) ? ' empty' : '') . ($cleaned_property == '_ID_' ? ' hide' : '')
|
278 |
+
. "\" onclick=\"ocseditor.selectProperty('" . $row_id . "','" . $cleaned_property . "');\">" . $this->__($label) . "</li>";
|
279 |
+
$output .= "<div id=\"r-" . $row_id . "-p-" . $cleaned_property . "-container\" class=\"property-container"
|
280 |
+
. ($j == 0 ? ' selected' : '') . "\" property-name=\"" . $property_key . "\">"
|
281 |
+
. "<div class=\"buttons-set\" style=\"text-align:right;\">" . $this->button('Help', "ocseditor.help('property." . $property_key . "');", 'help') . "</div>"
|
282 |
+
. $this->getPropertyHelper($row_id, $property_key, $property) . "</div>";
|
283 |
+
$j++;
|
284 |
+
}
|
285 |
+
}
|
286 |
+
$output .= $list . "</div></div>";
|
287 |
+
return $output;
|
288 |
+
}
|
289 |
+
|
290 |
+
private function getConfigErrors($config) {
|
291 |
+
$script = "ocseditor.resetErrors();";
|
292 |
+
foreach ($config as $row) {
|
293 |
+
if (isset($row['*messages'])) {
|
294 |
+
$error = '';
|
295 |
+
foreach ($row['*messages'] as $message) {
|
296 |
+
$error .= "<p>" . $this->__($message) . "</p>";
|
297 |
+
}
|
298 |
+
if ($error != '') {
|
299 |
+
$script .= "ocseditor.setError('" . $row['_ID_']['value'] . "','','" . $this->jsEscape($error) . "');";
|
300 |
+
}
|
301 |
+
}
|
302 |
+
foreach ($row as $property_key => $property) {
|
303 |
+
if (isset($property['messages'])) {
|
304 |
+
$error = '';
|
305 |
+
foreach ($property['messages'] as $message) {
|
306 |
+
$error .= "<p>" . $this->__($message) . "</p>";
|
307 |
+
}
|
308 |
+
if ($error != '') {
|
309 |
+
$script .= "ocseditor.setError('" . $row['_ID_']['value'] . "','" . $property_key . "','"
|
310 |
+
. $this->jsEscape($error
|
311 |
+
. ($property['value'] != $property['original_value'] ?
|
312 |
+
"<p>"
|
313 |
+
. $this->button('Correct', "ocseditor.correct('" . $row['_ID_']['value'] . "','" . $property_key . "','" . $this->jsEscape($property['value']) . "');")
|
314 |
+
. "</p>" : '')
|
315 |
+
) . "');";
|
316 |
+
}
|
317 |
+
}
|
318 |
+
}
|
319 |
+
}
|
320 |
+
return $script;
|
321 |
+
}
|
322 |
+
|
323 |
+
private function loadConfig($input) {
|
324 |
+
include_once $this->getIncludingPath('ChronorelaisShippingHelper.php');
|
325 |
+
|
326 |
+
$helper = new ChronorelaisShippingHelper($input);
|
327 |
+
$helper->checkConfig();
|
328 |
+
$config = $helper->getConfig();
|
329 |
+
|
330 |
+
$output = "<div class=\"buttons-set\">"
|
331 |
+
. $this->button('Add a shipping method', "ocseditor.addRow();", 'add')
|
332 |
+
. "</div><div class=\"config-container\">";
|
333 |
+
$i = 0;
|
334 |
+
foreach ($config as &$row) {
|
335 |
+
$output .= $this->getRowUI($row, $i == 0);
|
336 |
+
$i++;
|
337 |
+
}
|
338 |
+
$output .= "</div><script type=\"text/javascript\">" . $this->getConfigErrors($config) . "</script>";
|
339 |
+
return $output;
|
340 |
+
}
|
341 |
+
|
342 |
+
public function indexAction() {
|
343 |
+
header('Content-Type: text/html; charset=UTF-8');
|
344 |
+
|
345 |
+
include_once $this->getIncludingPath('countries.inc.php');
|
346 |
+
|
347 |
+
switch ($_POST['what']) {
|
348 |
+
case 'open':
|
349 |
+
$output = ""
|
350 |
+
// Help page
|
351 |
+
. $this->page('help', "Chronorelais Shipping extension help", '')
|
352 |
+
// Main page
|
353 |
+
. $this->pageHeader("Chronorelais Shipping configuration editor", $this->button('Save', "ocseditor.save();", 'save')
|
354 |
+
. $this->button('Export', "ocseditor.saveToFile();", '')
|
355 |
+
. $this->button('Load', "ocseditor.showConfigLoader();", '')
|
356 |
+
. $this->button('Close', "ocseditor.close();", 'cancel')
|
357 |
+
)
|
358 |
+
. "<div id=\"ocs-editor-config-loader\">"
|
359 |
+
. "<textarea></textarea>"
|
360 |
+
. "<div class=\"buttons-set\">"
|
361 |
+
. $this->button('Load', "ocseditor.loadConfig();", '')
|
362 |
+
. $this->button('Cancel', "ocseditor.hideConfigLoader();", 'cancel')
|
363 |
+
. "</div>"
|
364 |
+
. "</div>"
|
365 |
+
. "<div id=\"ocs-editor-config-container\">" . $this->loadConfig($_POST['input']) . "</div>";
|
366 |
+
echo $output;
|
367 |
+
exit;
|
368 |
+
case 'help':
|
369 |
+
echo $this->__('{ocseditor.help.' . $_POST['input'] . '}');
|
370 |
+
exit;
|
371 |
+
case 'add-row':
|
372 |
+
echo $this->getRowUI(array(), true);
|
373 |
+
exit;
|
374 |
+
case 'load-config':
|
375 |
+
echo $this->loadConfig($_POST['config']);
|
376 |
+
exit;
|
377 |
+
case 'check-config':
|
378 |
+
include_once $this->getIncludingPath('ChronorelaisShippingHelper.php');
|
379 |
+
|
380 |
+
$helper = new ChronorelaisShippingHelper(urldecode($_POST['config']));
|
381 |
+
$helper->checkConfig();
|
382 |
+
print_r($helper->getConfig(), $out);
|
383 |
+
$script = $this->getConfigErrors($helper->getConfig());
|
384 |
+
break;
|
385 |
+
case 'save-to-file':
|
386 |
+
include_once $this->getIncludingPath('ChronorelaisShippingHelper.php');
|
387 |
+
|
388 |
+
$helper = new ChronorelaisShippingHelper(urldecode($_POST['config']));
|
389 |
+
$formatted_config = $helper->formatConfig(false);
|
390 |
+
$this->forceDownload('chronorelais-shipping-config.txt', $formatted_config);
|
391 |
+
exit;
|
392 |
+
case 'get-address-filters':
|
393 |
+
$result = $this->parseAddressFilter($_POST['input']);
|
394 |
+
echo $this->getAddressFilters($result);
|
395 |
+
exit;
|
396 |
+
default:
|
397 |
+
break;
|
398 |
+
}
|
399 |
+
|
400 |
+
echo "<script type=\"text/javascript\">" . $script . "</script>";
|
401 |
+
exit;
|
402 |
+
}
|
403 |
+
|
404 |
+
public function checkloginAction() {
|
405 |
+
$params = $this->getRequest()->getParams();
|
406 |
+
$account_number = $params['account_number'];
|
407 |
+
$account_pass = $params['account_pass'];
|
408 |
+
$helper = Mage::helper('chronorelais');
|
409 |
+
|
410 |
+
$WSParams = array(
|
411 |
+
'accountNumber' => $account_number,
|
412 |
+
'password' => $account_pass,
|
413 |
+
'depCountryCode' => $helper->getConfigurationShipperInfo('country'),
|
414 |
+
'depZipCode' => $helper->getConfigurationShipperInfo('zipcode'),
|
415 |
+
'arrCountryCode' => $helper->getConfigurationShipperInfo('country'),
|
416 |
+
'arrZipCode' => $helper->getConfigurationShipperInfo('zipcode'),
|
417 |
+
'arrCity' => $helper->getConfigurationShipperInfo('city'),
|
418 |
+
'type' => 'M',
|
419 |
+
'weight' => 1
|
420 |
+
);
|
421 |
+
|
422 |
+
$helperWS = Mage::helper('chronorelais/webservice');
|
423 |
+
$webservbt = (array)$helperWS->checkLogin($WSParams);
|
424 |
+
|
425 |
+
echo json_encode($webservbt);
|
426 |
+
}
|
427 |
+
|
428 |
+
public function checkConflictsAction() {
|
429 |
+
// Vérification
|
430 |
+
echo '<pre style="background: #000; color: #FFF; padding: 5px 10px; margin-top: 5px; border: 1px solid #0F0; font-family: Courier, Sans Serif; white-space: normal; text-indent: -20px; padding-left: 30px; line-height: 15px;">' . Mage::helper('chronorelais/conflicts')->checkForConflicts() . '</pre>';
|
431 |
+
}
|
432 |
+
}
|
app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/ExportController.php
CHANGED
@@ -1,635 +1,635 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Chronopost_Chronorelais_Adminhtml_Chronorelais_ExportController extends Mage_Adminhtml_Controller_Action {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Constructor
|
7 |
-
*/
|
8 |
-
protected function _construct() {
|
9 |
-
$this->setUsedModuleName('Chronopost_Chronorelais');
|
10 |
-
}
|
11 |
-
|
12 |
-
protected function _isAllowed(){
|
13 |
-
return true;
|
14 |
-
}
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Main action : show orders list
|
18 |
-
*/
|
19 |
-
public function indexAction() {
|
20 |
-
$this->loadLayout()
|
21 |
-
->_setActiveMenu('sales/chronorelais/export')
|
22 |
-
->_addContent($this->getLayout()->createBlock('chronorelais/export_orders'))
|
23 |
-
->renderLayout();
|
24 |
-
}
|
25 |
-
|
26 |
-
public function getValue($value) {
|
27 |
-
return ($value != '' ? $value : '');
|
28 |
-
}
|
29 |
-
|
30 |
-
public function removeSpclChars($text) {
|
31 |
-
return preg_replace("/[^0-9a-zA-Z]/", "", $text);
|
32 |
-
}
|
33 |
-
|
34 |
-
public function massLivraisonSamediStatusAction() {
|
35 |
-
if ($this->getRequest()->getPost('status')) {
|
36 |
-
$this->saveLivraisonSamediStatusAction();
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
public function massExportAction() {
|
41 |
-
if ($this->getRequest()->getPost('format') == 'css') {
|
42 |
-
$this->exportcssAction();
|
43 |
-
} elseif ($this->getRequest()->getPost('format') == 'cso') {
|
44 |
-
$this->exportcsoAction();
|
45 |
-
}
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Export CSS Action
|
50 |
-
* Generates a CSV file to download (CSS format)
|
51 |
-
*/
|
52 |
-
public function exportcssAction() {
|
53 |
-
/* get the orders */
|
54 |
-
$orderIds = $this->getRequest()->getPost('order_ids');
|
55 |
-
|
56 |
-
/**
|
57 |
-
* Get configuration
|
58 |
-
*/
|
59 |
-
$separator = Mage::helper('chronorelais')->getConfigurationFieldSeparator('css');
|
60 |
-
$delimiter = Mage::helper('chronorelais')->getConfigurationFieldDelimiter('css');
|
61 |
-
|
62 |
-
if ($delimiter == 'simple_quote') {
|
63 |
-
$delimiter = "'";
|
64 |
-
} else if ($delimiter == 'double_quotes') {
|
65 |
-
$delimiter = '"';
|
66 |
-
} else {
|
67 |
-
$delimiter = '';
|
68 |
-
}
|
69 |
-
$lineBreak = Mage::helper('chronorelais')->getConfigurationEndOfLineCharacter('css');
|
70 |
-
if ($lineBreak == 'lf') {
|
71 |
-
$lineBreak = "\n";
|
72 |
-
} else if ($lineBreak == 'cr') {
|
73 |
-
$lineBreak = "\r";
|
74 |
-
} else if ($lineBreak == 'crlf') {
|
75 |
-
$lineBreak = "\r\n";
|
76 |
-
}
|
77 |
-
$fileExtension = Mage::helper('chronorelais')->getConfigurationFileExtension('css');
|
78 |
-
$fileCharset = Mage::helper('chronorelais')->getConfigurationFileCharset('css');
|
79 |
-
|
80 |
-
/* set the filename */
|
81 |
-
$filename = 'orders_exportcss_' . Mage::getSingleton('core/date')->date('Ymd_His') . $fileExtension;
|
82 |
-
|
83 |
-
/* initialize the content variable */
|
84 |
-
$content = '';
|
85 |
-
$helper = Mage::helper('chronorelais');
|
86 |
-
$weightUnit = $helper->getConfigWeightUnit();
|
87 |
-
if (!empty($orderIds)) {
|
88 |
-
foreach ($orderIds as $orderId) {
|
89 |
-
|
90 |
-
/* get the order */
|
91 |
-
$order = Mage::getModel('sales/order')->load($orderId);
|
92 |
-
$address = $order->getShippingAddress();
|
93 |
-
$billingAddress = $order->getBillingAddress();
|
94 |
-
|
95 |
-
$_shippingMethod = explode('_', $order->getShippingMethod());
|
96 |
-
|
97 |
-
/* customer id */
|
98 |
-
$content = $this->_addFieldToCsv($content, $delimiter, ($order->getCustomerId() ? $order->getCustomerId() : $address->getLastname()));
|
99 |
-
$content .= $separator;
|
100 |
-
/* Nom du point relais OU société si livraison à domicile */
|
101 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $address->getCompany());
|
102 |
-
$content .= $separator;
|
103 |
-
/* customer name */
|
104 |
-
$content = $this->_addFieldToCsv($content, $delimiter, ($address->getFirstname() ? $address->getFirstname() : $billingAddress->getFirstname()));
|
105 |
-
$content .= $separator;
|
106 |
-
$content = $this->_addFieldToCsv($content, $delimiter, ($address->getLastname() ? $address->getLastname() : $billingAddress->getLastname()));
|
107 |
-
$content .= $separator;
|
108 |
-
/* street address */
|
109 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getStreet(1)));
|
110 |
-
$content .= $separator;
|
111 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getStreet(2)));
|
112 |
-
$content .= $separator;
|
113 |
-
|
114 |
-
/* digicode (vide)*/
|
115 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
116 |
-
$content .= $separator;
|
117 |
-
|
118 |
-
/* postal code */
|
119 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getPostcode()));
|
120 |
-
$content .= $separator;
|
121 |
-
/* city */
|
122 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getCity()));
|
123 |
-
$content .= $separator;
|
124 |
-
/* country code */
|
125 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getCountry()));
|
126 |
-
$content .= $separator;
|
127 |
-
/* telephone */
|
128 |
-
$telephone = trim(ereg_replace("[^0-9.-]", " ", $address->getTelephone()));
|
129 |
-
$telephone = (strlen($telephone) >= 10 ? $telephone : '');
|
130 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $telephone);
|
131 |
-
$content .= $separator;
|
132 |
-
/* email */
|
133 |
-
$customer_email = ($address->getEmail()) ? $address->getEmail() : ($billingAddress->getEmail() ? $billingAddress->getEmail() : $order->getCustomerEmail());
|
134 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($customer_email));
|
135 |
-
$content .= $separator;
|
136 |
-
/* real order id */
|
137 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($order->getRealOrderId()));
|
138 |
-
$content .= $separator;
|
139 |
-
|
140 |
-
/* code barre client (vide) */
|
141 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
142 |
-
$content .= $separator;
|
143 |
-
|
144 |
-
/* productCode */
|
145 |
-
$productCode = Mage::helper('chronorelais')->getChronoProductCodeString($_shippingMethod[0]);
|
146 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $productCode);
|
147 |
-
$content .= $separator;
|
148 |
-
|
149 |
-
/* compte (vide) */
|
150 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
151 |
-
$content .= $separator;
|
152 |
-
|
153 |
-
/* sous compte (vide) */
|
154 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
155 |
-
$content .= $separator;
|
156 |
-
|
157 |
-
/* empty fields */
|
158 |
-
$content = $this->_addFieldToCsv($content, $delimiter, 0);
|
159 |
-
$content .= $separator;
|
160 |
-
$content = $this->_addFieldToCsv($content, $delimiter, 0);
|
161 |
-
$content .= $separator;
|
162 |
-
|
163 |
-
/* document / marchandise (vide) */
|
164 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
165 |
-
$content .= $separator;
|
166 |
-
|
167 |
-
/* description contenu (vide) */
|
168 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
169 |
-
$content .= $separator;
|
170 |
-
|
171 |
-
/* Livraison Samedi */
|
172 |
-
$SaturdayShipping = 'L'; //default value for the saturday shipping
|
173 |
-
if ($_shippingMethod[0] == "chronopost" || $_shippingMethod[0] == "chronorelais") {
|
174 |
-
if (!$_deliver_on_saturday = Mage::helper('chronorelais')->getLivraisonSamediStatus($orderId)) {
|
175 |
-
$_deliver_on_saturday = Mage::helper('chronorelais')->getConfigData('carriers/' . $_shippingMethod[0] . '/deliver_on_saturday');
|
176 |
-
} else {
|
177 |
-
if ($_deliver_on_saturday == 'Yes') {
|
178 |
-
$_deliver_on_saturday = 1;
|
179 |
-
} else {
|
180 |
-
$_deliver_on_saturday = 0;
|
181 |
-
}
|
182 |
-
}
|
183 |
-
$is_sending_day = Mage::helper('chronorelais')->isSendingDay();
|
184 |
-
if ($_deliver_on_saturday && $is_sending_day == true) {
|
185 |
-
$SaturdayShipping = 'S';
|
186 |
-
} elseif (!$_deliver_on_saturday && $is_sending_day == true) {
|
187 |
-
$SaturdayShipping = 'L';
|
188 |
-
}
|
189 |
-
}
|
190 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $SaturdayShipping);
|
191 |
-
$content .= $separator;
|
192 |
-
|
193 |
-
/* chronorelay point */
|
194 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getWRelayPointCode()));
|
195 |
-
$content .= $separator;
|
196 |
-
|
197 |
-
/* total weight (in kg) */
|
198 |
-
$order_weight = number_format($order->getWeight(), 2, '.', '');
|
199 |
-
if($weightUnit == 'g') {
|
200 |
-
$order_weight = $order_weight / 1000;
|
201 |
-
}
|
202 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $order_weight);
|
203 |
-
$content .= $separator;
|
204 |
-
|
205 |
-
|
206 |
-
/* largeur (vide) */
|
207 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
208 |
-
$content .= $separator;
|
209 |
-
|
210 |
-
/* longueur (vide) */
|
211 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
212 |
-
$content .= $separator;
|
213 |
-
|
214 |
-
/* hauteur (vide) */
|
215 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
216 |
-
$content .= $separator;
|
217 |
-
|
218 |
-
/* avertir destinataire (vide) */
|
219 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
220 |
-
$content .= $separator;
|
221 |
-
|
222 |
-
/* nb colis (vide) */
|
223 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
224 |
-
$content .= $separator;
|
225 |
-
|
226 |
-
/* date envoi */
|
227 |
-
$content = $this->_addFieldToCsv($content, $delimiter, date('d/m/Y'));
|
228 |
-
$content .= $separator;
|
229 |
-
|
230 |
-
/* a intégrer (vide) */
|
231 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
232 |
-
$content .= $separator;
|
233 |
-
|
234 |
-
/* avertir expéditeur (vide) */
|
235 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
236 |
-
$content .= $separator;
|
237 |
-
|
238 |
-
/* DLC (vide) */
|
239 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
240 |
-
$content .= $separator;
|
241 |
-
|
242 |
-
/* champ specifique rdv */
|
243 |
-
$chronopostsrdv_creneaux_info = $address->getData('chronopostsrdv_creneaux_info');
|
244 |
-
if($chronopostsrdv_creneaux_info) {
|
245 |
-
$chronopostsrdv_creneaux_info = json_decode($chronopostsrdv_creneaux_info,true);
|
246 |
-
$_dateRdvStart = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
247 |
-
$_dateRdvStart->setTime($chronopostsrdv_creneaux_info['startHour'],$chronopostsrdv_creneaux_info['startMinutes']);
|
248 |
-
|
249 |
-
$_dateRdvEnd = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
250 |
-
$_dateRdvEnd->setTime($chronopostsrdv_creneaux_info['endHour'],$chronopostsrdv_creneaux_info['endMinutes']);
|
251 |
-
|
252 |
-
/* date debut rdv */
|
253 |
-
//$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvStart->format("Y-m-d")."T".$_dateRdvStart->format("H:i:s"));
|
254 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvStart->format("dmyHi"));
|
255 |
-
$content .= $separator;
|
256 |
-
|
257 |
-
/* date fin rdv */
|
258 |
-
//$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvEnd->format("Y-m-d")."T".$_dateRdvEnd->format("H:i:s"));
|
259 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvEnd->format("dmyHi"));
|
260 |
-
$content .= $separator;
|
261 |
-
|
262 |
-
/* Niveau tarifaire */
|
263 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $chronopostsrdv_creneaux_info['tariffLevel']);
|
264 |
-
$content .= $separator;
|
265 |
-
|
266 |
-
/* code service */
|
267 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $chronopostsrdv_creneaux_info['serviceCode']);
|
268 |
-
$content .= $separator;
|
269 |
-
|
270 |
-
} else {
|
271 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
272 |
-
$content .= $separator;
|
273 |
-
|
274 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
275 |
-
$content .= $separator;
|
276 |
-
|
277 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
278 |
-
$content .= $separator;
|
279 |
-
|
280 |
-
/* code service */
|
281 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
282 |
-
$content .= $separator;
|
283 |
-
}
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
$content .= $lineBreak;
|
288 |
-
|
289 |
-
}
|
290 |
-
|
291 |
-
/* decode the content, depending on the charset */
|
292 |
-
if ($fileCharset == 'ISO-8859-1') {
|
293 |
-
$content = utf8_decode($content);
|
294 |
-
}
|
295 |
-
|
296 |
-
/* pick file mime type, depending on the extension */
|
297 |
-
switch ($fileExtension) {
|
298 |
-
case '.csv':
|
299 |
-
$fileMimeType = 'application/csv';
|
300 |
-
break;
|
301 |
-
case '.chr':
|
302 |
-
$fileMimeType = 'application/chr';
|
303 |
-
break;
|
304 |
-
default:
|
305 |
-
$fileMimeType = 'text/plain';
|
306 |
-
break;
|
307 |
-
}
|
308 |
-
/* download the file */
|
309 |
-
return $this->_prepareDownloadResponse($filename, $content, $fileMimeType . '; charset="' . $fileCharset . '"');
|
310 |
-
} else {
|
311 |
-
$this->_getSession()->addError($this->__('No Order has been selected'));
|
312 |
-
}
|
313 |
-
}
|
314 |
-
|
315 |
-
/**
|
316 |
-
* Export CSO Action
|
317 |
-
* Generates a CSV file to download (CSO format)
|
318 |
-
*/
|
319 |
-
public function exportcsoAction() {
|
320 |
-
/* get the orders */
|
321 |
-
$orderIds = $this->getRequest()->getPost('order_ids');
|
322 |
-
|
323 |
-
/**
|
324 |
-
* Get configuration
|
325 |
-
*/
|
326 |
-
$separator = Mage::helper('chronorelais')->getConfigurationFieldSeparator('cso');
|
327 |
-
$delimiter = Mage::helper('chronorelais')->getConfigurationFieldDelimiter('cso');
|
328 |
-
if ($delimiter == 'simple_quote') {
|
329 |
-
$delimiter = "'";
|
330 |
-
} else if ($delimiter == 'double_quotes') {
|
331 |
-
$delimiter = '"';
|
332 |
-
} else {
|
333 |
-
$delimiter = '';
|
334 |
-
}
|
335 |
-
$lineBreak = Mage::helper('chronorelais')->getConfigurationEndOfLineCharacter('cso');
|
336 |
-
if ($lineBreak == 'lf') {
|
337 |
-
$lineBreak = "\n";
|
338 |
-
} else if ($lineBreak == 'cr') {
|
339 |
-
$lineBreak = "\r";
|
340 |
-
} else if ($lineBreak == 'crlf') {
|
341 |
-
$lineBreak = "\r\n";
|
342 |
-
}
|
343 |
-
$fileExtension = Mage::helper('chronorelais')->getConfigurationFileExtension('cso');
|
344 |
-
$fileCharset = Mage::helper('chronorelais')->getConfigurationFileCharset('cso');
|
345 |
-
|
346 |
-
/* set the filename */
|
347 |
-
$filename = 'orders_exportcso_' . Mage::getSingleton('core/date')->date('Ymd_His') . $fileExtension;
|
348 |
-
|
349 |
-
/* initialize the content variable */
|
350 |
-
$content = '';
|
351 |
-
$helper = Mage::helper('chronorelais');
|
352 |
-
$weightUnit = $helper->getConfigWeightUnit();
|
353 |
-
if (!empty($orderIds)) {
|
354 |
-
foreach ($orderIds as $orderId) {
|
355 |
-
|
356 |
-
/* get the order */
|
357 |
-
$order = Mage::getModel('sales/order')->load($orderId);
|
358 |
-
$address = $order->getShippingAddress();
|
359 |
-
$billingAddress = $order->getBillingAddress();
|
360 |
-
|
361 |
-
$_shippingMethod = explode('_', $order->getShippingMethod());
|
362 |
-
|
363 |
-
/* customer id */
|
364 |
-
$content = $this->_addFieldToCsv($content, $delimiter, ($order->getCustomerId() ? $order->getCustomerId() : $address->getLastname()));
|
365 |
-
$content .= $separator;
|
366 |
-
/* Nom du point relais OU société si livraison à domicile */
|
367 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $address->getCompany());
|
368 |
-
$content .= $separator;
|
369 |
-
/* customer name */
|
370 |
-
$content = $this->_addFieldToCsv($content, $delimiter, ($address->getFirstname() ? $address->getFirstname() : $billingAddress->getFirstname()));
|
371 |
-
$content .= $separator;
|
372 |
-
$content = $this->_addFieldToCsv($content, $delimiter, ($address->getLastname() ? $address->getLastname() : $billingAddress->getLastname()));
|
373 |
-
$content .= $separator;
|
374 |
-
/* street address */
|
375 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getStreet(1)));
|
376 |
-
$content .= $separator;
|
377 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getStreet(2)));
|
378 |
-
$content .= $separator;
|
379 |
-
|
380 |
-
/* digicode (vide)*/
|
381 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
382 |
-
$content .= $separator;
|
383 |
-
|
384 |
-
/* postal code */
|
385 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getPostcode()));
|
386 |
-
$content .= $separator;
|
387 |
-
/* city */
|
388 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getCity()));
|
389 |
-
$content .= $separator;
|
390 |
-
/* country code */
|
391 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getCountry()));
|
392 |
-
$content .= $separator;
|
393 |
-
/* telephone */
|
394 |
-
$telephone = trim(ereg_replace("[^0-9.-]", " ", $address->getTelephone()));
|
395 |
-
$telephone = (strlen($telephone) >= 10 ? $telephone : '');
|
396 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $telephone);
|
397 |
-
$content .= $separator;
|
398 |
-
/* email */
|
399 |
-
$customer_email = ($address->getEmail()) ? $address->getEmail() : ($billingAddress->getEmail() ? $billingAddress->getEmail() : $order->getCustomerEmail());
|
400 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($customer_email));
|
401 |
-
$content .= $separator;
|
402 |
-
/* real order id */
|
403 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($order->getRealOrderId()));
|
404 |
-
$content .= $separator;
|
405 |
-
|
406 |
-
/* code barre client (vide) */
|
407 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
408 |
-
$content .= $separator;
|
409 |
-
|
410 |
-
/* productCode */
|
411 |
-
$productCode = Mage::helper('chronorelais')->getChronoProductCodeString($_shippingMethod[0]);
|
412 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $productCode);
|
413 |
-
$content .= $separator;
|
414 |
-
|
415 |
-
/* compte (vide) */
|
416 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
417 |
-
$content .= $separator;
|
418 |
-
|
419 |
-
/* sous compte (vide) */
|
420 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
421 |
-
$content .= $separator;
|
422 |
-
|
423 |
-
/* empty fields */
|
424 |
-
$content = $this->_addFieldToCsv($content, $delimiter, 0);
|
425 |
-
$content .= $separator;
|
426 |
-
$content = $this->_addFieldToCsv($content, $delimiter, 0);
|
427 |
-
$content .= $separator;
|
428 |
-
|
429 |
-
/* document / marchandise (vide) */
|
430 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
431 |
-
$content .= $separator;
|
432 |
-
|
433 |
-
/* description contenu (vide) */
|
434 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
435 |
-
$content .= $separator;
|
436 |
-
|
437 |
-
/* Livraison Samedi */
|
438 |
-
$SaturdayShipping = 'L'; //default value for the saturday shipping
|
439 |
-
if ($_shippingMethod[0] == "chronopost" || $_shippingMethod[0] == "chronorelais") {
|
440 |
-
if (!$_deliver_on_saturday = Mage::helper('chronorelais')->getLivraisonSamediStatus($orderId)) {
|
441 |
-
$_deliver_on_saturday = Mage::helper('chronorelais')->getConfigData('carriers/' . $_shippingMethod[0] . '/deliver_on_saturday');
|
442 |
-
} else {
|
443 |
-
if ($_deliver_on_saturday == 'Yes') {
|
444 |
-
$_deliver_on_saturday = 1;
|
445 |
-
} else {
|
446 |
-
$_deliver_on_saturday = 0;
|
447 |
-
}
|
448 |
-
}
|
449 |
-
$is_sending_day = Mage::helper('chronorelais')->isSendingDay();
|
450 |
-
if ($_deliver_on_saturday && $is_sending_day == true) {
|
451 |
-
$SaturdayShipping = 'S';
|
452 |
-
} elseif (!$_deliver_on_saturday && $is_sending_day == true) {
|
453 |
-
$SaturdayShipping = 'L';
|
454 |
-
}
|
455 |
-
}
|
456 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $SaturdayShipping);
|
457 |
-
$content .= $separator;
|
458 |
-
|
459 |
-
/* chronorelay point */
|
460 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getWRelayPointCode()));
|
461 |
-
$content .= $separator;
|
462 |
-
|
463 |
-
/* total weight (in kg) */
|
464 |
-
$order_weight = number_format($order->getWeight(), 2, '.', '');
|
465 |
-
if($weightUnit == 'g') {
|
466 |
-
$order_weight = $order_weight / 1000;
|
467 |
-
}
|
468 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $order_weight);
|
469 |
-
$content .= $separator;
|
470 |
-
|
471 |
-
|
472 |
-
/* largeur (vide) */
|
473 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
474 |
-
$content .= $separator;
|
475 |
-
|
476 |
-
/* longueur (vide) */
|
477 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
478 |
-
$content .= $separator;
|
479 |
-
|
480 |
-
/* hauteur (vide) */
|
481 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
482 |
-
$content .= $separator;
|
483 |
-
|
484 |
-
/* avertir destinataire (vide) */
|
485 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
486 |
-
$content .= $separator;
|
487 |
-
|
488 |
-
/* nb colis (vide) */
|
489 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
490 |
-
$content .= $separator;
|
491 |
-
|
492 |
-
/* date envoi */
|
493 |
-
$content = $this->_addFieldToCsv($content, $delimiter, date('d/m/Y'));
|
494 |
-
$content .= $separator;
|
495 |
-
|
496 |
-
/* a intégrer (vide) */
|
497 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
498 |
-
$content .= $separator;
|
499 |
-
|
500 |
-
/* avertir expéditeur (vide) */
|
501 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
502 |
-
$content .= $separator;
|
503 |
-
|
504 |
-
/* DLC (vide) */
|
505 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
506 |
-
$content .= $separator;
|
507 |
-
|
508 |
-
/* champ specifique rdv */
|
509 |
-
$chronopostsrdv_creneaux_info = $address->getData('chronopostsrdv_creneaux_info');
|
510 |
-
if($chronopostsrdv_creneaux_info) {
|
511 |
-
$chronopostsrdv_creneaux_info = json_decode($chronopostsrdv_creneaux_info,true);
|
512 |
-
$_dateRdvStart = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
513 |
-
$_dateRdvStart->setTime($chronopostsrdv_creneaux_info['startHour'],$chronopostsrdv_creneaux_info['startMinutes']);
|
514 |
-
|
515 |
-
$_dateRdvEnd = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
516 |
-
$_dateRdvEnd->setTime($chronopostsrdv_creneaux_info['endHour'],$chronopostsrdv_creneaux_info['endMinutes']);
|
517 |
-
|
518 |
-
/* date debut rdv */
|
519 |
-
//$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvStart->format("Y-m-d")."T".$_dateRdvStart->format("H:i:s"));
|
520 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvStart->format("dmyHi"));
|
521 |
-
$content .= $separator;
|
522 |
-
|
523 |
-
/* date fin rdv */
|
524 |
-
//$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvEnd->format("Y-m-d")."T".$_dateRdvEnd->format("H:i:s"));
|
525 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvEnd->format("dmyHi"));
|
526 |
-
$content .= $separator;
|
527 |
-
|
528 |
-
/* Niveau tarifaire */
|
529 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $chronopostsrdv_creneaux_info['tariffLevel']);
|
530 |
-
$content .= $separator;
|
531 |
-
|
532 |
-
/* code service */
|
533 |
-
$content = $this->_addFieldToCsv($content, $delimiter, $chronopostsrdv_creneaux_info['serviceCode']);
|
534 |
-
$content .= $separator;
|
535 |
-
|
536 |
-
} else {
|
537 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
538 |
-
$content .= $separator;
|
539 |
-
|
540 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
541 |
-
$content .= $separator;
|
542 |
-
|
543 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
544 |
-
$content .= $separator;
|
545 |
-
|
546 |
-
/* code service */
|
547 |
-
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
548 |
-
$content .= $separator;
|
549 |
-
}
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
$content .= $lineBreak;
|
554 |
-
|
555 |
-
}
|
556 |
-
|
557 |
-
/* decode the content, depending on the charset */
|
558 |
-
if ($fileCharset == 'ISO-8859-1') {
|
559 |
-
$content = utf8_decode($content);
|
560 |
-
}
|
561 |
-
|
562 |
-
/* pick file mime type, depending on the extension */
|
563 |
-
switch ($fileExtension) {
|
564 |
-
case '.csv':
|
565 |
-
$fileMimeType = 'application/csv';
|
566 |
-
break;
|
567 |
-
case '.chr':
|
568 |
-
$fileMimeType = 'application/chr';
|
569 |
-
break;
|
570 |
-
default:
|
571 |
-
$fileMimeType = 'text/plain';
|
572 |
-
break;
|
573 |
-
}
|
574 |
-
/* download the file */
|
575 |
-
return $this->_prepareDownloadResponse($filename, $content, $fileMimeType . '; charset="' . $fileCharset . '"');
|
576 |
-
} else {
|
577 |
-
$this->_getSession()->addError($this->__('No Order has been selected'));
|
578 |
-
}
|
579 |
-
}
|
580 |
-
|
581 |
-
/* Save the Livraison le Samedi status to orders */
|
582 |
-
|
583 |
-
public function saveLivraisonSamediStatusAction() {
|
584 |
-
/* get the orders */
|
585 |
-
$orderIds = $this->getRequest()->getPost('order_ids');
|
586 |
-
$status = $this->getRequest()->getPost('status');
|
587 |
-
$_connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
588 |
-
$_table = Mage::getSingleton('core/resource')->getTableName('sales_chronopost_order_export_status');
|
589 |
-
$exceptions = array();
|
590 |
-
|
591 |
-
foreach ($orderIds as $orderId) {
|
592 |
-
$order_details = Mage::getModel('sales/order')->load($orderId);
|
593 |
-
$shipping_method = '';
|
594 |
-
$livraison_le_samedi = $status;
|
595 |
-
if ($shipping_method = $order_details->getShippingMethod()) {
|
596 |
-
$shipping_method = explode('_', $shipping_method);
|
597 |
-
if ($shipping_method[0] == 'chronoexpress') {
|
598 |
-
$livraison_le_samedi = '--';
|
599 |
-
}
|
600 |
-
}
|
601 |
-
$condition = array(
|
602 |
-
$_connection->quoteInto('order_id = ?', $orderId),
|
603 |
-
);
|
604 |
-
$_connection->delete($_table, $condition);
|
605 |
-
|
606 |
-
$dataLine = array(
|
607 |
-
'order_id' => $orderId,
|
608 |
-
'livraison_le_samedi' => $livraison_le_samedi
|
609 |
-
);
|
610 |
-
try {
|
611 |
-
$_connection->insert($_table, $dataLine);
|
612 |
-
} catch (Exception $e) {
|
613 |
-
$exceptions[] = Mage::helper('chronorelais')->__('Order assigning error: ' . $e->getMessage());
|
614 |
-
}
|
615 |
-
}
|
616 |
-
if ($exceptions) {
|
617 |
-
$this->_getSession()->addError($exceptions);
|
618 |
-
} else {
|
619 |
-
$this->_getSession()->addSuccess($this->__('Livraison le Samedi statut a été ajouté'));
|
620 |
-
}
|
621 |
-
$this->_redirect('*/*/index');
|
622 |
-
}
|
623 |
-
|
624 |
-
/**
|
625 |
-
* Add a new field to the csv file
|
626 |
-
* @param csvContent : the current csv content
|
627 |
-
* @param fieldDelimiter : the delimiter character
|
628 |
-
* @param fieldContent : the content to add
|
629 |
-
* @return : the concatenation of current content and content to add
|
630 |
-
*/
|
631 |
-
private function _addFieldToCsv($csvContent, $fieldDelimiter, $fieldContent) {
|
632 |
-
return $csvContent . $fieldDelimiter . $fieldContent . $fieldDelimiter;
|
633 |
-
}
|
634 |
-
|
635 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Chronopost_Chronorelais_Adminhtml_Chronorelais_ExportController extends Mage_Adminhtml_Controller_Action {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Constructor
|
7 |
+
*/
|
8 |
+
protected function _construct() {
|
9 |
+
$this->setUsedModuleName('Chronopost_Chronorelais');
|
10 |
+
}
|
11 |
+
|
12 |
+
protected function _isAllowed(){
|
13 |
+
return true;
|
14 |
+
}
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Main action : show orders list
|
18 |
+
*/
|
19 |
+
public function indexAction() {
|
20 |
+
$this->loadLayout()
|
21 |
+
->_setActiveMenu('sales/chronorelais/export')
|
22 |
+
->_addContent($this->getLayout()->createBlock('chronorelais/export_orders'))
|
23 |
+
->renderLayout();
|
24 |
+
}
|
25 |
+
|
26 |
+
public function getValue($value) {
|
27 |
+
return ($value != '' ? $value : '');
|
28 |
+
}
|
29 |
+
|
30 |
+
public function removeSpclChars($text) {
|
31 |
+
return preg_replace("/[^0-9a-zA-Z]/", "", $text);
|
32 |
+
}
|
33 |
+
|
34 |
+
public function massLivraisonSamediStatusAction() {
|
35 |
+
if ($this->getRequest()->getPost('status')) {
|
36 |
+
$this->saveLivraisonSamediStatusAction();
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
public function massExportAction() {
|
41 |
+
if ($this->getRequest()->getPost('format') == 'css') {
|
42 |
+
$this->exportcssAction();
|
43 |
+
} elseif ($this->getRequest()->getPost('format') == 'cso') {
|
44 |
+
$this->exportcsoAction();
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Export CSS Action
|
50 |
+
* Generates a CSV file to download (CSS format)
|
51 |
+
*/
|
52 |
+
public function exportcssAction() {
|
53 |
+
/* get the orders */
|
54 |
+
$orderIds = $this->getRequest()->getPost('order_ids');
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Get configuration
|
58 |
+
*/
|
59 |
+
$separator = Mage::helper('chronorelais')->getConfigurationFieldSeparator('css');
|
60 |
+
$delimiter = Mage::helper('chronorelais')->getConfigurationFieldDelimiter('css');
|
61 |
+
|
62 |
+
if ($delimiter == 'simple_quote') {
|
63 |
+
$delimiter = "'";
|
64 |
+
} else if ($delimiter == 'double_quotes') {
|
65 |
+
$delimiter = '"';
|
66 |
+
} else {
|
67 |
+
$delimiter = '';
|
68 |
+
}
|
69 |
+
$lineBreak = Mage::helper('chronorelais')->getConfigurationEndOfLineCharacter('css');
|
70 |
+
if ($lineBreak == 'lf') {
|
71 |
+
$lineBreak = "\n";
|
72 |
+
} else if ($lineBreak == 'cr') {
|
73 |
+
$lineBreak = "\r";
|
74 |
+
} else if ($lineBreak == 'crlf') {
|
75 |
+
$lineBreak = "\r\n";
|
76 |
+
}
|
77 |
+
$fileExtension = Mage::helper('chronorelais')->getConfigurationFileExtension('css');
|
78 |
+
$fileCharset = Mage::helper('chronorelais')->getConfigurationFileCharset('css');
|
79 |
+
|
80 |
+
/* set the filename */
|
81 |
+
$filename = 'orders_exportcss_' . Mage::getSingleton('core/date')->date('Ymd_His') . $fileExtension;
|
82 |
+
|
83 |
+
/* initialize the content variable */
|
84 |
+
$content = '';
|
85 |
+
$helper = Mage::helper('chronorelais');
|
86 |
+
$weightUnit = $helper->getConfigWeightUnit();
|
87 |
+
if (!empty($orderIds)) {
|
88 |
+
foreach ($orderIds as $orderId) {
|
89 |
+
|
90 |
+
/* get the order */
|
91 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
92 |
+
$address = $order->getShippingAddress();
|
93 |
+
$billingAddress = $order->getBillingAddress();
|
94 |
+
|
95 |
+
$_shippingMethod = explode('_', $order->getShippingMethod());
|
96 |
+
|
97 |
+
/* customer id */
|
98 |
+
$content = $this->_addFieldToCsv($content, $delimiter, ($order->getCustomerId() ? $order->getCustomerId() : $address->getLastname()));
|
99 |
+
$content .= $separator;
|
100 |
+
/* Nom du point relais OU société si livraison à domicile */
|
101 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $address->getCompany());
|
102 |
+
$content .= $separator;
|
103 |
+
/* customer name */
|
104 |
+
$content = $this->_addFieldToCsv($content, $delimiter, ($address->getFirstname() ? $address->getFirstname() : $billingAddress->getFirstname()));
|
105 |
+
$content .= $separator;
|
106 |
+
$content = $this->_addFieldToCsv($content, $delimiter, ($address->getLastname() ? $address->getLastname() : $billingAddress->getLastname()));
|
107 |
+
$content .= $separator;
|
108 |
+
/* street address */
|
109 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getStreet(1)));
|
110 |
+
$content .= $separator;
|
111 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getStreet(2)));
|
112 |
+
$content .= $separator;
|
113 |
+
|
114 |
+
/* digicode (vide)*/
|
115 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
116 |
+
$content .= $separator;
|
117 |
+
|
118 |
+
/* postal code */
|
119 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getPostcode()));
|
120 |
+
$content .= $separator;
|
121 |
+
/* city */
|
122 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getCity()));
|
123 |
+
$content .= $separator;
|
124 |
+
/* country code */
|
125 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getCountry()));
|
126 |
+
$content .= $separator;
|
127 |
+
/* telephone */
|
128 |
+
$telephone = trim(ereg_replace("[^0-9.-]", " ", $address->getTelephone()));
|
129 |
+
$telephone = (strlen($telephone) >= 10 ? $telephone : '');
|
130 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $telephone);
|
131 |
+
$content .= $separator;
|
132 |
+
/* email */
|
133 |
+
$customer_email = ($address->getEmail()) ? $address->getEmail() : ($billingAddress->getEmail() ? $billingAddress->getEmail() : $order->getCustomerEmail());
|
134 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($customer_email));
|
135 |
+
$content .= $separator;
|
136 |
+
/* real order id */
|
137 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($order->getRealOrderId()));
|
138 |
+
$content .= $separator;
|
139 |
+
|
140 |
+
/* code barre client (vide) */
|
141 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
142 |
+
$content .= $separator;
|
143 |
+
|
144 |
+
/* productCode */
|
145 |
+
$productCode = Mage::helper('chronorelais')->getChronoProductCodeString($_shippingMethod[0]);
|
146 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $productCode);
|
147 |
+
$content .= $separator;
|
148 |
+
|
149 |
+
/* compte (vide) */
|
150 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
151 |
+
$content .= $separator;
|
152 |
+
|
153 |
+
/* sous compte (vide) */
|
154 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
155 |
+
$content .= $separator;
|
156 |
+
|
157 |
+
/* empty fields */
|
158 |
+
$content = $this->_addFieldToCsv($content, $delimiter, 0);
|
159 |
+
$content .= $separator;
|
160 |
+
$content = $this->_addFieldToCsv($content, $delimiter, 0);
|
161 |
+
$content .= $separator;
|
162 |
+
|
163 |
+
/* document / marchandise (vide) */
|
164 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
165 |
+
$content .= $separator;
|
166 |
+
|
167 |
+
/* description contenu (vide) */
|
168 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
169 |
+
$content .= $separator;
|
170 |
+
|
171 |
+
/* Livraison Samedi */
|
172 |
+
$SaturdayShipping = 'L'; //default value for the saturday shipping
|
173 |
+
if ($_shippingMethod[0] == "chronopost" || $_shippingMethod[0] == "chronorelais") {
|
174 |
+
if (!$_deliver_on_saturday = Mage::helper('chronorelais')->getLivraisonSamediStatus($orderId)) {
|
175 |
+
$_deliver_on_saturday = Mage::helper('chronorelais')->getConfigData('carriers/' . $_shippingMethod[0] . '/deliver_on_saturday');
|
176 |
+
} else {
|
177 |
+
if ($_deliver_on_saturday == 'Yes') {
|
178 |
+
$_deliver_on_saturday = 1;
|
179 |
+
} else {
|
180 |
+
$_deliver_on_saturday = 0;
|
181 |
+
}
|
182 |
+
}
|
183 |
+
$is_sending_day = Mage::helper('chronorelais')->isSendingDay();
|
184 |
+
if ($_deliver_on_saturday && $is_sending_day == true) {
|
185 |
+
$SaturdayShipping = 'S';
|
186 |
+
} elseif (!$_deliver_on_saturday && $is_sending_day == true) {
|
187 |
+
$SaturdayShipping = 'L';
|
188 |
+
}
|
189 |
+
}
|
190 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $SaturdayShipping);
|
191 |
+
$content .= $separator;
|
192 |
+
|
193 |
+
/* chronorelay point */
|
194 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getWRelayPointCode()));
|
195 |
+
$content .= $separator;
|
196 |
+
|
197 |
+
/* total weight (in kg) */
|
198 |
+
$order_weight = number_format($order->getWeight(), 2, '.', '');
|
199 |
+
if($weightUnit == 'g') {
|
200 |
+
$order_weight = $order_weight / 1000;
|
201 |
+
}
|
202 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $order_weight);
|
203 |
+
$content .= $separator;
|
204 |
+
|
205 |
+
|
206 |
+
/* largeur (vide) */
|
207 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
208 |
+
$content .= $separator;
|
209 |
+
|
210 |
+
/* longueur (vide) */
|
211 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
212 |
+
$content .= $separator;
|
213 |
+
|
214 |
+
/* hauteur (vide) */
|
215 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
216 |
+
$content .= $separator;
|
217 |
+
|
218 |
+
/* avertir destinataire (vide) */
|
219 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
220 |
+
$content .= $separator;
|
221 |
+
|
222 |
+
/* nb colis (vide) */
|
223 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
224 |
+
$content .= $separator;
|
225 |
+
|
226 |
+
/* date envoi */
|
227 |
+
$content = $this->_addFieldToCsv($content, $delimiter, date('d/m/Y'));
|
228 |
+
$content .= $separator;
|
229 |
+
|
230 |
+
/* a intégrer (vide) */
|
231 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
232 |
+
$content .= $separator;
|
233 |
+
|
234 |
+
/* avertir expéditeur (vide) */
|
235 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
236 |
+
$content .= $separator;
|
237 |
+
|
238 |
+
/* DLC (vide) */
|
239 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
240 |
+
$content .= $separator;
|
241 |
+
|
242 |
+
/* champ specifique rdv */
|
243 |
+
$chronopostsrdv_creneaux_info = $address->getData('chronopostsrdv_creneaux_info');
|
244 |
+
if($chronopostsrdv_creneaux_info) {
|
245 |
+
$chronopostsrdv_creneaux_info = json_decode($chronopostsrdv_creneaux_info,true);
|
246 |
+
$_dateRdvStart = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
247 |
+
$_dateRdvStart->setTime($chronopostsrdv_creneaux_info['startHour'],$chronopostsrdv_creneaux_info['startMinutes']);
|
248 |
+
|
249 |
+
$_dateRdvEnd = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
250 |
+
$_dateRdvEnd->setTime($chronopostsrdv_creneaux_info['endHour'],$chronopostsrdv_creneaux_info['endMinutes']);
|
251 |
+
|
252 |
+
/* date debut rdv */
|
253 |
+
//$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvStart->format("Y-m-d")."T".$_dateRdvStart->format("H:i:s"));
|
254 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvStart->format("dmyHi"));
|
255 |
+
$content .= $separator;
|
256 |
+
|
257 |
+
/* date fin rdv */
|
258 |
+
//$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvEnd->format("Y-m-d")."T".$_dateRdvEnd->format("H:i:s"));
|
259 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvEnd->format("dmyHi"));
|
260 |
+
$content .= $separator;
|
261 |
+
|
262 |
+
/* Niveau tarifaire */
|
263 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $chronopostsrdv_creneaux_info['tariffLevel']);
|
264 |
+
$content .= $separator;
|
265 |
+
|
266 |
+
/* code service */
|
267 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $chronopostsrdv_creneaux_info['serviceCode']);
|
268 |
+
$content .= $separator;
|
269 |
+
|
270 |
+
} else {
|
271 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
272 |
+
$content .= $separator;
|
273 |
+
|
274 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
275 |
+
$content .= $separator;
|
276 |
+
|
277 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
278 |
+
$content .= $separator;
|
279 |
+
|
280 |
+
/* code service */
|
281 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
282 |
+
$content .= $separator;
|
283 |
+
}
|
284 |
+
|
285 |
+
|
286 |
+
|
287 |
+
$content .= $lineBreak;
|
288 |
+
|
289 |
+
}
|
290 |
+
|
291 |
+
/* decode the content, depending on the charset */
|
292 |
+
if ($fileCharset == 'ISO-8859-1') {
|
293 |
+
$content = utf8_decode($content);
|
294 |
+
}
|
295 |
+
|
296 |
+
/* pick file mime type, depending on the extension */
|
297 |
+
switch ($fileExtension) {
|
298 |
+
case '.csv':
|
299 |
+
$fileMimeType = 'application/csv';
|
300 |
+
break;
|
301 |
+
case '.chr':
|
302 |
+
$fileMimeType = 'application/chr';
|
303 |
+
break;
|
304 |
+
default:
|
305 |
+
$fileMimeType = 'text/plain';
|
306 |
+
break;
|
307 |
+
}
|
308 |
+
/* download the file */
|
309 |
+
return $this->_prepareDownloadResponse($filename, $content, $fileMimeType . '; charset="' . $fileCharset . '"');
|
310 |
+
} else {
|
311 |
+
$this->_getSession()->addError($this->__('No Order has been selected'));
|
312 |
+
}
|
313 |
+
}
|
314 |
+
|
315 |
+
/**
|
316 |
+
* Export CSO Action
|
317 |
+
* Generates a CSV file to download (CSO format)
|
318 |
+
*/
|
319 |
+
public function exportcsoAction() {
|
320 |
+
/* get the orders */
|
321 |
+
$orderIds = $this->getRequest()->getPost('order_ids');
|
322 |
+
|
323 |
+
/**
|
324 |
+
* Get configuration
|
325 |
+
*/
|
326 |
+
$separator = Mage::helper('chronorelais')->getConfigurationFieldSeparator('cso');
|
327 |
+
$delimiter = Mage::helper('chronorelais')->getConfigurationFieldDelimiter('cso');
|
328 |
+
if ($delimiter == 'simple_quote') {
|
329 |
+
$delimiter = "'";
|
330 |
+
} else if ($delimiter == 'double_quotes') {
|
331 |
+
$delimiter = '"';
|
332 |
+
} else {
|
333 |
+
$delimiter = '';
|
334 |
+
}
|
335 |
+
$lineBreak = Mage::helper('chronorelais')->getConfigurationEndOfLineCharacter('cso');
|
336 |
+
if ($lineBreak == 'lf') {
|
337 |
+
$lineBreak = "\n";
|
338 |
+
} else if ($lineBreak == 'cr') {
|
339 |
+
$lineBreak = "\r";
|
340 |
+
} else if ($lineBreak == 'crlf') {
|
341 |
+
$lineBreak = "\r\n";
|
342 |
+
}
|
343 |
+
$fileExtension = Mage::helper('chronorelais')->getConfigurationFileExtension('cso');
|
344 |
+
$fileCharset = Mage::helper('chronorelais')->getConfigurationFileCharset('cso');
|
345 |
+
|
346 |
+
/* set the filename */
|
347 |
+
$filename = 'orders_exportcso_' . Mage::getSingleton('core/date')->date('Ymd_His') . $fileExtension;
|
348 |
+
|
349 |
+
/* initialize the content variable */
|
350 |
+
$content = '';
|
351 |
+
$helper = Mage::helper('chronorelais');
|
352 |
+
$weightUnit = $helper->getConfigWeightUnit();
|
353 |
+
if (!empty($orderIds)) {
|
354 |
+
foreach ($orderIds as $orderId) {
|
355 |
+
|
356 |
+
/* get the order */
|
357 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
358 |
+
$address = $order->getShippingAddress();
|
359 |
+
$billingAddress = $order->getBillingAddress();
|
360 |
+
|
361 |
+
$_shippingMethod = explode('_', $order->getShippingMethod());
|
362 |
+
|
363 |
+
/* customer id */
|
364 |
+
$content = $this->_addFieldToCsv($content, $delimiter, ($order->getCustomerId() ? $order->getCustomerId() : $address->getLastname()));
|
365 |
+
$content .= $separator;
|
366 |
+
/* Nom du point relais OU société si livraison à domicile */
|
367 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $address->getCompany());
|
368 |
+
$content .= $separator;
|
369 |
+
/* customer name */
|
370 |
+
$content = $this->_addFieldToCsv($content, $delimiter, ($address->getFirstname() ? $address->getFirstname() : $billingAddress->getFirstname()));
|
371 |
+
$content .= $separator;
|
372 |
+
$content = $this->_addFieldToCsv($content, $delimiter, ($address->getLastname() ? $address->getLastname() : $billingAddress->getLastname()));
|
373 |
+
$content .= $separator;
|
374 |
+
/* street address */
|
375 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getStreet(1)));
|
376 |
+
$content .= $separator;
|
377 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getStreet(2)));
|
378 |
+
$content .= $separator;
|
379 |
+
|
380 |
+
/* digicode (vide)*/
|
381 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
382 |
+
$content .= $separator;
|
383 |
+
|
384 |
+
/* postal code */
|
385 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getPostcode()));
|
386 |
+
$content .= $separator;
|
387 |
+
/* city */
|
388 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getCity()));
|
389 |
+
$content .= $separator;
|
390 |
+
/* country code */
|
391 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getCountry()));
|
392 |
+
$content .= $separator;
|
393 |
+
/* telephone */
|
394 |
+
$telephone = trim(ereg_replace("[^0-9.-]", " ", $address->getTelephone()));
|
395 |
+
$telephone = (strlen($telephone) >= 10 ? $telephone : '');
|
396 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $telephone);
|
397 |
+
$content .= $separator;
|
398 |
+
/* email */
|
399 |
+
$customer_email = ($address->getEmail()) ? $address->getEmail() : ($billingAddress->getEmail() ? $billingAddress->getEmail() : $order->getCustomerEmail());
|
400 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($customer_email));
|
401 |
+
$content .= $separator;
|
402 |
+
/* real order id */
|
403 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($order->getRealOrderId()));
|
404 |
+
$content .= $separator;
|
405 |
+
|
406 |
+
/* code barre client (vide) */
|
407 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
408 |
+
$content .= $separator;
|
409 |
+
|
410 |
+
/* productCode */
|
411 |
+
$productCode = Mage::helper('chronorelais')->getChronoProductCodeString($_shippingMethod[0]);
|
412 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $productCode);
|
413 |
+
$content .= $separator;
|
414 |
+
|
415 |
+
/* compte (vide) */
|
416 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
417 |
+
$content .= $separator;
|
418 |
+
|
419 |
+
/* sous compte (vide) */
|
420 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
421 |
+
$content .= $separator;
|
422 |
+
|
423 |
+
/* empty fields */
|
424 |
+
$content = $this->_addFieldToCsv($content, $delimiter, 0);
|
425 |
+
$content .= $separator;
|
426 |
+
$content = $this->_addFieldToCsv($content, $delimiter, 0);
|
427 |
+
$content .= $separator;
|
428 |
+
|
429 |
+
/* document / marchandise (vide) */
|
430 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
431 |
+
$content .= $separator;
|
432 |
+
|
433 |
+
/* description contenu (vide) */
|
434 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
435 |
+
$content .= $separator;
|
436 |
+
|
437 |
+
/* Livraison Samedi */
|
438 |
+
$SaturdayShipping = 'L'; //default value for the saturday shipping
|
439 |
+
if ($_shippingMethod[0] == "chronopost" || $_shippingMethod[0] == "chronorelais") {
|
440 |
+
if (!$_deliver_on_saturday = Mage::helper('chronorelais')->getLivraisonSamediStatus($orderId)) {
|
441 |
+
$_deliver_on_saturday = Mage::helper('chronorelais')->getConfigData('carriers/' . $_shippingMethod[0] . '/deliver_on_saturday');
|
442 |
+
} else {
|
443 |
+
if ($_deliver_on_saturday == 'Yes') {
|
444 |
+
$_deliver_on_saturday = 1;
|
445 |
+
} else {
|
446 |
+
$_deliver_on_saturday = 0;
|
447 |
+
}
|
448 |
+
}
|
449 |
+
$is_sending_day = Mage::helper('chronorelais')->isSendingDay();
|
450 |
+
if ($_deliver_on_saturday && $is_sending_day == true) {
|
451 |
+
$SaturdayShipping = 'S';
|
452 |
+
} elseif (!$_deliver_on_saturday && $is_sending_day == true) {
|
453 |
+
$SaturdayShipping = 'L';
|
454 |
+
}
|
455 |
+
}
|
456 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $SaturdayShipping);
|
457 |
+
$content .= $separator;
|
458 |
+
|
459 |
+
/* chronorelay point */
|
460 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $this->getValue($address->getWRelayPointCode()));
|
461 |
+
$content .= $separator;
|
462 |
+
|
463 |
+
/* total weight (in kg) */
|
464 |
+
$order_weight = number_format($order->getWeight(), 2, '.', '');
|
465 |
+
if($weightUnit == 'g') {
|
466 |
+
$order_weight = $order_weight / 1000;
|
467 |
+
}
|
468 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $order_weight);
|
469 |
+
$content .= $separator;
|
470 |
+
|
471 |
+
|
472 |
+
/* largeur (vide) */
|
473 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
474 |
+
$content .= $separator;
|
475 |
+
|
476 |
+
/* longueur (vide) */
|
477 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
478 |
+
$content .= $separator;
|
479 |
+
|
480 |
+
/* hauteur (vide) */
|
481 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
482 |
+
$content .= $separator;
|
483 |
+
|
484 |
+
/* avertir destinataire (vide) */
|
485 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
486 |
+
$content .= $separator;
|
487 |
+
|
488 |
+
/* nb colis (vide) */
|
489 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
490 |
+
$content .= $separator;
|
491 |
+
|
492 |
+
/* date envoi */
|
493 |
+
$content = $this->_addFieldToCsv($content, $delimiter, date('d/m/Y'));
|
494 |
+
$content .= $separator;
|
495 |
+
|
496 |
+
/* a intégrer (vide) */
|
497 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
498 |
+
$content .= $separator;
|
499 |
+
|
500 |
+
/* avertir expéditeur (vide) */
|
501 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
502 |
+
$content .= $separator;
|
503 |
+
|
504 |
+
/* DLC (vide) */
|
505 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
506 |
+
$content .= $separator;
|
507 |
+
|
508 |
+
/* champ specifique rdv */
|
509 |
+
$chronopostsrdv_creneaux_info = $address->getData('chronopostsrdv_creneaux_info');
|
510 |
+
if($chronopostsrdv_creneaux_info) {
|
511 |
+
$chronopostsrdv_creneaux_info = json_decode($chronopostsrdv_creneaux_info,true);
|
512 |
+
$_dateRdvStart = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
513 |
+
$_dateRdvStart->setTime($chronopostsrdv_creneaux_info['startHour'],$chronopostsrdv_creneaux_info['startMinutes']);
|
514 |
+
|
515 |
+
$_dateRdvEnd = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
516 |
+
$_dateRdvEnd->setTime($chronopostsrdv_creneaux_info['endHour'],$chronopostsrdv_creneaux_info['endMinutes']);
|
517 |
+
|
518 |
+
/* date debut rdv */
|
519 |
+
//$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvStart->format("Y-m-d")."T".$_dateRdvStart->format("H:i:s"));
|
520 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvStart->format("dmyHi"));
|
521 |
+
$content .= $separator;
|
522 |
+
|
523 |
+
/* date fin rdv */
|
524 |
+
//$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvEnd->format("Y-m-d")."T".$_dateRdvEnd->format("H:i:s"));
|
525 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $_dateRdvEnd->format("dmyHi"));
|
526 |
+
$content .= $separator;
|
527 |
+
|
528 |
+
/* Niveau tarifaire */
|
529 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $chronopostsrdv_creneaux_info['tariffLevel']);
|
530 |
+
$content .= $separator;
|
531 |
+
|
532 |
+
/* code service */
|
533 |
+
$content = $this->_addFieldToCsv($content, $delimiter, $chronopostsrdv_creneaux_info['serviceCode']);
|
534 |
+
$content .= $separator;
|
535 |
+
|
536 |
+
} else {
|
537 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
538 |
+
$content .= $separator;
|
539 |
+
|
540 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
541 |
+
$content .= $separator;
|
542 |
+
|
543 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
544 |
+
$content .= $separator;
|
545 |
+
|
546 |
+
/* code service */
|
547 |
+
$content = $this->_addFieldToCsv($content, $delimiter, '');
|
548 |
+
$content .= $separator;
|
549 |
+
}
|
550 |
+
|
551 |
+
|
552 |
+
|
553 |
+
$content .= $lineBreak;
|
554 |
+
|
555 |
+
}
|
556 |
+
|
557 |
+
/* decode the content, depending on the charset */
|
558 |
+
if ($fileCharset == 'ISO-8859-1') {
|
559 |
+
$content = utf8_decode($content);
|
560 |
+
}
|
561 |
+
|
562 |
+
/* pick file mime type, depending on the extension */
|
563 |
+
switch ($fileExtension) {
|
564 |
+
case '.csv':
|
565 |
+
$fileMimeType = 'application/csv';
|
566 |
+
break;
|
567 |
+
case '.chr':
|
568 |
+
$fileMimeType = 'application/chr';
|
569 |
+
break;
|
570 |
+
default:
|
571 |
+
$fileMimeType = 'text/plain';
|
572 |
+
break;
|
573 |
+
}
|
574 |
+
/* download the file */
|
575 |
+
return $this->_prepareDownloadResponse($filename, $content, $fileMimeType . '; charset="' . $fileCharset . '"');
|
576 |
+
} else {
|
577 |
+
$this->_getSession()->addError($this->__('No Order has been selected'));
|
578 |
+
}
|
579 |
+
}
|
580 |
+
|
581 |
+
/* Save the Livraison le Samedi status to orders */
|
582 |
+
|
583 |
+
public function saveLivraisonSamediStatusAction() {
|
584 |
+
/* get the orders */
|
585 |
+
$orderIds = $this->getRequest()->getPost('order_ids');
|
586 |
+
$status = $this->getRequest()->getPost('status');
|
587 |
+
$_connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
588 |
+
$_table = Mage::getSingleton('core/resource')->getTableName('sales_chronopost_order_export_status');
|
589 |
+
$exceptions = array();
|
590 |
+
|
591 |
+
foreach ($orderIds as $orderId) {
|
592 |
+
$order_details = Mage::getModel('sales/order')->load($orderId);
|
593 |
+
$shipping_method = '';
|
594 |
+
$livraison_le_samedi = $status;
|
595 |
+
if ($shipping_method = $order_details->getShippingMethod()) {
|
596 |
+
$shipping_method = explode('_', $shipping_method);
|
597 |
+
if ($shipping_method[0] == 'chronoexpress') {
|
598 |
+
$livraison_le_samedi = '--';
|
599 |
+
}
|
600 |
+
}
|
601 |
+
$condition = array(
|
602 |
+
$_connection->quoteInto('order_id = ?', $orderId),
|
603 |
+
);
|
604 |
+
$_connection->delete($_table, $condition);
|
605 |
+
|
606 |
+
$dataLine = array(
|
607 |
+
'order_id' => $orderId,
|
608 |
+
'livraison_le_samedi' => $livraison_le_samedi
|
609 |
+
);
|
610 |
+
try {
|
611 |
+
$_connection->insert($_table, $dataLine);
|
612 |
+
} catch (Exception $e) {
|
613 |
+
$exceptions[] = Mage::helper('chronorelais')->__('Order assigning error: ' . $e->getMessage());
|
614 |
+
}
|
615 |
+
}
|
616 |
+
if ($exceptions) {
|
617 |
+
$this->_getSession()->addError($exceptions);
|
618 |
+
} else {
|
619 |
+
$this->_getSession()->addSuccess($this->__('Livraison le Samedi statut a été ajouté'));
|
620 |
+
}
|
621 |
+
$this->_redirect('*/*/index');
|
622 |
+
}
|
623 |
+
|
624 |
+
/**
|
625 |
+
* Add a new field to the csv file
|
626 |
+
* @param csvContent : the current csv content
|
627 |
+
* @param fieldDelimiter : the delimiter character
|
628 |
+
* @param fieldContent : the content to add
|
629 |
+
* @return : the concatenation of current content and content to add
|
630 |
+
*/
|
631 |
+
private function _addFieldToCsv($csvContent, $fieldDelimiter, $fieldContent) {
|
632 |
+
return $csvContent . $fieldDelimiter . $fieldContent . $fieldDelimiter;
|
633 |
+
}
|
634 |
+
|
635 |
}
|
app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/ImportController.php
CHANGED
@@ -1,241 +1,241 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_Adminhtml_Chronorelais_ImportController extends Mage_Adminhtml_Controller_Action
|
3 |
-
{
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Constructor
|
7 |
-
*/
|
8 |
-
protected function _construct()
|
9 |
-
{
|
10 |
-
$this->setUsedModuleName('Chronopost_Chronorelais');
|
11 |
-
}
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Main action : show import form
|
15 |
-
*/
|
16 |
-
public function indexAction()
|
17 |
-
{
|
18 |
-
$this->loadLayout()
|
19 |
-
->_setActiveMenu('sales/chronorelais/import')
|
20 |
-
->_addContent($this->getLayout()->createBlock('chronorelais/import_form'))
|
21 |
-
->renderLayout();
|
22 |
-
}
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Import Action
|
26 |
-
*/
|
27 |
-
public function importAction()
|
28 |
-
{
|
29 |
-
if ($this->getRequest()->isPost() && !empty($_FILES['import_chronorelais_file']['tmp_name'])) {
|
30 |
-
try {
|
31 |
-
$trackingTitle = $_POST['import_chronorelais_tracking_title'];
|
32 |
-
$this->_importChronorelaisFile($_FILES['import_chronorelais_file']['tmp_name'], $trackingTitle);
|
33 |
-
}
|
34 |
-
catch (Mage_Core_Exception $e) {
|
35 |
-
$this->_getSession()->addError($e->getMessage());
|
36 |
-
}
|
37 |
-
catch (Exception $e) {
|
38 |
-
$this->_getSession()->addError($e->getMessage());
|
39 |
-
$this->_getSession()->addError($this->__('Invalid file upload attempt'));
|
40 |
-
}
|
41 |
-
}
|
42 |
-
else {
|
43 |
-
$this->_getSession()->addError($this->__('Invalid file upload attempt'));
|
44 |
-
}
|
45 |
-
$this->_redirect('*/*/index');
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Importation logic
|
50 |
-
* @param string $fileName
|
51 |
-
* @param string $trackingTitle
|
52 |
-
*/
|
53 |
-
protected function _importChronorelaisFile($fileName, $trackingTitle)
|
54 |
-
{
|
55 |
-
/**
|
56 |
-
* File handling
|
57 |
-
**/
|
58 |
-
ini_set('auto_detect_line_endings', true);
|
59 |
-
$csvObject = new Varien_File_Csv();
|
60 |
-
$csvData = $csvObject->getData($fileName);
|
61 |
-
|
62 |
-
/**
|
63 |
-
* File expected fields
|
64 |
-
*/
|
65 |
-
$expectedCsvFields = array(
|
66 |
-
0 => $this->__('Order Id'),
|
67 |
-
1 => $this->__('Tracking Number')
|
68 |
-
);
|
69 |
-
|
70 |
-
/**
|
71 |
-
* Get configuration
|
72 |
-
*/
|
73 |
-
$sendEmail = Mage::helper('chronorelais')->getConfigurationSendEmail();
|
74 |
-
$comment = Mage::helper('chronorelais')->getConfigurationShippingComment();
|
75 |
-
$includeComment = Mage::helper('chronorelais')->getConfigurationIncludeComment();
|
76 |
-
|
77 |
-
/**
|
78 |
-
* $k is line number
|
79 |
-
* $v is line content array
|
80 |
-
*/
|
81 |
-
foreach ($csvData as $k => $v) {
|
82 |
-
|
83 |
-
/**
|
84 |
-
* End of file has more than one empty lines
|
85 |
-
*/
|
86 |
-
if (count($v) <= 1 && !strlen($v[0])) {
|
87 |
-
continue;
|
88 |
-
}
|
89 |
-
|
90 |
-
/**
|
91 |
-
* Check that the number of fields is not lower than expected
|
92 |
-
*/
|
93 |
-
if (count($v) < count($expectedCsvFields)) {
|
94 |
-
$this->_getSession()->addError($this->__('Line %s format is invalid and has been ignored', $k));
|
95 |
-
continue;
|
96 |
-
}
|
97 |
-
|
98 |
-
/**
|
99 |
-
* Get fields content
|
100 |
-
*/
|
101 |
-
$orderId = $v[0];
|
102 |
-
$trackingNumber = $v[1];
|
103 |
-
|
104 |
-
/**
|
105 |
-
* Try to load the order
|
106 |
-
*/
|
107 |
-
$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
|
108 |
-
if (!$order->getId()) {
|
109 |
-
$this->_getSession()->addError($this->__('Order %s does not exist', $orderId));
|
110 |
-
continue;
|
111 |
-
}
|
112 |
-
|
113 |
-
/**
|
114 |
-
* Try to create a shipment
|
115 |
-
*/
|
116 |
-
$shipmentId = $this->_createShipment($order, $trackingNumber, $trackingTitle, $sendEmail, $comment, $includeComment);
|
117 |
-
|
118 |
-
if ($shipmentId != 0) {
|
119 |
-
$this->_getSession()->addSuccess($this->__('Shipment %s created for order %s, with tracking number %s', $shipmentId, $orderId, $trackingNumber));
|
120 |
-
}
|
121 |
-
|
122 |
-
}//foreach
|
123 |
-
|
124 |
-
}
|
125 |
-
|
126 |
-
/**
|
127 |
-
* Create new shipment for order
|
128 |
-
* Inspired by Mage_Sales_Model_Order_Shipment_Api methods
|
129 |
-
*
|
130 |
-
* @param Mage_Sales_Model_Order $order (it should exist, no control is done into the method)
|
131 |
-
* @param string $trackingNumber
|
132 |
-
* @param string $trackingTitle
|
133 |
-
* @param booleam $email
|
134 |
-
* @param string $comment
|
135 |
-
* @param boolean $includeComment
|
136 |
-
* @return int : shipment real id if creation was ok, else 0
|
137 |
-
*/
|
138 |
-
public function _createShipment($order, $trackingNumber, $trackingTitle, $email, $comment, $includeComment)
|
139 |
-
{
|
140 |
-
/**
|
141 |
-
* Check shipment creation availability
|
142 |
-
*/
|
143 |
-
if (!$order->canShip()) {
|
144 |
-
$this->_getSession()->addError($this->__('Order %s can not be shipped or has already been shipped', $order->getRealOrderId()));
|
145 |
-
return 0;
|
146 |
-
}
|
147 |
-
|
148 |
-
/**
|
149 |
-
* Initialize the Mage_Sales_Model_Order_Shipment object
|
150 |
-
*/
|
151 |
-
$convertor = Mage::getModel('sales/convert_order');
|
152 |
-
$shipment = $convertor->toShipment($order);
|
153 |
-
|
154 |
-
/**
|
155 |
-
* Add the items to send
|
156 |
-
*/
|
157 |
-
foreach ($order->getAllItems() as $orderItem) {
|
158 |
-
if (!$orderItem->getQtyToShip()) {
|
159 |
-
continue;
|
160 |
-
}
|
161 |
-
if ($orderItem->getIsVirtual()) {
|
162 |
-
continue;
|
163 |
-
}
|
164 |
-
|
165 |
-
$item = $convertor->itemToShipmentItem($orderItem);
|
166 |
-
$qty = $orderItem->getQtyToShip();
|
167 |
-
$item->setQty($qty);
|
168 |
-
|
169 |
-
$shipment->addItem($item);
|
170 |
-
}//foreach
|
171 |
-
|
172 |
-
$shipment->register();
|
173 |
-
|
174 |
-
/**
|
175 |
-
* Tracking number instanciation
|
176 |
-
*/
|
177 |
-
|
178 |
-
$_shippingMethod = explode("_",$order->getShippingMethod());
|
179 |
-
switch($_shippingMethod[0]) {
|
180 |
-
case "chronopost":
|
181 |
-
case "chronorelais":
|
182 |
-
case "chronoexpress":
|
183 |
-
$carrier_code = $_shippingMethod[0];
|
184 |
-
$popup = 1;
|
185 |
-
$tracking_url = str_replace('{tracking_number}', $trackingNumber, Mage::helper('chronorelais')->getConfigurationTrackingViewUrl());
|
186 |
-
$tracking_title = $this->__('Track Your Order');
|
187 |
-
$tracking_order = '<p><a title="'.$tracking_title.'" href="'.$tracking_url.'"><b>'.$tracking_title.'</b></a></p>';
|
188 |
-
break;
|
189 |
-
default:
|
190 |
-
$carrier_code = 'custom';
|
191 |
-
$popup = 0;
|
192 |
-
$tracking_order = '';
|
193 |
-
break;
|
194 |
-
}
|
195 |
-
|
196 |
-
$track = Mage::getModel('sales/order_shipment_track')
|
197 |
-
->setNumber($trackingNumber) //setTrackingNumber ?
|
198 |
-
->setCarrierCode($carrier_code)
|
199 |
-
->setTitle($trackingTitle)
|
200 |
-
->setPopup($popup);
|
201 |
-
$shipment->addTrack($track);
|
202 |
-
|
203 |
-
/**
|
204 |
-
* Comment handling
|
205 |
-
*/
|
206 |
-
$shipment->addComment($comment, $email && $includeComment);
|
207 |
-
|
208 |
-
/**
|
209 |
-
* Change order status to Processing
|
210 |
-
*/
|
211 |
-
$shipment->getOrder()->setIsInProcess(true);
|
212 |
-
|
213 |
-
/**
|
214 |
-
* If e-mail, set as sent (must be done before shipment object saving)
|
215 |
-
*/
|
216 |
-
if ($email) {
|
217 |
-
$shipment->setEmailSent(true);
|
218 |
-
}
|
219 |
-
|
220 |
-
try {
|
221 |
-
/**
|
222 |
-
* Save the created shipment and the updated order
|
223 |
-
*/
|
224 |
-
$shipment->save();
|
225 |
-
$shipment->getOrder()->save();
|
226 |
-
|
227 |
-
/**
|
228 |
-
* Email sending
|
229 |
-
*/
|
230 |
-
$shipment->sendEmail($email, ($includeComment ? $tracking_order.$comment : $tracking_order));
|
231 |
-
} catch (Mage_Core_Exception $e) {
|
232 |
-
$this->_getSession()->addError($this->__('Shipment creation error for Order %s : %s', $orderId, $e->getMessage()));
|
233 |
-
return 0;
|
234 |
-
}
|
235 |
-
|
236 |
-
/**
|
237 |
-
* Everything was ok : return Shipment real id
|
238 |
-
*/
|
239 |
-
return $shipment->getIncrementId();
|
240 |
-
}
|
241 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_Adminhtml_Chronorelais_ImportController extends Mage_Adminhtml_Controller_Action
|
3 |
+
{
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Constructor
|
7 |
+
*/
|
8 |
+
protected function _construct()
|
9 |
+
{
|
10 |
+
$this->setUsedModuleName('Chronopost_Chronorelais');
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Main action : show import form
|
15 |
+
*/
|
16 |
+
public function indexAction()
|
17 |
+
{
|
18 |
+
$this->loadLayout()
|
19 |
+
->_setActiveMenu('sales/chronorelais/import')
|
20 |
+
->_addContent($this->getLayout()->createBlock('chronorelais/import_form'))
|
21 |
+
->renderLayout();
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Import Action
|
26 |
+
*/
|
27 |
+
public function importAction()
|
28 |
+
{
|
29 |
+
if ($this->getRequest()->isPost() && !empty($_FILES['import_chronorelais_file']['tmp_name'])) {
|
30 |
+
try {
|
31 |
+
$trackingTitle = $_POST['import_chronorelais_tracking_title'];
|
32 |
+
$this->_importChronorelaisFile($_FILES['import_chronorelais_file']['tmp_name'], $trackingTitle);
|
33 |
+
}
|
34 |
+
catch (Mage_Core_Exception $e) {
|
35 |
+
$this->_getSession()->addError($e->getMessage());
|
36 |
+
}
|
37 |
+
catch (Exception $e) {
|
38 |
+
$this->_getSession()->addError($e->getMessage());
|
39 |
+
$this->_getSession()->addError($this->__('Invalid file upload attempt'));
|
40 |
+
}
|
41 |
+
}
|
42 |
+
else {
|
43 |
+
$this->_getSession()->addError($this->__('Invalid file upload attempt'));
|
44 |
+
}
|
45 |
+
$this->_redirect('*/*/index');
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Importation logic
|
50 |
+
* @param string $fileName
|
51 |
+
* @param string $trackingTitle
|
52 |
+
*/
|
53 |
+
protected function _importChronorelaisFile($fileName, $trackingTitle)
|
54 |
+
{
|
55 |
+
/**
|
56 |
+
* File handling
|
57 |
+
**/
|
58 |
+
ini_set('auto_detect_line_endings', true);
|
59 |
+
$csvObject = new Varien_File_Csv();
|
60 |
+
$csvData = $csvObject->getData($fileName);
|
61 |
+
|
62 |
+
/**
|
63 |
+
* File expected fields
|
64 |
+
*/
|
65 |
+
$expectedCsvFields = array(
|
66 |
+
0 => $this->__('Order Id'),
|
67 |
+
1 => $this->__('Tracking Number')
|
68 |
+
);
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Get configuration
|
72 |
+
*/
|
73 |
+
$sendEmail = Mage::helper('chronorelais')->getConfigurationSendEmail();
|
74 |
+
$comment = Mage::helper('chronorelais')->getConfigurationShippingComment();
|
75 |
+
$includeComment = Mage::helper('chronorelais')->getConfigurationIncludeComment();
|
76 |
+
|
77 |
+
/**
|
78 |
+
* $k is line number
|
79 |
+
* $v is line content array
|
80 |
+
*/
|
81 |
+
foreach ($csvData as $k => $v) {
|
82 |
+
|
83 |
+
/**
|
84 |
+
* End of file has more than one empty lines
|
85 |
+
*/
|
86 |
+
if (count($v) <= 1 && !strlen($v[0])) {
|
87 |
+
continue;
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Check that the number of fields is not lower than expected
|
92 |
+
*/
|
93 |
+
if (count($v) < count($expectedCsvFields)) {
|
94 |
+
$this->_getSession()->addError($this->__('Line %s format is invalid and has been ignored', $k));
|
95 |
+
continue;
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Get fields content
|
100 |
+
*/
|
101 |
+
$orderId = $v[0];
|
102 |
+
$trackingNumber = $v[1];
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Try to load the order
|
106 |
+
*/
|
107 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
|
108 |
+
if (!$order->getId()) {
|
109 |
+
$this->_getSession()->addError($this->__('Order %s does not exist', $orderId));
|
110 |
+
continue;
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Try to create a shipment
|
115 |
+
*/
|
116 |
+
$shipmentId = $this->_createShipment($order, $trackingNumber, $trackingTitle, $sendEmail, $comment, $includeComment);
|
117 |
+
|
118 |
+
if ($shipmentId != 0) {
|
119 |
+
$this->_getSession()->addSuccess($this->__('Shipment %s created for order %s, with tracking number %s', $shipmentId, $orderId, $trackingNumber));
|
120 |
+
}
|
121 |
+
|
122 |
+
}//foreach
|
123 |
+
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Create new shipment for order
|
128 |
+
* Inspired by Mage_Sales_Model_Order_Shipment_Api methods
|
129 |
+
*
|
130 |
+
* @param Mage_Sales_Model_Order $order (it should exist, no control is done into the method)
|
131 |
+
* @param string $trackingNumber
|
132 |
+
* @param string $trackingTitle
|
133 |
+
* @param booleam $email
|
134 |
+
* @param string $comment
|
135 |
+
* @param boolean $includeComment
|
136 |
+
* @return int : shipment real id if creation was ok, else 0
|
137 |
+
*/
|
138 |
+
public function _createShipment($order, $trackingNumber, $trackingTitle, $email, $comment, $includeComment)
|
139 |
+
{
|
140 |
+
/**
|
141 |
+
* Check shipment creation availability
|
142 |
+
*/
|
143 |
+
if (!$order->canShip()) {
|
144 |
+
$this->_getSession()->addError($this->__('Order %s can not be shipped or has already been shipped', $order->getRealOrderId()));
|
145 |
+
return 0;
|
146 |
+
}
|
147 |
+
|
148 |
+
/**
|
149 |
+
* Initialize the Mage_Sales_Model_Order_Shipment object
|
150 |
+
*/
|
151 |
+
$convertor = Mage::getModel('sales/convert_order');
|
152 |
+
$shipment = $convertor->toShipment($order);
|
153 |
+
|
154 |
+
/**
|
155 |
+
* Add the items to send
|
156 |
+
*/
|
157 |
+
foreach ($order->getAllItems() as $orderItem) {
|
158 |
+
if (!$orderItem->getQtyToShip()) {
|
159 |
+
continue;
|
160 |
+
}
|
161 |
+
if ($orderItem->getIsVirtual()) {
|
162 |
+
continue;
|
163 |
+
}
|
164 |
+
|
165 |
+
$item = $convertor->itemToShipmentItem($orderItem);
|
166 |
+
$qty = $orderItem->getQtyToShip();
|
167 |
+
$item->setQty($qty);
|
168 |
+
|
169 |
+
$shipment->addItem($item);
|
170 |
+
}//foreach
|
171 |
+
|
172 |
+
$shipment->register();
|
173 |
+
|
174 |
+
/**
|
175 |
+
* Tracking number instanciation
|
176 |
+
*/
|
177 |
+
|
178 |
+
$_shippingMethod = explode("_",$order->getShippingMethod());
|
179 |
+
switch($_shippingMethod[0]) {
|
180 |
+
case "chronopost":
|
181 |
+
case "chronorelais":
|
182 |
+
case "chronoexpress":
|
183 |
+
$carrier_code = $_shippingMethod[0];
|
184 |
+
$popup = 1;
|
185 |
+
$tracking_url = str_replace('{tracking_number}', $trackingNumber, Mage::helper('chronorelais')->getConfigurationTrackingViewUrl());
|
186 |
+
$tracking_title = $this->__('Track Your Order');
|
187 |
+
$tracking_order = '<p><a title="'.$tracking_title.'" href="'.$tracking_url.'"><b>'.$tracking_title.'</b></a></p>';
|
188 |
+
break;
|
189 |
+
default:
|
190 |
+
$carrier_code = 'custom';
|
191 |
+
$popup = 0;
|
192 |
+
$tracking_order = '';
|
193 |
+
break;
|
194 |
+
}
|
195 |
+
|
196 |
+
$track = Mage::getModel('sales/order_shipment_track')
|
197 |
+
->setNumber($trackingNumber) //setTrackingNumber ?
|
198 |
+
->setCarrierCode($carrier_code)
|
199 |
+
->setTitle($trackingTitle)
|
200 |
+
->setPopup($popup);
|
201 |
+
$shipment->addTrack($track);
|
202 |
+
|
203 |
+
/**
|
204 |
+
* Comment handling
|
205 |
+
*/
|
206 |
+
$shipment->addComment($comment, $email && $includeComment);
|
207 |
+
|
208 |
+
/**
|
209 |
+
* Change order status to Processing
|
210 |
+
*/
|
211 |
+
$shipment->getOrder()->setIsInProcess(true);
|
212 |
+
|
213 |
+
/**
|
214 |
+
* If e-mail, set as sent (must be done before shipment object saving)
|
215 |
+
*/
|
216 |
+
if ($email) {
|
217 |
+
$shipment->setEmailSent(true);
|
218 |
+
}
|
219 |
+
|
220 |
+
try {
|
221 |
+
/**
|
222 |
+
* Save the created shipment and the updated order
|
223 |
+
*/
|
224 |
+
$shipment->save();
|
225 |
+
$shipment->getOrder()->save();
|
226 |
+
|
227 |
+
/**
|
228 |
+
* Email sending
|
229 |
+
*/
|
230 |
+
$shipment->sendEmail($email, ($includeComment ? $tracking_order.$comment : $tracking_order));
|
231 |
+
} catch (Mage_Core_Exception $e) {
|
232 |
+
$this->_getSession()->addError($this->__('Shipment creation error for Order %s : %s', $orderId, $e->getMessage()));
|
233 |
+
return 0;
|
234 |
+
}
|
235 |
+
|
236 |
+
/**
|
237 |
+
* Everything was ok : return Shipment real id
|
238 |
+
*/
|
239 |
+
return $shipment->getIncrementId();
|
240 |
+
}
|
241 |
}
|
app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/Sales/BordereauController.php
CHANGED
@@ -1,329 +1,329 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once 'Mage/Adminhtml/controllers/Sales/OrderController.php';
|
4 |
-
|
5 |
-
class Chronopost_Chronorelais_Adminhtml_Chronorelais_Sales_BordereauController extends Mage_Adminhtml_Sales_OrderController {
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Additional initialization
|
9 |
-
*
|
10 |
-
*/
|
11 |
-
protected function _construct() {
|
12 |
-
$this->setUsedModuleName('Chronopost_Chronorelais');
|
13 |
-
}
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Order grid
|
17 |
-
*/
|
18 |
-
public function indexAction() {
|
19 |
-
if (!extension_loaded('soap')) {
|
20 |
-
$this->_getSession()->addError($this->__('The SOAP extension is not installed in the server. Please contact the site administrator. Sorry for inconvenience.'));
|
21 |
-
return $this->_redirectReferer();
|
22 |
-
}
|
23 |
-
$this->loadLayout()
|
24 |
-
->_setActiveMenu('sales/chronorelais')
|
25 |
-
->_addContent($this->getLayout()->createBlock('chronorelais/sales_bordereau'))
|
26 |
-
->renderLayout();
|
27 |
-
}
|
28 |
-
|
29 |
-
public function massPrintBordereauAction() {
|
30 |
-
$orderIds = $this->getRequest()->getPost('order_ids');
|
31 |
-
try {
|
32 |
-
|
33 |
-
$weightNational = 0;
|
34 |
-
$nbNational = 0;
|
35 |
-
$weightInternational = 0;
|
36 |
-
$nbInternational = 0;
|
37 |
-
|
38 |
-
$helper = Mage::helper('chronorelais');
|
39 |
-
|
40 |
-
/* Shipper */
|
41 |
-
$shipper = array(
|
42 |
-
'accountNumber' => $helper->getConfigurationAccountNumber(),
|
43 |
-
'name' => $helper->getConfigurationShipperInfo('name'),
|
44 |
-
'address1' => $helper->getConfigurationShipperInfo('address1'),
|
45 |
-
'address2' => $helper->getConfigurationShipperInfo('address2'),
|
46 |
-
'city' => $helper->getConfigurationShipperInfo('city'),
|
47 |
-
'postcode' => $helper->getConfigurationShipperInfo('zipcode'),
|
48 |
-
'country' => $helper->getConfigurationShipperInfo('country'),
|
49 |
-
'phone' => $helper->getConfigurationShipperInfo('phone'),
|
50 |
-
);
|
51 |
-
|
52 |
-
$detail = '';
|
53 |
-
$resume = '';
|
54 |
-
foreach($orderIds as $orderId) {
|
55 |
-
$order = Mage::getModel('sales/order')->load($orderId);
|
56 |
-
$_shippingMethod = explode("_", $order->getShippingMethod());
|
57 |
-
$productCode = 'Chrono '.$helper->getChronoProductCodeStringWithBAL($_shippingMethod[0]);
|
58 |
-
$shipments = $order->getShipmentsCollection();
|
59 |
-
foreach($shipments as $shipment) {
|
60 |
-
|
61 |
-
/* Tracking Number */
|
62 |
-
$trackNumber = $this->getTrackingNumber($shipment->getId());
|
63 |
-
|
64 |
-
/* items */
|
65 |
-
$items = $shipment->getAllItems();
|
66 |
-
$weightTotal = 0;
|
67 |
-
|
68 |
-
$maxAmount = $helper->getMaxAdValoremAmount();
|
69 |
-
$adValoremAmount = $helper->assuranceAdValoremAmount();
|
70 |
-
$adValoremEnabled = $helper->assuranceAdValoremEnabled();
|
71 |
-
$totalAdValorem = 0;
|
72 |
-
|
73 |
-
foreach($items as $item) {
|
74 |
-
$weightTotal += $item->getWeight() * $item->getQty();
|
75 |
-
$totalAdValorem += $item->getPrice() * $item->getQty();
|
76 |
-
}
|
77 |
-
/* Si montant < au montant minimum ad valorem => pas d'assurance */
|
78 |
-
$totalAdValorem = 0;
|
79 |
-
if($adValoremEnabled)
|
80 |
-
{
|
81 |
-
$totalAdValorem = min($totalAdValorem,$maxAmount);
|
82 |
-
if($totalAdValorem < $adValoremAmount) {
|
83 |
-
$totalAdValorem = 0;
|
84 |
-
}
|
85 |
-
}
|
86 |
-
|
87 |
-
/* Shipping address */
|
88 |
-
$address = Mage::getModel('sales/order_address')->load($shipment->getShippingAddressId());
|
89 |
-
if($address->getCountryId() == 'FR') {
|
90 |
-
$weightNational += $weightTotal;
|
91 |
-
$nbNational++;
|
92 |
-
}
|
93 |
-
else {
|
94 |
-
$weightInternational += $weightTotal;
|
95 |
-
$nbInternational++;
|
96 |
-
}
|
97 |
-
|
98 |
-
$detail[] = array(
|
99 |
-
'trackNumber' => $trackNumber,
|
100 |
-
'weight' => $weightTotal,
|
101 |
-
'product_code' => $productCode,
|
102 |
-
'postcode' => $address->getPostcode(),
|
103 |
-
'country' => $address->getCountryId(),
|
104 |
-
'assurance' => $totalAdValorem,
|
105 |
-
'city' => Mage::helper('core/string')->truncate($address->getCity(),17),
|
106 |
-
);
|
107 |
-
}
|
108 |
-
}
|
109 |
-
$resume = array(
|
110 |
-
'NATIONAL' => array('unite' => $nbNational, 'poids' => $weightNational),
|
111 |
-
'INTERNATIONAL' => array('unite' => $nbInternational, 'poids' => $weightInternational),
|
112 |
-
'TOTAL' => array('unite' => ($nbNational+$nbInternational), 'poids' => ($weightNational+$weightInternational)),
|
113 |
-
);
|
114 |
-
|
115 |
-
/* Create pdf */
|
116 |
-
$fileName = 'bordereau.pdf';
|
117 |
-
$content = $this->getPdfFile($shipper,$detail,$resume);
|
118 |
-
$this->_prepareDownloadResponse($fileName, $content);
|
119 |
-
|
120 |
-
} catch (Mage_Core_Exception $e) {
|
121 |
-
$this->_getSession()->addError(Mage::helper('chronorelais')->__('Désolé, une erreur est survenu lors de la génération des bordereau. Merci de contacter Chronopost ou de réessayer plus tard'));
|
122 |
-
}
|
123 |
-
}
|
124 |
-
|
125 |
-
protected function getPdfFile($shipper,$detail,$resume) {
|
126 |
-
$pdf = new Zend_Pdf();
|
127 |
-
$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
|
128 |
-
|
129 |
-
$helper = Mage::helper('chronorelais');
|
130 |
-
$weightUnit = $helper->getConfigWeightUnit();
|
131 |
-
|
132 |
-
$minYPosToChangePage = 60;
|
133 |
-
$xPos = 20;
|
134 |
-
$yPos = $page->getHeight()-20;
|
135 |
-
$lineHeight = 15;
|
136 |
-
|
137 |
-
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES);
|
138 |
-
$fontBold = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES_BOLD);
|
139 |
-
|
140 |
-
/* DATE */
|
141 |
-
$page->setFont($font, 11);
|
142 |
-
$page->drawText('date : '.date('d/m/Y'), $page->getWidth()-100, $yPos);
|
143 |
-
$yPos -= ($lineHeight);
|
144 |
-
$page->setFont($font, 12);
|
145 |
-
|
146 |
-
/* TITRE */
|
147 |
-
$page->setFont($fontBold, 12);
|
148 |
-
$page->drawText('BORDEREAU RECAPITULATIF', $xPos, $yPos);
|
149 |
-
$yPos -= ($lineHeight+20);
|
150 |
-
$page->setFont($font, 12);
|
151 |
-
|
152 |
-
|
153 |
-
/* EMETTEUR */
|
154 |
-
$page->setFont($fontBold, 12);
|
155 |
-
$page->drawText('EMETTEUR: ', $xPos, $yPos);
|
156 |
-
$yPos -= ($lineHeight+5);
|
157 |
-
$page->setFont($font, 12);
|
158 |
-
|
159 |
-
$page->drawText('NUMERO DE COMPTE', $xPos, $yPos);
|
160 |
-
$page->drawText($shipper['accountNumber'], $xPos+150, $yPos);
|
161 |
-
$yPos -= $lineHeight;
|
162 |
-
|
163 |
-
$page->drawText('NOM', $xPos, $yPos);
|
164 |
-
$page->drawText($shipper['name'], $xPos+150, $yPos);
|
165 |
-
$yPos -= $lineHeight;
|
166 |
-
|
167 |
-
$page->drawText('ADRESSE', $xPos, $yPos);
|
168 |
-
$page->drawText($shipper['address1'], $xPos+150, $yPos);
|
169 |
-
$yPos -= $lineHeight;
|
170 |
-
|
171 |
-
$page->drawText('ADRESSE (SUITE)', $xPos, $yPos);
|
172 |
-
$page->drawText($shipper['address2'], $xPos+150, $yPos);
|
173 |
-
$yPos -= $lineHeight;
|
174 |
-
|
175 |
-
$page->drawText('VILLE', $xPos, $yPos);
|
176 |
-
$page->drawText($shipper['city'], $xPos+150, $yPos);
|
177 |
-
$yPos -= $lineHeight;
|
178 |
-
|
179 |
-
$page->drawText('CODE POSTAL', $xPos, $yPos);
|
180 |
-
$page->drawText($shipper['postcode'], $xPos+150, $yPos);
|
181 |
-
$yPos -= $lineHeight;
|
182 |
-
|
183 |
-
$page->drawText('PAYS', $xPos, $yPos);
|
184 |
-
$page->drawText($shipper['country'], $xPos+150, $yPos);
|
185 |
-
$yPos -= $lineHeight;
|
186 |
-
|
187 |
-
$page->drawText('TELEPHONE', $xPos, $yPos);
|
188 |
-
$page->drawText($shipper['phone'], $xPos+150, $yPos);
|
189 |
-
$yPos -= $lineHeight;
|
190 |
-
|
191 |
-
$page->drawText('POSTE COMPTABLE', $xPos, $yPos);
|
192 |
-
$page->drawText(substr($shipper['postcode'],0,2).'999', $xPos+150, $yPos);
|
193 |
-
$yPos -= $lineHeight;
|
194 |
-
|
195 |
-
/* DETAIL DES ENVOIS */
|
196 |
-
$yPos -= 50;
|
197 |
-
$page->setFont($fontBold, 12);
|
198 |
-
$page->drawText('DETAIL DES ENVOIS ', $xPos, $yPos);
|
199 |
-
$yPos -= ($lineHeight+5);
|
200 |
-
$page->setFont($font, 12);
|
201 |
-
|
202 |
-
$page->setFillColor(new Zend_Pdf_Color_Rgb(0.85, 0.85, 0.85));
|
203 |
-
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
|
204 |
-
$page->setLineWidth(0.5);
|
205 |
-
$page->drawRectangle($xPos, $yPos, 570, $yPos -20);
|
206 |
-
$page->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
|
207 |
-
$yPos -= 15;
|
208 |
-
|
209 |
-
$page->drawText("Numéro de LT", $xPos+5, $yPos,'UTF-8');
|
210 |
-
$page->drawText('Poids (kg)', $xPos+110, $yPos);
|
211 |
-
$page->drawText('Code produit', $xPos+170, $yPos);
|
212 |
-
$page->drawText('Code postal', $xPos+270, $yPos);
|
213 |
-
$page->drawText('Pays', $xPos+340, $yPos);
|
214 |
-
$page->drawText('Assurance', $xPos+380, $yPos);
|
215 |
-
$page->drawText('Ville', $xPos+440, $yPos);
|
216 |
-
$yPos -= 5;
|
217 |
-
|
218 |
-
foreach($detail as $line) {
|
219 |
-
|
220 |
-
$page->setFillColor(new Zend_Pdf_Color_Rgb(255, 255, 255));
|
221 |
-
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
|
222 |
-
$page->setLineWidth(0.5);
|
223 |
-
$page->drawRectangle($xPos, $yPos, 570, $yPos -20);
|
224 |
-
$page->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
|
225 |
-
$yPos -= 15;
|
226 |
-
|
227 |
-
$lineWeight = $line['weight'];
|
228 |
-
if($weightUnit == 'g') {
|
229 |
-
$lineWeight = $lineWeight / 1000;
|
230 |
-
}
|
231 |
-
|
232 |
-
$page->drawText($line['trackNumber'], $xPos+5, $yPos,'UTF-8');
|
233 |
-
$page->drawText($lineWeight, $xPos+110, $yPos);
|
234 |
-
$page->drawText($line['product_code'], $xPos+170, $yPos);
|
235 |
-
$page->drawText($line['postcode'], $xPos+270, $yPos);
|
236 |
-
$page->drawText($line['country'], $xPos+340, $yPos);
|
237 |
-
$page->drawText($line['assurance'], $xPos+380, $yPos);
|
238 |
-
$page->drawText($line['city'], $xPos+440, $yPos,'UTF-8');
|
239 |
-
$yPos -= 5;
|
240 |
-
|
241 |
-
if($yPos <= $minYPosToChangePage) {
|
242 |
-
$pdf->pages[] = $page;
|
243 |
-
$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
|
244 |
-
$yPos = $page->getHeight()-20;
|
245 |
-
}
|
246 |
-
}
|
247 |
-
|
248 |
-
/* RESUME */
|
249 |
-
$yPos -= 50;
|
250 |
-
$page->setFont($fontBold, 12);
|
251 |
-
$page->drawText('RESUME ', $xPos, $yPos);
|
252 |
-
$yPos -= ($lineHeight+5);
|
253 |
-
$page->setFont($font, 12);
|
254 |
-
|
255 |
-
$page->setFillColor(new Zend_Pdf_Color_Rgb(0.85, 0.85, 0.85));
|
256 |
-
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
|
257 |
-
$page->setLineWidth(0.5);
|
258 |
-
$page->drawRectangle($xPos, $yPos, 570, $yPos -20);
|
259 |
-
$page->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
|
260 |
-
$yPos -= 15;
|
261 |
-
|
262 |
-
$page->drawText("DESTINATION", $xPos+5, $yPos,'UTF-8');
|
263 |
-
$page->drawText('UNITE', $xPos+170, $yPos);
|
264 |
-
$page->drawText('POIDS TOTAL (kg)', $xPos+320, $yPos);
|
265 |
-
$yPos -= 5;
|
266 |
-
|
267 |
-
foreach($resume as $destination => $line) {
|
268 |
-
|
269 |
-
$page->setFillColor(new Zend_Pdf_Color_Rgb(255, 255, 255));
|
270 |
-
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
|
271 |
-
$page->setLineWidth(0.5);
|
272 |
-
$page->drawRectangle($xPos, $yPos, 570, $yPos -20);
|
273 |
-
$page->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
|
274 |
-
$yPos -= 15;
|
275 |
-
|
276 |
-
$lineWeight = $line['poids'];
|
277 |
-
if($weightUnit == 'g') {
|
278 |
-
$lineWeight = $lineWeight / 1000;
|
279 |
-
}
|
280 |
-
|
281 |
-
$page->drawText($destination, $xPos+5, $yPos,'UTF-8');
|
282 |
-
$page->drawText($line['unite'], $xPos+180, $yPos);
|
283 |
-
$page->drawText($lineWeight, $xPos+340, $yPos);
|
284 |
-
$yPos -= 5;
|
285 |
-
}
|
286 |
-
|
287 |
-
if($yPos <= $minYPosToChangePage) {
|
288 |
-
$pdf->pages[] = $page;
|
289 |
-
$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
|
290 |
-
$yPos = $page->getHeight()-20;
|
291 |
-
}
|
292 |
-
|
293 |
-
$yPos -= 50;
|
294 |
-
$page->setFont($fontBold, 12);
|
295 |
-
$page->drawText('Bien pris en charge '.$resume['TOTAL']['unite'].' colis', $xPos, $yPos);
|
296 |
-
|
297 |
-
if($yPos <= $minYPosToChangePage) {
|
298 |
-
$pdf->pages[] = $page;
|
299 |
-
$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
|
300 |
-
$yPos = $page->getHeight()-20;
|
301 |
-
}
|
302 |
-
|
303 |
-
/* signatures */
|
304 |
-
$yPos -= 60;
|
305 |
-
$page->setFont($font, 12);
|
306 |
-
$page->drawText('Signature du client', $xPos, $yPos);
|
307 |
-
$page->drawText('Signature du Messager Chronopost', 400, $yPos);
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
$pdf->pages[] = $page;
|
312 |
-
return $pdf->render();
|
313 |
-
}
|
314 |
-
|
315 |
-
|
316 |
-
protected function getTrackingNumber($shipmentId) {
|
317 |
-
$shipment = Mage::getModel('sales/order_shipment')->load($shipmentId);
|
318 |
-
$trackNumber = '';
|
319 |
-
//On récupère le numéro de tracking
|
320 |
-
$tracks = $shipment->getTracksCollection();
|
321 |
-
foreach ($tracks as $track) {
|
322 |
-
if ($track->getParentId() == $shipmentId) {
|
323 |
-
$trackNumber = $track->getnumber();
|
324 |
-
}
|
325 |
-
}
|
326 |
-
|
327 |
-
return $trackNumber;
|
328 |
-
}
|
329 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once 'Mage/Adminhtml/controllers/Sales/OrderController.php';
|
4 |
+
|
5 |
+
class Chronopost_Chronorelais_Adminhtml_Chronorelais_Sales_BordereauController extends Mage_Adminhtml_Sales_OrderController {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Additional initialization
|
9 |
+
*
|
10 |
+
*/
|
11 |
+
protected function _construct() {
|
12 |
+
$this->setUsedModuleName('Chronopost_Chronorelais');
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Order grid
|
17 |
+
*/
|
18 |
+
public function indexAction() {
|
19 |
+
if (!extension_loaded('soap')) {
|
20 |
+
$this->_getSession()->addError($this->__('The SOAP extension is not installed in the server. Please contact the site administrator. Sorry for inconvenience.'));
|
21 |
+
return $this->_redirectReferer();
|
22 |
+
}
|
23 |
+
$this->loadLayout()
|
24 |
+
->_setActiveMenu('sales/chronorelais')
|
25 |
+
->_addContent($this->getLayout()->createBlock('chronorelais/sales_bordereau'))
|
26 |
+
->renderLayout();
|
27 |
+
}
|
28 |
+
|
29 |
+
public function massPrintBordereauAction() {
|
30 |
+
$orderIds = $this->getRequest()->getPost('order_ids');
|
31 |
+
try {
|
32 |
+
|
33 |
+
$weightNational = 0;
|
34 |
+
$nbNational = 0;
|
35 |
+
$weightInternational = 0;
|
36 |
+
$nbInternational = 0;
|
37 |
+
|
38 |
+
$helper = Mage::helper('chronorelais');
|
39 |
+
|
40 |
+
/* Shipper */
|
41 |
+
$shipper = array(
|
42 |
+
'accountNumber' => $helper->getConfigurationAccountNumber(),
|
43 |
+
'name' => $helper->getConfigurationShipperInfo('name'),
|
44 |
+
'address1' => $helper->getConfigurationShipperInfo('address1'),
|
45 |
+
'address2' => $helper->getConfigurationShipperInfo('address2'),
|
46 |
+
'city' => $helper->getConfigurationShipperInfo('city'),
|
47 |
+
'postcode' => $helper->getConfigurationShipperInfo('zipcode'),
|
48 |
+
'country' => $helper->getConfigurationShipperInfo('country'),
|
49 |
+
'phone' => $helper->getConfigurationShipperInfo('phone'),
|
50 |
+
);
|
51 |
+
|
52 |
+
$detail = '';
|
53 |
+
$resume = '';
|
54 |
+
foreach($orderIds as $orderId) {
|
55 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
56 |
+
$_shippingMethod = explode("_", $order->getShippingMethod());
|
57 |
+
$productCode = 'Chrono '.$helper->getChronoProductCodeStringWithBAL($_shippingMethod[0]);
|
58 |
+
$shipments = $order->getShipmentsCollection();
|
59 |
+
foreach($shipments as $shipment) {
|
60 |
+
|
61 |
+
/* Tracking Number */
|
62 |
+
$trackNumber = $this->getTrackingNumber($shipment->getId());
|
63 |
+
|
64 |
+
/* items */
|
65 |
+
$items = $shipment->getAllItems();
|
66 |
+
$weightTotal = 0;
|
67 |
+
|
68 |
+
$maxAmount = $helper->getMaxAdValoremAmount();
|
69 |
+
$adValoremAmount = $helper->assuranceAdValoremAmount();
|
70 |
+
$adValoremEnabled = $helper->assuranceAdValoremEnabled();
|
71 |
+
$totalAdValorem = 0;
|
72 |
+
|
73 |
+
foreach($items as $item) {
|
74 |
+
$weightTotal += $item->getWeight() * $item->getQty();
|
75 |
+
$totalAdValorem += $item->getPrice() * $item->getQty();
|
76 |
+
}
|
77 |
+
/* Si montant < au montant minimum ad valorem => pas d'assurance */
|
78 |
+
$totalAdValorem = 0;
|
79 |
+
if($adValoremEnabled)
|
80 |
+
{
|
81 |
+
$totalAdValorem = min($totalAdValorem,$maxAmount);
|
82 |
+
if($totalAdValorem < $adValoremAmount) {
|
83 |
+
$totalAdValorem = 0;
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
+
/* Shipping address */
|
88 |
+
$address = Mage::getModel('sales/order_address')->load($shipment->getShippingAddressId());
|
89 |
+
if($address->getCountryId() == 'FR') {
|
90 |
+
$weightNational += $weightTotal;
|
91 |
+
$nbNational++;
|
92 |
+
}
|
93 |
+
else {
|
94 |
+
$weightInternational += $weightTotal;
|
95 |
+
$nbInternational++;
|
96 |
+
}
|
97 |
+
|
98 |
+
$detail[] = array(
|
99 |
+
'trackNumber' => $trackNumber,
|
100 |
+
'weight' => $weightTotal,
|
101 |
+
'product_code' => $productCode,
|
102 |
+
'postcode' => $address->getPostcode(),
|
103 |
+
'country' => $address->getCountryId(),
|
104 |
+
'assurance' => $totalAdValorem,
|
105 |
+
'city' => Mage::helper('core/string')->truncate($address->getCity(),17),
|
106 |
+
);
|
107 |
+
}
|
108 |
+
}
|
109 |
+
$resume = array(
|
110 |
+
'NATIONAL' => array('unite' => $nbNational, 'poids' => $weightNational),
|
111 |
+
'INTERNATIONAL' => array('unite' => $nbInternational, 'poids' => $weightInternational),
|
112 |
+
'TOTAL' => array('unite' => ($nbNational+$nbInternational), 'poids' => ($weightNational+$weightInternational)),
|
113 |
+
);
|
114 |
+
|
115 |
+
/* Create pdf */
|
116 |
+
$fileName = 'bordereau.pdf';
|
117 |
+
$content = $this->getPdfFile($shipper,$detail,$resume);
|
118 |
+
$this->_prepareDownloadResponse($fileName, $content);
|
119 |
+
|
120 |
+
} catch (Mage_Core_Exception $e) {
|
121 |
+
$this->_getSession()->addError(Mage::helper('chronorelais')->__('Désolé, une erreur est survenu lors de la génération des bordereau. Merci de contacter Chronopost ou de réessayer plus tard'));
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
protected function getPdfFile($shipper,$detail,$resume) {
|
126 |
+
$pdf = new Zend_Pdf();
|
127 |
+
$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
|
128 |
+
|
129 |
+
$helper = Mage::helper('chronorelais');
|
130 |
+
$weightUnit = $helper->getConfigWeightUnit();
|
131 |
+
|
132 |
+
$minYPosToChangePage = 60;
|
133 |
+
$xPos = 20;
|
134 |
+
$yPos = $page->getHeight()-20;
|
135 |
+
$lineHeight = 15;
|
136 |
+
|
137 |
+
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES);
|
138 |
+
$fontBold = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES_BOLD);
|
139 |
+
|
140 |
+
/* DATE */
|
141 |
+
$page->setFont($font, 11);
|
142 |
+
$page->drawText('date : '.date('d/m/Y'), $page->getWidth()-100, $yPos);
|
143 |
+
$yPos -= ($lineHeight);
|
144 |
+
$page->setFont($font, 12);
|
145 |
+
|
146 |
+
/* TITRE */
|
147 |
+
$page->setFont($fontBold, 12);
|
148 |
+
$page->drawText('BORDEREAU RECAPITULATIF', $xPos, $yPos);
|
149 |
+
$yPos -= ($lineHeight+20);
|
150 |
+
$page->setFont($font, 12);
|
151 |
+
|
152 |
+
|
153 |
+
/* EMETTEUR */
|
154 |
+
$page->setFont($fontBold, 12);
|
155 |
+
$page->drawText('EMETTEUR: ', $xPos, $yPos);
|
156 |
+
$yPos -= ($lineHeight+5);
|
157 |
+
$page->setFont($font, 12);
|
158 |
+
|
159 |
+
$page->drawText('NUMERO DE COMPTE', $xPos, $yPos);
|
160 |
+
$page->drawText($shipper['accountNumber'], $xPos+150, $yPos);
|
161 |
+
$yPos -= $lineHeight;
|
162 |
+
|
163 |
+
$page->drawText('NOM', $xPos, $yPos);
|
164 |
+
$page->drawText($shipper['name'], $xPos+150, $yPos);
|
165 |
+
$yPos -= $lineHeight;
|
166 |
+
|
167 |
+
$page->drawText('ADRESSE', $xPos, $yPos);
|
168 |
+
$page->drawText($shipper['address1'], $xPos+150, $yPos);
|
169 |
+
$yPos -= $lineHeight;
|
170 |
+
|
171 |
+
$page->drawText('ADRESSE (SUITE)', $xPos, $yPos);
|
172 |
+
$page->drawText($shipper['address2'], $xPos+150, $yPos);
|
173 |
+
$yPos -= $lineHeight;
|
174 |
+
|
175 |
+
$page->drawText('VILLE', $xPos, $yPos);
|
176 |
+
$page->drawText($shipper['city'], $xPos+150, $yPos);
|
177 |
+
$yPos -= $lineHeight;
|
178 |
+
|
179 |
+
$page->drawText('CODE POSTAL', $xPos, $yPos);
|
180 |
+
$page->drawText($shipper['postcode'], $xPos+150, $yPos);
|
181 |
+
$yPos -= $lineHeight;
|
182 |
+
|
183 |
+
$page->drawText('PAYS', $xPos, $yPos);
|
184 |
+
$page->drawText($shipper['country'], $xPos+150, $yPos);
|
185 |
+
$yPos -= $lineHeight;
|
186 |
+
|
187 |
+
$page->drawText('TELEPHONE', $xPos, $yPos);
|
188 |
+
$page->drawText($shipper['phone'], $xPos+150, $yPos);
|
189 |
+
$yPos -= $lineHeight;
|
190 |
+
|
191 |
+
$page->drawText('POSTE COMPTABLE', $xPos, $yPos);
|
192 |
+
$page->drawText(substr($shipper['postcode'],0,2).'999', $xPos+150, $yPos);
|
193 |
+
$yPos -= $lineHeight;
|
194 |
+
|
195 |
+
/* DETAIL DES ENVOIS */
|
196 |
+
$yPos -= 50;
|
197 |
+
$page->setFont($fontBold, 12);
|
198 |
+
$page->drawText('DETAIL DES ENVOIS ', $xPos, $yPos);
|
199 |
+
$yPos -= ($lineHeight+5);
|
200 |
+
$page->setFont($font, 12);
|
201 |
+
|
202 |
+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0.85, 0.85, 0.85));
|
203 |
+
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
|
204 |
+
$page->setLineWidth(0.5);
|
205 |
+
$page->drawRectangle($xPos, $yPos, 570, $yPos -20);
|
206 |
+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
|
207 |
+
$yPos -= 15;
|
208 |
+
|
209 |
+
$page->drawText("Numéro de LT", $xPos+5, $yPos,'UTF-8');
|
210 |
+
$page->drawText('Poids (kg)', $xPos+110, $yPos);
|
211 |
+
$page->drawText('Code produit', $xPos+170, $yPos);
|
212 |
+
$page->drawText('Code postal', $xPos+270, $yPos);
|
213 |
+
$page->drawText('Pays', $xPos+340, $yPos);
|
214 |
+
$page->drawText('Assurance', $xPos+380, $yPos);
|
215 |
+
$page->drawText('Ville', $xPos+440, $yPos);
|
216 |
+
$yPos -= 5;
|
217 |
+
|
218 |
+
foreach($detail as $line) {
|
219 |
+
|
220 |
+
$page->setFillColor(new Zend_Pdf_Color_Rgb(255, 255, 255));
|
221 |
+
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
|
222 |
+
$page->setLineWidth(0.5);
|
223 |
+
$page->drawRectangle($xPos, $yPos, 570, $yPos -20);
|
224 |
+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
|
225 |
+
$yPos -= 15;
|
226 |
+
|
227 |
+
$lineWeight = $line['weight'];
|
228 |
+
if($weightUnit == 'g') {
|
229 |
+
$lineWeight = $lineWeight / 1000;
|
230 |
+
}
|
231 |
+
|
232 |
+
$page->drawText($line['trackNumber'], $xPos+5, $yPos,'UTF-8');
|
233 |
+
$page->drawText($lineWeight, $xPos+110, $yPos);
|
234 |
+
$page->drawText($line['product_code'], $xPos+170, $yPos);
|
235 |
+
$page->drawText($line['postcode'], $xPos+270, $yPos);
|
236 |
+
$page->drawText($line['country'], $xPos+340, $yPos);
|
237 |
+
$page->drawText($line['assurance'], $xPos+380, $yPos);
|
238 |
+
$page->drawText($line['city'], $xPos+440, $yPos,'UTF-8');
|
239 |
+
$yPos -= 5;
|
240 |
+
|
241 |
+
if($yPos <= $minYPosToChangePage) {
|
242 |
+
$pdf->pages[] = $page;
|
243 |
+
$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
|
244 |
+
$yPos = $page->getHeight()-20;
|
245 |
+
}
|
246 |
+
}
|
247 |
+
|
248 |
+
/* RESUME */
|
249 |
+
$yPos -= 50;
|
250 |
+
$page->setFont($fontBold, 12);
|
251 |
+
$page->drawText('RESUME ', $xPos, $yPos);
|
252 |
+
$yPos -= ($lineHeight+5);
|
253 |
+
$page->setFont($font, 12);
|
254 |
+
|
255 |
+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0.85, 0.85, 0.85));
|
256 |
+
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
|
257 |
+
$page->setLineWidth(0.5);
|
258 |
+
$page->drawRectangle($xPos, $yPos, 570, $yPos -20);
|
259 |
+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
|
260 |
+
$yPos -= 15;
|
261 |
+
|
262 |
+
$page->drawText("DESTINATION", $xPos+5, $yPos,'UTF-8');
|
263 |
+
$page->drawText('UNITE', $xPos+170, $yPos);
|
264 |
+
$page->drawText('POIDS TOTAL (kg)', $xPos+320, $yPos);
|
265 |
+
$yPos -= 5;
|
266 |
+
|
267 |
+
foreach($resume as $destination => $line) {
|
268 |
+
|
269 |
+
$page->setFillColor(new Zend_Pdf_Color_Rgb(255, 255, 255));
|
270 |
+
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
|
271 |
+
$page->setLineWidth(0.5);
|
272 |
+
$page->drawRectangle($xPos, $yPos, 570, $yPos -20);
|
273 |
+
$page->setFillColor(new Zend_Pdf_Color_Rgb(0, 0, 0));
|
274 |
+
$yPos -= 15;
|
275 |
+
|
276 |
+
$lineWeight = $line['poids'];
|
277 |
+
if($weightUnit == 'g') {
|
278 |
+
$lineWeight = $lineWeight / 1000;
|
279 |
+
}
|
280 |
+
|
281 |
+
$page->drawText($destination, $xPos+5, $yPos,'UTF-8');
|
282 |
+
$page->drawText($line['unite'], $xPos+180, $yPos);
|
283 |
+
$page->drawText($lineWeight, $xPos+340, $yPos);
|
284 |
+
$yPos -= 5;
|
285 |
+
}
|
286 |
+
|
287 |
+
if($yPos <= $minYPosToChangePage) {
|
288 |
+
$pdf->pages[] = $page;
|
289 |
+
$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
|
290 |
+
$yPos = $page->getHeight()-20;
|
291 |
+
}
|
292 |
+
|
293 |
+
$yPos -= 50;
|
294 |
+
$page->setFont($fontBold, 12);
|
295 |
+
$page->drawText('Bien pris en charge '.$resume['TOTAL']['unite'].' colis', $xPos, $yPos);
|
296 |
+
|
297 |
+
if($yPos <= $minYPosToChangePage) {
|
298 |
+
$pdf->pages[] = $page;
|
299 |
+
$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
|
300 |
+
$yPos = $page->getHeight()-20;
|
301 |
+
}
|
302 |
+
|
303 |
+
/* signatures */
|
304 |
+
$yPos -= 60;
|
305 |
+
$page->setFont($font, 12);
|
306 |
+
$page->drawText('Signature du client', $xPos, $yPos);
|
307 |
+
$page->drawText('Signature du Messager Chronopost', 400, $yPos);
|
308 |
+
|
309 |
+
|
310 |
+
|
311 |
+
$pdf->pages[] = $page;
|
312 |
+
return $pdf->render();
|
313 |
+
}
|
314 |
+
|
315 |
+
|
316 |
+
protected function getTrackingNumber($shipmentId) {
|
317 |
+
$shipment = Mage::getModel('sales/order_shipment')->load($shipmentId);
|
318 |
+
$trackNumber = '';
|
319 |
+
//On récupère le numéro de tracking
|
320 |
+
$tracks = $shipment->getTracksCollection();
|
321 |
+
foreach ($tracks as $track) {
|
322 |
+
if ($track->getParentId() == $shipmentId) {
|
323 |
+
$trackNumber = $track->getnumber();
|
324 |
+
}
|
325 |
+
}
|
326 |
+
|
327 |
+
return $trackNumber;
|
328 |
+
}
|
329 |
}
|
app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/Sales/ImpressionController.php
CHANGED
@@ -1,1136 +1,1138 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once 'Mage/Adminhtml/controllers/Sales/Order/ShipmentController.php';
|
4 |
-
|
5 |
-
class Chronopost_Chronorelais_Adminhtml_Chronorelais_Sales_ImpressionController extends Mage_Adminhtml_Sales_Order_ShipmentController {
|
6 |
-
|
7 |
-
protected $_trackingNumbers = '';
|
8 |
-
|
9 |
-
/**
|
10 |
-
* Additional initialization
|
11 |
-
*
|
12 |
-
*/
|
13 |
-
protected function _construct() {
|
14 |
-
$this->setUsedModuleName('Chronopost_Chronorelais');
|
15 |
-
}
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Shipping grid
|
19 |
-
*/
|
20 |
-
public function indexAction() {
|
21 |
-
if (!extension_loaded('soap')) {
|
22 |
-
$this->_getSession()->addError($this->__('The SOAP extension is not installed in the server. Please contact the site administrator. Sorry for inconvenience.'));
|
23 |
-
return $this->_redirectReferer();
|
24 |
-
}
|
25 |
-
$cmdTestGs = Mage::helper('chronorelais')->getConfigData('chronorelais/shipping/gs_path')." -v";
|
26 |
-
if(shell_exec($cmdTestGs) === null) {
|
27 |
-
$this->_getSession()->addNotice($this->__('Please install %s on your server to print mass','<a href="http://www.ghostscript.com/download/" target="_blank">Ghostscript</a>'));
|
28 |
-
}
|
29 |
-
$this->loadLayout()
|
30 |
-
->_setActiveMenu('sales/chronorelais')
|
31 |
-
->_addContent($this->getLayout()->createBlock('chronorelais/sales_impression'))
|
32 |
-
->renderLayout();
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Save shipment and order in one transaction
|
37 |
-
* @param Mage_Sales_Model_Order_Shipment $shipment
|
38 |
-
*/
|
39 |
-
protected function _saveShipment($shipment) {
|
40 |
-
$shipment->getOrder()->setIsInProcess(true);
|
41 |
-
$transactionSave = Mage::getModel('core/resource_transaction')
|
42 |
-
->addObject($shipment)
|
43 |
-
->addObject($shipment->getOrder())
|
44 |
-
->save();
|
45 |
-
|
46 |
-
return $this;
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* Declare headers and content file in response for file download
|
51 |
-
*
|
52 |
-
* @param string $fileName
|
53 |
-
* @param string|array $content set to null to avoid starting output, $contentLength should be set explicitly in
|
54 |
-
* that case
|
55 |
-
* @param string $contentType
|
56 |
-
* @param int $contentLength explicit content length, if strlen($content) isn't applicable
|
57 |
-
* @return Mage_Core_Controller_Varien_Action
|
58 |
-
*/
|
59 |
-
protected function _prepareDownloadResponse($fileName,$content,$contentType = 'application/octet-stream',$contentLength = null)
|
60 |
-
{
|
61 |
-
$session = Mage::getSingleton('admin/session');
|
62 |
-
if ($session->isFirstPageAfterLogin()) {
|
63 |
-
$this->_redirect($session->getUser()->getStartupPageUrl());
|
64 |
-
return $this;
|
65 |
-
}
|
66 |
-
|
67 |
-
$isFile = false;
|
68 |
-
$file = null;
|
69 |
-
if (is_array($content)) {
|
70 |
-
if (!isset($content['type']) || !isset($content['value'])) {
|
71 |
-
return $this;
|
72 |
-
}
|
73 |
-
if ($content['type'] == 'filename') {
|
74 |
-
$isFile = true;
|
75 |
-
$file = $content['value'];
|
76 |
-
$contentLength = filesize($file);
|
77 |
-
}
|
78 |
-
}
|
79 |
-
|
80 |
-
$this->getResponse()
|
81 |
-
->setHttpResponseCode(200)
|
82 |
-
->setHeader('Pragma', 'public', true)
|
83 |
-
->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
|
84 |
-
->setHeader('Content-type', $contentType, true)
|
85 |
-
->setHeader('Content-Length', is_null($contentLength) ? strlen($content) : $contentLength, true)
|
86 |
-
->setHeader('Content-Disposition', 'attachment; filename="'.$fileName.'"', true)
|
87 |
-
->setHeader('Last-Modified', date('r'), true);
|
88 |
-
|
89 |
-
if (!is_null($content)) {
|
90 |
-
if ($isFile) {
|
91 |
-
$this->getResponse()->clearBody();
|
92 |
-
$this->getResponse()->sendHeaders();
|
93 |
-
|
94 |
-
$ioAdapter = new Varien_Io_File();
|
95 |
-
$ioAdapter->open(array('path' => $ioAdapter->dirname($file)));
|
96 |
-
$ioAdapter->streamOpen($file, 'r');
|
97 |
-
while ($buffer = $ioAdapter->streamRead()) {
|
98 |
-
print $buffer;
|
99 |
-
}
|
100 |
-
$ioAdapter->streamClose();
|
101 |
-
if (!empty($content['rm'])) {
|
102 |
-
$ioAdapter->rm($file);
|
103 |
-
}
|
104 |
-
|
105 |
-
exit(0);
|
106 |
-
} else {
|
107 |
-
$this->getResponse()->setBody($content);
|
108 |
-
}
|
109 |
-
}
|
110 |
-
return $this;
|
111 |
-
}
|
112 |
-
|
113 |
-
protected function _processDownloadMass($pdf_contents) {
|
114 |
-
|
115 |
-
$paths = array();
|
116 |
-
$this->createMediaChronopostFolder();
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
$
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
$
|
129 |
-
$
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
return
|
169 |
-
}
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
return
|
180 |
-
}
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
$
|
188 |
-
$
|
189 |
-
|
190 |
-
$
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
'
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
'
|
207 |
-
'
|
208 |
-
'
|
209 |
-
'
|
210 |
-
'
|
211 |
-
'
|
212 |
-
'
|
213 |
-
'
|
214 |
-
'
|
215 |
-
'
|
216 |
-
'
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
'
|
225 |
-
'
|
226 |
-
'
|
227 |
-
'
|
228 |
-
'
|
229 |
-
'
|
230 |
-
'
|
231 |
-
'
|
232 |
-
'
|
233 |
-
'
|
234 |
-
'
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
$
|
245 |
-
$
|
246 |
-
//
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
$
|
251 |
-
|
252 |
-
|
253 |
-
'
|
254 |
-
'
|
255 |
-
'
|
256 |
-
'
|
257 |
-
'
|
258 |
-
'
|
259 |
-
'
|
260 |
-
'
|
261 |
-
'
|
262 |
-
'
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
$
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
$_deliver_on_saturday =
|
288 |
-
}
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
$SaturdayShipping =
|
297 |
-
}
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
$SaturdayShipping =
|
303 |
-
}
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
$
|
325 |
-
|
326 |
-
|
327 |
-
'
|
328 |
-
'
|
329 |
-
'
|
330 |
-
'
|
331 |
-
'
|
332 |
-
'
|
333 |
-
'
|
334 |
-
'
|
335 |
-
'
|
336 |
-
'
|
337 |
-
'
|
338 |
-
'
|
339 |
-
'
|
340 |
-
'
|
341 |
-
'
|
342 |
-
'
|
343 |
-
'
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
'
|
354 |
-
'
|
355 |
-
'
|
356 |
-
'
|
357 |
-
'
|
358 |
-
'
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
$
|
368 |
-
|
369 |
-
|
370 |
-
$
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
'
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
$
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
$
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
->
|
428 |
-
->
|
429 |
-
->
|
430 |
-
->
|
431 |
-
|
432 |
-
|
433 |
-
$
|
434 |
-
|
435 |
-
$
|
436 |
-
|
437 |
-
$
|
438 |
-
|
439 |
-
$
|
440 |
-
$shipment->
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
$
|
445 |
-
}
|
446 |
-
|
447 |
-
|
448 |
-
}
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
$
|
505 |
-
|
506 |
-
|
507 |
-
$
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
->
|
520 |
-
->
|
521 |
-
->
|
522 |
-
->
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
$
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
$
|
538 |
-
|
539 |
-
$
|
540 |
-
|
541 |
-
$
|
542 |
-
$shipment->
|
543 |
-
$this->
|
544 |
-
|
545 |
-
|
546 |
-
$
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
$
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
$
|
586 |
-
$shippingMethod = $
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
$
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
$
|
656 |
-
$shippingMethod = $
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
$
|
661 |
-
$
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
$
|
693 |
-
|
694 |
-
$
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
}
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
$
|
730 |
-
$
|
731 |
-
$
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
$
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
$
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
$
|
756 |
-
}
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
$this->_getSession()->
|
762 |
-
}
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
$stringToReturn = preg_replace('/[\-]
|
775 |
-
$stringToReturn = preg_replace('
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
* *******************************************************************
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
$
|
789 |
-
$
|
790 |
-
$
|
791 |
-
$
|
792 |
-
$
|
793 |
-
$
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
$
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
$
|
806 |
-
|
807 |
-
$mail
|
808 |
-
$mail->
|
809 |
-
$mail->
|
810 |
-
|
811 |
-
$mail->
|
812 |
-
|
813 |
-
|
814 |
-
$mail->
|
815 |
-
|
816 |
-
$mail->
|
817 |
-
|
818 |
-
$
|
819 |
-
|
820 |
-
$this->_getSession()->
|
821 |
-
}
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
$
|
830 |
-
$
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
&& strpos($_shippingMethod[0], '
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
'
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
'
|
862 |
-
'
|
863 |
-
'
|
864 |
-
'
|
865 |
-
'
|
866 |
-
'
|
867 |
-
'
|
868 |
-
'
|
869 |
-
'
|
870 |
-
'
|
871 |
-
'
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
'
|
880 |
-
'
|
881 |
-
'
|
882 |
-
'
|
883 |
-
'
|
884 |
-
'
|
885 |
-
'
|
886 |
-
'
|
887 |
-
'
|
888 |
-
'
|
889 |
-
'
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
$
|
904 |
-
$
|
905 |
-
//
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
'
|
916 |
-
'
|
917 |
-
'
|
918 |
-
'
|
919 |
-
'
|
920 |
-
'
|
921 |
-
'
|
922 |
-
'
|
923 |
-
'
|
924 |
-
'
|
925 |
-
'
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
$
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
$_deliver_on_saturday =
|
951 |
-
}
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
$SaturdayShipping =
|
958 |
-
}
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
$
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
$
|
979 |
-
|
980 |
-
|
981 |
-
'
|
982 |
-
'
|
983 |
-
'
|
984 |
-
'
|
985 |
-
'
|
986 |
-
'
|
987 |
-
'
|
988 |
-
'
|
989 |
-
'
|
990 |
-
'
|
991 |
-
'
|
992 |
-
'
|
993 |
-
'
|
994 |
-
'
|
995 |
-
'
|
996 |
-
'
|
997 |
-
'
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
'
|
1012 |
-
'
|
1013 |
-
'
|
1014 |
-
'
|
1015 |
-
'
|
1016 |
-
'
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
$
|
1027 |
-
|
1028 |
-
|
1029 |
-
$
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
$
|
1039 |
-
}
|
1040 |
-
|
1041 |
-
|
1042 |
-
}
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
}
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
$this->_getSession()->addSuccess($this->__('%s
|
1127 |
-
}
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
}
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
}
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once 'Mage/Adminhtml/controllers/Sales/Order/ShipmentController.php';
|
4 |
+
|
5 |
+
class Chronopost_Chronorelais_Adminhtml_Chronorelais_Sales_ImpressionController extends Mage_Adminhtml_Sales_Order_ShipmentController {
|
6 |
+
|
7 |
+
protected $_trackingNumbers = '';
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Additional initialization
|
11 |
+
*
|
12 |
+
*/
|
13 |
+
protected function _construct() {
|
14 |
+
$this->setUsedModuleName('Chronopost_Chronorelais');
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Shipping grid
|
19 |
+
*/
|
20 |
+
public function indexAction() {
|
21 |
+
if (!extension_loaded('soap')) {
|
22 |
+
$this->_getSession()->addError($this->__('The SOAP extension is not installed in the server. Please contact the site administrator. Sorry for inconvenience.'));
|
23 |
+
return $this->_redirectReferer();
|
24 |
+
}
|
25 |
+
$cmdTestGs = Mage::helper('chronorelais')->getConfigData('chronorelais/shipping/gs_path')." -v";
|
26 |
+
if(shell_exec($cmdTestGs) === null) {
|
27 |
+
$this->_getSession()->addNotice($this->__('Please install %s on your server to print mass','<a href="http://www.ghostscript.com/download/" target="_blank">Ghostscript</a>'));
|
28 |
+
}
|
29 |
+
$this->loadLayout()
|
30 |
+
->_setActiveMenu('sales/chronorelais')
|
31 |
+
->_addContent($this->getLayout()->createBlock('chronorelais/sales_impression'))
|
32 |
+
->renderLayout();
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Save shipment and order in one transaction
|
37 |
+
* @param Mage_Sales_Model_Order_Shipment $shipment
|
38 |
+
*/
|
39 |
+
protected function _saveShipment($shipment) {
|
40 |
+
$shipment->getOrder()->setIsInProcess(true);
|
41 |
+
$transactionSave = Mage::getModel('core/resource_transaction')
|
42 |
+
->addObject($shipment)
|
43 |
+
->addObject($shipment->getOrder())
|
44 |
+
->save();
|
45 |
+
|
46 |
+
return $this;
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Declare headers and content file in response for file download
|
51 |
+
*
|
52 |
+
* @param string $fileName
|
53 |
+
* @param string|array $content set to null to avoid starting output, $contentLength should be set explicitly in
|
54 |
+
* that case
|
55 |
+
* @param string $contentType
|
56 |
+
* @param int $contentLength explicit content length, if strlen($content) isn't applicable
|
57 |
+
* @return Mage_Core_Controller_Varien_Action
|
58 |
+
*/
|
59 |
+
protected function _prepareDownloadResponse($fileName,$content,$contentType = 'application/octet-stream',$contentLength = null)
|
60 |
+
{
|
61 |
+
$session = Mage::getSingleton('admin/session');
|
62 |
+
if ($session->isFirstPageAfterLogin()) {
|
63 |
+
$this->_redirect($session->getUser()->getStartupPageUrl());
|
64 |
+
return $this;
|
65 |
+
}
|
66 |
+
|
67 |
+
$isFile = false;
|
68 |
+
$file = null;
|
69 |
+
if (is_array($content)) {
|
70 |
+
if (!isset($content['type']) || !isset($content['value'])) {
|
71 |
+
return $this;
|
72 |
+
}
|
73 |
+
if ($content['type'] == 'filename') {
|
74 |
+
$isFile = true;
|
75 |
+
$file = $content['value'];
|
76 |
+
$contentLength = filesize($file);
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
$this->getResponse()
|
81 |
+
->setHttpResponseCode(200)
|
82 |
+
->setHeader('Pragma', 'public', true)
|
83 |
+
->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
|
84 |
+
->setHeader('Content-type', $contentType, true)
|
85 |
+
->setHeader('Content-Length', is_null($contentLength) ? strlen($content) : $contentLength, true)
|
86 |
+
->setHeader('Content-Disposition', 'attachment; filename="'.$fileName.'"', true)
|
87 |
+
->setHeader('Last-Modified', date('r'), true);
|
88 |
+
|
89 |
+
if (!is_null($content)) {
|
90 |
+
if ($isFile) {
|
91 |
+
$this->getResponse()->clearBody();
|
92 |
+
$this->getResponse()->sendHeaders();
|
93 |
+
|
94 |
+
$ioAdapter = new Varien_Io_File();
|
95 |
+
$ioAdapter->open(array('path' => $ioAdapter->dirname($file)));
|
96 |
+
$ioAdapter->streamOpen($file, 'r');
|
97 |
+
while ($buffer = $ioAdapter->streamRead()) {
|
98 |
+
print $buffer;
|
99 |
+
}
|
100 |
+
$ioAdapter->streamClose();
|
101 |
+
if (!empty($content['rm'])) {
|
102 |
+
$ioAdapter->rm($file);
|
103 |
+
}
|
104 |
+
|
105 |
+
exit(0);
|
106 |
+
} else {
|
107 |
+
$this->getResponse()->setBody($content);
|
108 |
+
}
|
109 |
+
}
|
110 |
+
return $this;
|
111 |
+
}
|
112 |
+
|
113 |
+
protected function _processDownloadMass($pdf_contents) {
|
114 |
+
|
115 |
+
$paths = array();
|
116 |
+
$this->createMediaChronopostFolder();
|
117 |
+
$indiceFile = 0;
|
118 |
+
foreach ($pdf_contents as $pdf_content) {
|
119 |
+
$fileName = 'tmp-etiquette-'.date('H-i-s-'.$indiceFile);
|
120 |
+
/* save pdf file */
|
121 |
+
$path = Mage::getBaseDir('media').'/chronopost/' . $fileName . '.pdf';
|
122 |
+
file_put_contents($path, $pdf_content);
|
123 |
+
$paths[] = $path;
|
124 |
+
$indiceFile++;
|
125 |
+
}
|
126 |
+
|
127 |
+
/* creation d'un pdf unique */
|
128 |
+
$pdfMergeFileName = "merged-".date('YmdHis').".pdf";
|
129 |
+
$pathMerge = Mage::getBaseDir('media')."/chronopost/".$pdfMergeFileName;
|
130 |
+
$cmd = Mage::helper('chronorelais')->getConfigData('chronorelais/shipping/gs_path').' -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile="'.$pathMerge.'" -dBATCH '. implode(' ', $paths);
|
131 |
+
$res_shell = shell_exec($cmd);
|
132 |
+
|
133 |
+
/* suppression des pdf temp */
|
134 |
+
foreach ($paths as $path) {
|
135 |
+
if(is_file($path)) {
|
136 |
+
unlink($path);
|
137 |
+
}
|
138 |
+
}
|
139 |
+
|
140 |
+
if ($res_shell === null) {
|
141 |
+
return $this->_redirectReferer();
|
142 |
+
}
|
143 |
+
else {
|
144 |
+
$this->_prepareDownloadResponse($pdfMergeFileName,array(
|
145 |
+
'type' => 'filename',
|
146 |
+
'value' => $pathMerge
|
147 |
+
));
|
148 |
+
unlink($pathMerge);
|
149 |
+
}
|
150 |
+
}
|
151 |
+
|
152 |
+
protected function getTrackingNumber($shipmentId) {
|
153 |
+
$shipment = Mage::getModel('sales/order_shipment')->load($shipmentId);
|
154 |
+
|
155 |
+
//On récupère le numéro de tracking
|
156 |
+
$tracks = $shipment->getTracksCollection();
|
157 |
+
foreach ($tracks as $track) {
|
158 |
+
if ($track->getParentId() == $shipmentId) {
|
159 |
+
$this->_trackingNumbers .= $track->getnumber();
|
160 |
+
}
|
161 |
+
}
|
162 |
+
|
163 |
+
return $this->_trackingNumbers;
|
164 |
+
}
|
165 |
+
|
166 |
+
protected function getFilledValue($value) {
|
167 |
+
if ($value) {
|
168 |
+
return $this->removeaccents(trim($value));
|
169 |
+
} else {
|
170 |
+
return '';
|
171 |
+
}
|
172 |
+
}
|
173 |
+
|
174 |
+
protected function checkMobileNumber($value) {
|
175 |
+
if ($reqvalue = trim($value)) {
|
176 |
+
$_number = substr($reqvalue, 0, 2);
|
177 |
+
$fixed_array = array('01', '02', '03', '04', '05', '06', '06');
|
178 |
+
if (in_array($_number, $fixed_array)) {
|
179 |
+
return $reqvalue;
|
180 |
+
} else {
|
181 |
+
return '';
|
182 |
+
}
|
183 |
+
}
|
184 |
+
}
|
185 |
+
|
186 |
+
protected function getExpeditionParams($shipment, $_shippingMethod) {
|
187 |
+
$_order = $shipment->getOrder();
|
188 |
+
$_shippingAddress = $shipment->getShippingAddress();
|
189 |
+
$_billingAddress = $shipment->getBillingAddress();
|
190 |
+
$_helper = Mage::helper('chronorelais');
|
191 |
+
|
192 |
+
$shippingMethodAllow = array('chronorelais','chronopost','chronoexpress','chronopostc10','chronopostc18','chronopostcclassic','chronorelaiseurope','chronorelaisdom','chronopostsrdv','chronopostsameday');
|
193 |
+
if (in_array($_shippingMethod[0],$shippingMethodAllow)) {
|
194 |
+
$esdParams = $header = $shipper = $customer = $recipient = $ref = $skybill = $skybillParams = $password = array();
|
195 |
+
|
196 |
+
//header parameters
|
197 |
+
$header = array(
|
198 |
+
'idEmit' => 'MAG',
|
199 |
+
'accountNumber' => $_helper->getConfigurationAccountNumber(),
|
200 |
+
'subAccount' => $_helper->getConfigurationSubAccountNumber()
|
201 |
+
);
|
202 |
+
|
203 |
+
//shipper parameters
|
204 |
+
$shipperMobilePhone = $this->checkMobileNumber($_helper->getConfigurationShipperInfo('mobilephone'));
|
205 |
+
$shipper = array(
|
206 |
+
'shipperAdress1' => $_helper->getConfigurationShipperInfo('address1'),
|
207 |
+
'shipperAdress2' => $_helper->getConfigurationShipperInfo('address2'),
|
208 |
+
'shipperCity' => $_helper->getConfigurationShipperInfo('city'),
|
209 |
+
'shipperCivility' => $_helper->getConfigurationShipperInfo('civility'),
|
210 |
+
'shipperContactName' => $_helper->getConfigurationShipperInfo('contactname'),
|
211 |
+
'shipperCountry' => $_helper->getConfigurationShipperInfo('country'),
|
212 |
+
'shipperEmail' => $_helper->getConfigurationShipperInfo('email'),
|
213 |
+
'shipperMobilePhone' => $shipperMobilePhone,
|
214 |
+
'shipperName' => $_helper->getConfigurationShipperInfo('name'),
|
215 |
+
'shipperName2' => $_helper->getConfigurationShipperInfo('name2'),
|
216 |
+
'shipperPhone' => $_helper->getConfigurationShipperInfo('phone'),
|
217 |
+
'shipperPreAlert' => '',
|
218 |
+
'shipperZipCode' => $_helper->getConfigurationShipperInfo('zipcode')
|
219 |
+
);
|
220 |
+
|
221 |
+
//customer parameters
|
222 |
+
$customerMobilePhone = $this->checkMobileNumber($_helper->getConfigurationCustomerInfo('mobilephone'));
|
223 |
+
$customer = array(
|
224 |
+
'customerAdress1' => $_helper->getConfigurationCustomerInfo('address1'),
|
225 |
+
'customerAdress2' => $_helper->getConfigurationCustomerInfo('address2'),
|
226 |
+
'customerCity' => $_helper->getConfigurationCustomerInfo('city'),
|
227 |
+
'customerCivility' => $_helper->getConfigurationCustomerInfo('civility'),
|
228 |
+
'customerContactName' => $_helper->getConfigurationCustomerInfo('contactname'),
|
229 |
+
'customerCountry' => $_helper->getConfigurationCustomerInfo('country'),
|
230 |
+
'customerEmail' => $_helper->getConfigurationCustomerInfo('email'),
|
231 |
+
'customerMobilePhone' => $customerMobilePhone,
|
232 |
+
'customerName' => $_helper->getConfigurationCustomerInfo('name'),
|
233 |
+
'customerName2' => $_helper->getConfigurationCustomerInfo('name2'),
|
234 |
+
'customerPhone' => $_helper->getConfigurationCustomerInfo('phone'),
|
235 |
+
'customerPreAlert' => '',
|
236 |
+
'customerZipCode' => $_helper->getConfigurationCustomerInfo('zipcode')
|
237 |
+
);
|
238 |
+
|
239 |
+
//recipient parameters
|
240 |
+
$recipient_address = $_shippingAddress->getStreet();
|
241 |
+
if (!isset($recipient_address[1])) {
|
242 |
+
$recipient_address[1] = '';
|
243 |
+
}
|
244 |
+
$customer_email = ($_shippingAddress->getEmail()) ? $_shippingAddress->getEmail() : ($_billingAddress->getEmail() ? $_billingAddress->getEmail() : $_order->getCustomerEmail());
|
245 |
+
$recipientMobilePhone = $this->checkMobileNumber($_shippingAddress->getTelephone());
|
246 |
+
$recipientName = $this->getFilledValue($_shippingAddress->getCompany()); //RelayPoint Name if chronorelais or Companyname if chronopost and
|
247 |
+
$recipientName2 = $this->getFilledValue($_shippingAddress->getFirstname() . ' ' . $_shippingAddress->getLastname());
|
248 |
+
//remove any alphabets in phone number
|
249 |
+
|
250 |
+
$recipientPhone = trim(preg_replace("/[^0-9\.\-]/", " ", $_shippingAddress->getTelephone()));
|
251 |
+
|
252 |
+
$recipient = array(
|
253 |
+
'recipientAdress1' => substr($this->getFilledValue($recipient_address[0]), 0, 38),
|
254 |
+
'recipientAdress2' => substr($this->getFilledValue($recipient_address[1]), 0, 38),
|
255 |
+
'recipientCity' => $this->getFilledValue($_shippingAddress->getCity()),
|
256 |
+
'recipientContactName' => $recipientName2,
|
257 |
+
'recipientCountry' => $this->getFilledValue($_shippingAddress->getCountryId()),
|
258 |
+
'recipientEmail' => $customer_email,
|
259 |
+
'recipientMobilePhone' => $recipientMobilePhone,
|
260 |
+
'recipientName' => $recipientName,
|
261 |
+
'recipientName2' => $recipientName2,
|
262 |
+
'recipientPhone' => $recipientPhone,
|
263 |
+
'recipientPreAlert' => '',
|
264 |
+
'recipientZipCode' => $this->getFilledValue($_shippingAddress->getPostcode()),
|
265 |
+
);
|
266 |
+
|
267 |
+
//ref parameters
|
268 |
+
$recipientRef = $this->getFilledValue($_shippingAddress->getWRelayPointCode());
|
269 |
+
if (!$recipientRef) {
|
270 |
+
$recipientRef = $_order->getCustomerId();
|
271 |
+
}
|
272 |
+
$shipperRef = $_order->getRealOrderId();
|
273 |
+
|
274 |
+
$ref = array(
|
275 |
+
'recipientRef' => $recipientRef,
|
276 |
+
'shipperRef' => $shipperRef
|
277 |
+
);
|
278 |
+
|
279 |
+
//skybill parameters
|
280 |
+
/* Livraison Samedi (Delivery Saturday) field */
|
281 |
+
$SaturdayShipping = 0; //default value for the saturday shipping
|
282 |
+
if ($_shippingMethod[0] == "chronopost" || $_shippingMethod[0] == "chronorelais" || $_shippingMethod[0] == "chronorelaisdom") {
|
283 |
+
if (!$_deliver_on_saturday = Mage::helper('chronorelais')->getLivraisonSamediStatus($_order->getEntityId())) {
|
284 |
+
$_deliver_on_saturday = Mage::helper('chronorelais')->getConfigData('carriers/' . $_shippingMethod[0] . '/deliver_on_saturday');
|
285 |
+
} else {
|
286 |
+
if ($_deliver_on_saturday == 'Yes') {
|
287 |
+
$_deliver_on_saturday = 1;
|
288 |
+
} else {
|
289 |
+
$_deliver_on_saturday = 0;
|
290 |
+
}
|
291 |
+
}
|
292 |
+
$is_sending_day = Mage::helper('chronorelais')->isSendingDay();
|
293 |
+
|
294 |
+
if($_shippingMethod[0] == "chronorelaisdom") {
|
295 |
+
if ($_deliver_on_saturday && $is_sending_day) {
|
296 |
+
$SaturdayShipping = 369;
|
297 |
+
} else {
|
298 |
+
$SaturdayShipping = 368;
|
299 |
+
}
|
300 |
+
} else {
|
301 |
+
if ($_deliver_on_saturday && $is_sending_day) {
|
302 |
+
$SaturdayShipping = 6;
|
303 |
+
} elseif (!$_deliver_on_saturday && $is_sending_day) {
|
304 |
+
$SaturdayShipping = 1;
|
305 |
+
}
|
306 |
+
}
|
307 |
+
|
308 |
+
}
|
309 |
+
|
310 |
+
$weight = 0;
|
311 |
+
foreach ($shipment->getItemsCollection() as $item) {
|
312 |
+
$weight += $item->weight * $item->qty;
|
313 |
+
}
|
314 |
+
if ($_helper->getConfigWeightUnit() == 'g') {
|
315 |
+
$weight = $weight / 1000; /* conversion g => kg */
|
316 |
+
}
|
317 |
+
|
318 |
+
/* si chronorelaiseurope : service : 337 si poids < 3kg ou 338 si > 3kg */
|
319 |
+
if($_shippingMethod[0] == "chronorelaiseurope") {
|
320 |
+
$weight <= 3 ? $SaturdayShipping = '337' : $SaturdayShipping = '338';
|
321 |
+
}
|
322 |
+
|
323 |
+
|
324 |
+
$weight = 0; /* On met le poids à 0 car les colis sont pesé sur place */
|
325 |
+
|
326 |
+
$skybill = array(
|
327 |
+
'codCurrency' => 'EUR',
|
328 |
+
'codValue' => '',
|
329 |
+
'content1' => '',
|
330 |
+
'content2' => '',
|
331 |
+
'content3' => '',
|
332 |
+
'content4' => '',
|
333 |
+
'content5' => '',
|
334 |
+
'customsCurrency' => 'EUR',
|
335 |
+
'customsValue' => '',
|
336 |
+
'evtCode' => 'DC',
|
337 |
+
'insuredCurrency' => 'EUR',
|
338 |
+
'insuredValue' => '',
|
339 |
+
'objectType' => 'MAR',
|
340 |
+
'productCode' => $_helper->getChronoProductCodeToShipment($_shippingMethod[0]),
|
341 |
+
'service' => $SaturdayShipping,
|
342 |
+
'shipDate' => date('c'),
|
343 |
+
'shipHour' => date('H'),
|
344 |
+
'weight' => $weight,
|
345 |
+
'weightUnit' => 'KGM'
|
346 |
+
);
|
347 |
+
|
348 |
+
$skybillParams = array(
|
349 |
+
'mode' => $_helper->getConfigurationSkybillParam()
|
350 |
+
);
|
351 |
+
|
352 |
+
$expeditionArray = array(
|
353 |
+
'headerValue' => $header,
|
354 |
+
'shipperValue' => $shipper,
|
355 |
+
'customerValue' => $customer,
|
356 |
+
'recipientValue' => $recipient,
|
357 |
+
'refValue' => $ref,
|
358 |
+
'skybillValue' => $skybill,
|
359 |
+
'skybillParamsValue' => $skybillParams,
|
360 |
+
'password' => $_helper->getConfigurationAccountPass()
|
361 |
+
);
|
362 |
+
|
363 |
+
/* si chronopostsrdv : ajout parametres supplementaires */
|
364 |
+
if($_shippingMethod[0] == "chronopostsrdv") {
|
365 |
+
|
366 |
+
$chronopostsrdv_creneaux_info = $_shippingAddress->getData('chronopostsrdv_creneaux_info');
|
367 |
+
$chronopostsrdv_creneaux_info = json_decode($chronopostsrdv_creneaux_info,true);
|
368 |
+
|
369 |
+
$_dateRdvStart = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
370 |
+
$_dateRdvStart->setTime($chronopostsrdv_creneaux_info['startHour'],$chronopostsrdv_creneaux_info['startMinutes']);
|
371 |
+
|
372 |
+
$_dateRdvEnd = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
373 |
+
$_dateRdvEnd->setTime($chronopostsrdv_creneaux_info['endHour'],$chronopostsrdv_creneaux_info['endMinutes']);
|
374 |
+
|
375 |
+
|
376 |
+
$scheduledValue = array(
|
377 |
+
'appointmentValue' => array(
|
378 |
+
'timeSlotStartDate' => $_dateRdvStart->format("Y-m-d")."T".$_dateRdvStart->format("H:i:s"),
|
379 |
+
'timeSlotEndDate' => $_dateRdvEnd->format("Y-m-d")."T".$_dateRdvEnd->format("H:i:s"),
|
380 |
+
'timeSlotTariffLevel' => $chronopostsrdv_creneaux_info['tariffLevel']
|
381 |
+
)
|
382 |
+
);
|
383 |
+
$expeditionArray['scheduledValue'] = $scheduledValue;
|
384 |
+
|
385 |
+
/* modification productCode et service car dynamique pour ce mode de livraison */
|
386 |
+
|
387 |
+
$expeditionArray['skybillValue']['productCode'] = $chronopostsrdv_creneaux_info['productCode'];
|
388 |
+
$expeditionArray['skybillValue']['service'] = $chronopostsrdv_creneaux_info['serviceCode'];
|
389 |
+
|
390 |
+
}
|
391 |
+
|
392 |
+
return $expeditionArray;
|
393 |
+
}
|
394 |
+
}
|
395 |
+
|
396 |
+
protected function getEtiquetteUrl($shipmentId) {
|
397 |
+
//On récupère les infos d'expédition
|
398 |
+
$_helper = Mage::helper('chronorelais');
|
399 |
+
|
400 |
+
$shipment = Mage::getModel('sales/order_shipment')->load($shipmentId);
|
401 |
+
if ($_shipTracks = $shipment->getAllTracks()) {
|
402 |
+
foreach ($_shipTracks as $_shipTrack) {
|
403 |
+
if ($_shipTrack->getNumber() && $_shipTrack->getChronoReservationNumber()) {
|
404 |
+
$skybill = base64_decode($_shipTrack->getChronoReservationNumber());
|
405 |
+
break;
|
406 |
+
}
|
407 |
+
}
|
408 |
+
if ($skybill) {
|
409 |
+
return $skybill;
|
410 |
+
}
|
411 |
+
}
|
412 |
+
|
413 |
+
$_order = $shipment->getOrder();
|
414 |
+
$_shippingMethod = explode("_", $_order->getShippingMethod());
|
415 |
+
|
416 |
+
$expeditionArray = $this->getExpeditionParams($shipment, $_shippingMethod);
|
417 |
+
$tracking_number = '';
|
418 |
+
if ($expeditionArray) {
|
419 |
+
$client = new SoapClient("https://www.chronopost.fr/shipping-cxf/ShippingServiceWS?wsdl", array('trace' => true));
|
420 |
+
try {
|
421 |
+
$webservbt = $client->shippingV3($expeditionArray);
|
422 |
+
if (!$webservbt->return->errorCode && $webservbt->return->skybill) {
|
423 |
+
$tracking_number = $webservbt->return->skybillNumber;
|
424 |
+
// Add tracking number for the shipment if not already exists.
|
425 |
+
if (!$this->_trackingNumbers && $webservbt->return->skybillNumber) {
|
426 |
+
$track = Mage::getModel('sales/order_shipment_track')
|
427 |
+
->setNumber($webservbt->return->skybillNumber)
|
428 |
+
->setChronoReservationNumber(base64_encode($webservbt->return->skybill))
|
429 |
+
->setCarrier(ucwords($_shippingMethod[0]))
|
430 |
+
->setCarrierCode($_shippingMethod[0])
|
431 |
+
->setTitle(ucwords($_shippingMethod[0]))
|
432 |
+
->setPopup(1);
|
433 |
+
$shipment->addTrack($track);
|
434 |
+
|
435 |
+
$tracking_url = str_replace('{tracking_number}', $tracking_number, Mage::helper('chronorelais')->getConfigurationTrackingViewUrl());
|
436 |
+
$tracking_title = $this->__('Track Your Order');
|
437 |
+
$tracking_order = '<p><a title="' . $tracking_title . '" href="' . $tracking_url . '"><b>' . $tracking_title . '</b></a></p>';
|
438 |
+
|
439 |
+
$comment = '';
|
440 |
+
$shipment->setEmailSent(true);
|
441 |
+
$this->_saveShipment($shipment);
|
442 |
+
$shipment->sendEmail(1, $tracking_order . $comment);
|
443 |
+
}
|
444 |
+
return $webservbt->return->skybill; // pdf base64
|
445 |
+
} else {
|
446 |
+
$this->_getSession()->addError($_helper->__($webservbt->return->errorMessage));
|
447 |
+
}
|
448 |
+
} catch (SoapFault $fault) {
|
449 |
+
$this->_getSession()->addError($_helper->__($fault->faultstring));
|
450 |
+
}
|
451 |
+
}
|
452 |
+
}
|
453 |
+
|
454 |
+
public function getShipmentByOrderId($orderId) {
|
455 |
+
$_shipment = Mage::getResourceModel('sales/order_shipment_grid_collection')
|
456 |
+
->addAttributeToFilter('order_id', $orderId)
|
457 |
+
->getAllIds();
|
458 |
+
return $_shipment;
|
459 |
+
}
|
460 |
+
|
461 |
+
public function getShipmentByIncrementId($incrementId) {
|
462 |
+
$_shipment = Mage::getResourceModel('sales/order_shipment_grid_collection')
|
463 |
+
->addAttributeToFilter('increment_id', $incrementId)
|
464 |
+
->getAllIds();
|
465 |
+
return $_shipment;
|
466 |
+
}
|
467 |
+
|
468 |
+
public function initShipment($orderId,$savedQtys = '') {
|
469 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
470 |
+
|
471 |
+
/**
|
472 |
+
* Check order existing
|
473 |
+
*/
|
474 |
+
if (!$order->getId()) {
|
475 |
+
$this->_getSession()->addError($this->__('The order no longer exists.'));
|
476 |
+
return false;
|
477 |
+
}
|
478 |
+
/**
|
479 |
+
* Check shipment is available to create separate from invoice
|
480 |
+
*/
|
481 |
+
if ($order->getForcedDoShipmentWithInvoice()) {
|
482 |
+
$this->_getSession()->addError($this->__('Cannot do shipment for the order separately from invoice.'));
|
483 |
+
return false;
|
484 |
+
}
|
485 |
+
/**
|
486 |
+
* Check shipment create availability
|
487 |
+
*/
|
488 |
+
if(empty($savedQtys)) {
|
489 |
+
$savedQtys = $this->_getItemQtys();
|
490 |
+
}
|
491 |
+
$shipment = Mage::getModel('sales/service_order', $order)->prepareShipment($savedQtys);
|
492 |
+
if(Mage::registry('current_shipment')) {
|
493 |
+
Mage::unregister ('current_shipment');
|
494 |
+
}
|
495 |
+
Mage::register('current_shipment', $shipment);
|
496 |
+
return $shipment;
|
497 |
+
}
|
498 |
+
|
499 |
+
public function createNewShipment($orderId,$savedQtys = '') {
|
500 |
+
$_helper = Mage::helper('chronorelais');
|
501 |
+
$skybill = '';
|
502 |
+
try {
|
503 |
+
if ($shipment = $this->initShipment($orderId,$savedQtys)) {
|
504 |
+
$shipment->register();
|
505 |
+
|
506 |
+
$_order = $shipment->getOrder();
|
507 |
+
$_shippingMethod = explode("_", $_order->getShippingMethod());
|
508 |
+
|
509 |
+
$expeditionArray = $this->getExpeditionParams($shipment, $_shippingMethod);
|
510 |
+
$tracking_number = '';
|
511 |
+
if ($expeditionArray) {
|
512 |
+
|
513 |
+
$client = new SoapClient("https://www.chronopost.fr/shipping-cxf/ShippingServiceWS?wsdl", array('trace' => true));
|
514 |
+
try {
|
515 |
+
$expedition = $client->shippingV3($expeditionArray);
|
516 |
+
if (!$expedition->return->errorCode && $expedition->return->skybillNumber) {
|
517 |
+
$tracking_number = $expedition->return->skybillNumber;
|
518 |
+
$track = Mage::getModel('sales/order_shipment_track')
|
519 |
+
->setNumber($expedition->return->skybillNumber)
|
520 |
+
->setChronoReservationNumber(base64_encode($expedition->return->skybill))
|
521 |
+
->setCarrier(ucwords($_shippingMethod[0]))
|
522 |
+
->setCarrierCode($_shippingMethod[0])
|
523 |
+
->setTitle(ucwords($_shippingMethod[0]))
|
524 |
+
->setPopup(1);
|
525 |
+
$shipment->addTrack($track);
|
526 |
+
$skybill = $expedition->return->skybill;
|
527 |
+
} else {
|
528 |
+
$this->_getSession()->addError($_helper->__($expedition->return->errorMessage));
|
529 |
+
return;
|
530 |
+
}
|
531 |
+
} catch (SoapFault $fault) {
|
532 |
+
$this->_getSession()->addError($_helper->__($fault->faultstring));
|
533 |
+
return;
|
534 |
+
}
|
535 |
+
}
|
536 |
+
|
537 |
+
$tracking_url = str_replace('{tracking_number}', $tracking_number, Mage::helper('chronorelais')->getConfigurationTrackingViewUrl());
|
538 |
+
$tracking_title = $this->__('Track Your Order');
|
539 |
+
$tracking_order = '<p><a title="' . $tracking_title . '" href="' . $tracking_url . '"><b>' . $tracking_title . '</b></a></p>';
|
540 |
+
|
541 |
+
$comment = '';
|
542 |
+
$shipment->setEmailSent(true);
|
543 |
+
$this->_saveShipment($shipment);
|
544 |
+
$shipment->sendEmail(1, $tracking_order . $comment);
|
545 |
+
$this->_getSession()->addSuccess($this->__('Shipment was successfully created.'));
|
546 |
+
return $skybill;
|
547 |
+
} else {
|
548 |
+
$this->_forward('noRoute');
|
549 |
+
return;
|
550 |
+
}
|
551 |
+
} catch (Mage_Core_Exception $e) {
|
552 |
+
$this->_getSession()->addError($e->getMessage());
|
553 |
+
return;
|
554 |
+
} catch (Exception $e) {
|
555 |
+
$this->_getSession()->addError($this->__('Can not save shipment: ' . $e->getMessage()));
|
556 |
+
return;
|
557 |
+
}
|
558 |
+
}
|
559 |
+
|
560 |
+
public function printMassAction() {
|
561 |
+
$orderIds = $this->getRequest()->getParam('order_ids');
|
562 |
+
$skybillArr = array();
|
563 |
+
$helper = Mage::helper('chronorelais');
|
564 |
+
foreach ($orderIds as $orderId) {
|
565 |
+
if ($_shipments = $this->getShipmentByOrderId($orderId)) {
|
566 |
+
if (count($_shipments) == 1) {
|
567 |
+
$shipmentId = $_shipments[0];
|
568 |
+
$skybill = $this->getEtiquetteUrl($shipmentId);
|
569 |
+
if ($skybill) {
|
570 |
+
$skybillArr[] = $skybill;
|
571 |
+
}
|
572 |
+
} else {
|
573 |
+
foreach ($_shipments as $_shipment) {
|
574 |
+
$skybill = $this->getEtiquetteUrl($_shipment);
|
575 |
+
if ($skybill) {
|
576 |
+
$skybillArr[] = $skybill;
|
577 |
+
}
|
578 |
+
}
|
579 |
+
}
|
580 |
+
} else {
|
581 |
+
|
582 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
583 |
+
|
584 |
+
/* If shipping method is Chronopost => check if shipping weight isn't over limit */
|
585 |
+
$chronopostMethods = array('chronorelais','chronopost','chronoexpress','chronopostc10','chronopostc18','chronopostcclassic','chronorelaiseurope','chronorelaisdom','chronopostsrdv','chronopostsameday');
|
586 |
+
$shippingMethod = $order->getShippingMethod();
|
587 |
+
$shippingMethod = explode("_", $shippingMethod);
|
588 |
+
$shippingMethod = $shippingMethod[0];
|
589 |
+
if(in_array($shippingMethod, $chronopostMethods)) {
|
590 |
+
$weightShipping = 0;
|
591 |
+
$weight_limit = Mage::getStoreConfig('carriers/'.$shippingMethod.'/weight_limit');
|
592 |
+
foreach ($order->getItemsCollection() as $item) {
|
593 |
+
$weightShipping += $item->getWeight()*$item->getQtyOrdered();
|
594 |
+
}
|
595 |
+
if($helper->getConfigWeightUnit() == 'g')
|
596 |
+
{
|
597 |
+
$weightShipping = $weightShipping / 1000; // conversion g => kg
|
598 |
+
}
|
599 |
+
if($weightShipping > $weight_limit) {
|
600 |
+
/* multi shipping. 1 shipment by product */
|
601 |
+
foreach ($order->getItemsCollection() as $item) {
|
602 |
+
$qty = $item->getQtyOrdered();
|
603 |
+
for($i = 1; $i <= $qty; $i++) {
|
604 |
+
$skybill = $this->createNewShipment($orderId,array($item->getId() => '1'));
|
605 |
+
if ($skybill)
|
606 |
+
$skybillArr[] = $skybill;
|
607 |
+
}
|
608 |
+
}
|
609 |
+
}
|
610 |
+
else {
|
611 |
+
$skybill = $this->createNewShipment($orderId);
|
612 |
+
if ($skybill) {
|
613 |
+
$skybillArr[] = $skybill;
|
614 |
+
}
|
615 |
+
}
|
616 |
+
}
|
617 |
+
else {
|
618 |
+
$skybill = $this->createNewShipment($orderId);
|
619 |
+
if ($skybill) {
|
620 |
+
$skybillArr[] = $skybill;
|
621 |
+
}
|
622 |
+
}
|
623 |
+
}
|
624 |
+
}
|
625 |
+
if (count($skybillArr)) {
|
626 |
+
$this->_processDownloadMass($skybillArr);
|
627 |
+
}
|
628 |
+
else {
|
629 |
+
return $this->_redirectReferer();
|
630 |
+
}
|
631 |
+
}
|
632 |
+
|
633 |
+
public function printAction() {
|
634 |
+
// Appel via order_id
|
635 |
+
$orderId = $this->getRequest()->getParam('order_id');
|
636 |
+
$helper = Mage::helper('chronorelais');
|
637 |
+
if ($orderId) {
|
638 |
+
if ($_shipments = $this->getShipmentByOrderId($orderId)) {
|
639 |
+
if (count($_shipments) == 1) {
|
640 |
+
$shipmentId = $_shipments[0];
|
641 |
+
$skybillArr = $this->getEtiquetteUrl($shipmentId);
|
642 |
+
} else {
|
643 |
+
$track = "Cette commande contient plusieurs expéditions, cliquez sur chaque lien pour obtenir les étiquettes :<br>";
|
644 |
+
/*foreach ($_shipments as $_shipment) {
|
645 |
+
$url = str_replace('{trackingNumber}', $this->getEtiquetteUrl($_shipment), $helper->getConfigurationTrackingUrl());
|
646 |
+
$track .= '<a target="_blank" href="' . $url . '">' . $url . '</a><br />';
|
647 |
+
}*/
|
648 |
+
echo $track;
|
649 |
+
return;
|
650 |
+
}
|
651 |
+
} else {
|
652 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
653 |
+
|
654 |
+
/* If shipping method is Chronopost => check if shipping weight isn't over limit */
|
655 |
+
$chronopostMethods = array('chronorelais','chronopost','chronoexpress','chronopostc10','chronopostc18','chronopostcclassic','chronorelaiseurope','chronorelaisdom','chronopostsrdv','chronopostsameday');
|
656 |
+
$shippingMethod = $order->getShippingMethod();
|
657 |
+
$shippingMethod = explode("_", $shippingMethod);
|
658 |
+
$shippingMethod = $shippingMethod[0];
|
659 |
+
if(in_array($shippingMethod, $chronopostMethods)) {
|
660 |
+
$weightShipping = 0;
|
661 |
+
$shippingMethod = explode("_", $shippingMethod);
|
662 |
+
$shippingMethod = $shippingMethod[0];
|
663 |
+
$weight_limit = Mage::getStoreConfig('carriers/'.$shippingMethod.'/weight_limit');
|
664 |
+
foreach ($order->getItemsCollection() as $item) {
|
665 |
+
$weightShipping += $item->getWeight()*$item->getQtyOrdered();
|
666 |
+
}
|
667 |
+
if($helper->getConfigWeightUnit() == 'g')
|
668 |
+
{
|
669 |
+
$weightShipping = $weightShipping / 1000; // conversion g => kg
|
670 |
+
}
|
671 |
+
if($weightShipping > $weight_limit) {
|
672 |
+
/* multi shipping. 1 shipment by product */
|
673 |
+
$skybillArr = array();
|
674 |
+
foreach ($order->getItemsCollection() as $item) {
|
675 |
+
$qty = $item->getQtyOrdered();
|
676 |
+
for($i = 1; $i <= $qty; $i++) {
|
677 |
+
$skybillArr[] = $this->createNewShipment($orderId,array($item->getId() => '1'));
|
678 |
+
}
|
679 |
+
}
|
680 |
+
}
|
681 |
+
else {
|
682 |
+
$skybillArr = $this->createNewShipment($orderId);
|
683 |
+
}
|
684 |
+
}
|
685 |
+
else {
|
686 |
+
$skybillArr = $this->createNewShipment($orderId);
|
687 |
+
}
|
688 |
+
}
|
689 |
+
} else {
|
690 |
+
$shipmentId = $this->getRequest()->getParam('shipment_id');
|
691 |
+
if ($shipmentId) {
|
692 |
+
$skybillArr = $this->getEtiquetteUrl($shipmentId);
|
693 |
+
} else {
|
694 |
+
$shipmentIncrementId = $this->getRequest()->getParam('shipment_increment_id');
|
695 |
+
$shipmentId = $this->getShipmentByIncrementId($shipmentIncrementId);
|
696 |
+
$skybillArr = $this->getEtiquetteUrl($shipmentId[0]);
|
697 |
+
}
|
698 |
+
}
|
699 |
+
|
700 |
+
|
701 |
+
if ($skybillArr) {
|
702 |
+
try {
|
703 |
+
if(is_array($skybillArr)) {
|
704 |
+
$this->_processDownloadMass($skybillArr);
|
705 |
+
}
|
706 |
+
else {
|
707 |
+
$this->_prepareDownloadResponse('Etiquette_chronopost.pdf', $skybillArr);
|
708 |
+
|
709 |
+
}
|
710 |
+
} catch (Mage_Core_Exception $e) {
|
711 |
+
$this->_getSession()->addError($helper->__('Désolé, une erreur est survenu lors de la récupération de l\'étiquettes. Merci de contacter Chronopost ou de réessayer plus tard'));
|
712 |
+
}
|
713 |
+
}
|
714 |
+
else {
|
715 |
+
return $this->_redirectReferer();
|
716 |
+
}
|
717 |
+
}
|
718 |
+
|
719 |
+
public function massLivraisonSamediStatusAction() {
|
720 |
+
if ($this->getRequest()->getPost('status')) {
|
721 |
+
$this->saveLivraisonSamediStatusAction();
|
722 |
+
}
|
723 |
+
}
|
724 |
+
|
725 |
+
/* Save the Livraison le Samedi status to orders */
|
726 |
+
|
727 |
+
public function saveLivraisonSamediStatusAction() {
|
728 |
+
/* get the orders */
|
729 |
+
$orderIds = $this->getRequest()->getPost('order_ids');
|
730 |
+
$status = $this->getRequest()->getPost('status');
|
731 |
+
$_connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
732 |
+
$_table = Mage::getSingleton('core/resource')->getTableName('sales_chronopost_order_export_status');
|
733 |
+
$exceptions = array();
|
734 |
+
|
735 |
+
foreach ($orderIds as $orderId) {
|
736 |
+
$order_details = Mage::getModel('sales/order')->load($orderId);
|
737 |
+
$shipping_method = '';
|
738 |
+
$livraison_le_samedi = $status;
|
739 |
+
if ($shipping_method = $order_details->getShippingMethod()) {
|
740 |
+
$shipping_method = explode('_', $shipping_method);
|
741 |
+
if ($shipping_method[0] == 'chronoexpress') {
|
742 |
+
$livraison_le_samedi = '--';
|
743 |
+
}
|
744 |
+
}
|
745 |
+
$condition = array(
|
746 |
+
$_connection->quoteInto('order_id = ?', $orderId),
|
747 |
+
);
|
748 |
+
$_connection->delete($_table, $condition);
|
749 |
+
|
750 |
+
$dataLine = array(
|
751 |
+
'order_id' => $orderId,
|
752 |
+
'livraison_le_samedi' => $livraison_le_samedi
|
753 |
+
);
|
754 |
+
try {
|
755 |
+
$_connection->insert($_table, $dataLine);
|
756 |
+
} catch (Exception $e) {
|
757 |
+
$exceptions[] = Mage::helper('chronorelais')->__('Order assigning error: ' . $e->getMessage());
|
758 |
+
}
|
759 |
+
}
|
760 |
+
if ($exceptions) {
|
761 |
+
$this->_getSession()->addError($exceptions);
|
762 |
+
} else {
|
763 |
+
$this->_getSession()->addSuccess($this->__('Livraison le Samedi statut a été ajouté'));
|
764 |
+
}
|
765 |
+
$this->_redirect('*/*/index');
|
766 |
+
}
|
767 |
+
|
768 |
+
/* Remove accents characters */
|
769 |
+
|
770 |
+
public function removeaccents($string) {
|
771 |
+
$stringToReturn = str_replace(
|
772 |
+
array('à', 'á', 'â', 'ã', 'ä', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', '/', '\xa8'), array('a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'A', 'A', 'A', 'A', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'N', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', ' ', 'e'), $string);
|
773 |
+
// Remove all remaining other unknown characters
|
774 |
+
$stringToReturn = preg_replace('/[^a-zA-Z0-9\-]/', ' ', $stringToReturn);
|
775 |
+
$stringToReturn = preg_replace('/^[\-]+/', '', $stringToReturn);
|
776 |
+
$stringToReturn = preg_replace('/[\-]+$/', '', $stringToReturn);
|
777 |
+
$stringToReturn = preg_replace('/[\-]{2,}/', ' ', $stringToReturn);
|
778 |
+
return $stringToReturn;
|
779 |
+
}
|
780 |
+
|
781 |
+
/*
|
782 |
+
* *******************************************************************
|
783 |
+
* ******************** ETIQUETTE DE RETOUR **************************
|
784 |
+
* *******************************************************************
|
785 |
+
*/
|
786 |
+
|
787 |
+
public function printEtiquetteRetourAction() {
|
788 |
+
$shipmentIncrementId = $this->getRequest()->getParam('shipment_increment_id');
|
789 |
+
$shipmentId = $this->getShipmentByIncrementId($shipmentIncrementId);
|
790 |
+
$shipmentId = $shipmentId[0];
|
791 |
+
$shipment = Mage::getModel('sales/order_shipment')->load($shipmentId);
|
792 |
+
$_order = $shipment->getOrder();
|
793 |
+
$_shippingAddress = $shipment->getShippingAddress();
|
794 |
+
$_billingAddress = $shipment->getBillingAddress();
|
795 |
+
$skillbill = $this->getEtiquetteRetourUrl($shipment); /* skillbill pdf encode base64*/
|
796 |
+
|
797 |
+
if ($skillbill) {
|
798 |
+
try {
|
799 |
+
$path = $this->savePdfWithContent($skillbill, $shipmentId);
|
800 |
+
|
801 |
+
$message_email = 'Bonjour,
|
802 |
+
<br />Vous allez bientôt effectuer un envoi Chronopost. La personne qui vous a adressé ce mail a déjà préparé la lettre de transport que vous utiliserez. Après impression, apposez la lettre de transport dans une pochette plastique adhésive et collez la sur votre envoi. Attention le code à barres doit être bien apparent.
|
803 |
+
<br />Cordialement,';
|
804 |
+
|
805 |
+
$customer_email = ($_shippingAddress->getEmail()) ? $_shippingAddress->getEmail() : ($_billingAddress->getEmail() ? $_billingAddress->getEmail() : $_order->getCustomerEmail());
|
806 |
+
|
807 |
+
$mail = new Zend_Mail('utf-8');
|
808 |
+
$mail->setBodyHtml($message_email);
|
809 |
+
$mail->setFrom(Mage::getStoreConfig('contacts/email/recipient_email'));
|
810 |
+
$mail->setSubject($_order->getStoreName(1) . ' : Etiquette de retour chronopost');
|
811 |
+
$mail->createAttachment(file_get_contents($path), Zend_Mime::TYPE_OCTETSTREAM, Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, 'etiquette_retour.pdf');
|
812 |
+
|
813 |
+
$mail->addTo($customer_email);
|
814 |
+
$mail->send();
|
815 |
+
|
816 |
+
$mail->clearRecipients();
|
817 |
+
$mail->addTo(Mage::getStoreConfig('contacts/email/recipient_email'));
|
818 |
+
$mail->send();
|
819 |
+
|
820 |
+
$this->_getSession()->addSuccess(Mage::helper('chronorelais')->__('L\'etiquette de retour à bien été envoyée au client.'));
|
821 |
+
} catch (Mage_Core_Exception $e) {
|
822 |
+
$this->_getSession()->addError(Mage::helper('chronorelais')->__('Désolé, une erreure est survenu lors de la récupération de l\'étiquettes. Merci de contacter Chronopost ou de réessayer plus tard'));
|
823 |
+
}
|
824 |
+
}
|
825 |
+
return $this->_redirectReferer();
|
826 |
+
}
|
827 |
+
|
828 |
+
protected function getEtiquetteRetourParams($shipment, $_shippingMethod) {
|
829 |
+
$_order = $shipment->getOrder();
|
830 |
+
$_shippingAddress = $shipment->getShippingAddress();
|
831 |
+
$_billingAddress = $shipment->getBillingAddress();
|
832 |
+
$_helper = Mage::helper('chronorelais');
|
833 |
+
|
834 |
+
if ($_shippingAddress->getCountryId() != 'FR'
|
835 |
+
&& strpos($_shippingMethod[0], 'chronorelaiseurope') === false
|
836 |
+
&& strpos($_shippingMethod[0], 'chronorelaisdom') === false
|
837 |
+
&& strpos($_shippingMethod[0], 'chronopostsrdv') === false
|
838 |
+
) {
|
839 |
+
$this->_getSession()->addError($_helper->__('Les retours sont disponibles uniquement pour la France'));
|
840 |
+
return;
|
841 |
+
}
|
842 |
+
$shippingMethodAllow = array('chronorelaiseurope','chronorelais','chronopost','chronopostc10','chronopostc18','chronopostsrdv');
|
843 |
+
if (!in_array($_shippingMethod[0], $shippingMethodAllow)) {
|
844 |
+
$this->_getSession()->addError($_helper->__('Les retours ne sont pas disponibles pour le mode de livraison ' . $_shippingMethod[0]));
|
845 |
+
return;
|
846 |
+
}
|
847 |
+
|
848 |
+
if (in_array($_shippingMethod[0], $shippingMethodAllow)) {
|
849 |
+
$esdParams = $header = $shipper = $customer = $recipient = $ref = $skybill = $skybillParams = $password = array();
|
850 |
+
|
851 |
+
//header parameters
|
852 |
+
$header = array(
|
853 |
+
'idEmit' => 'MAG',
|
854 |
+
'accountNumber' => $_helper->getConfigurationAccountNumber(),
|
855 |
+
'subAccount' => $_helper->getConfigurationSubAccountNumber()
|
856 |
+
);
|
857 |
+
|
858 |
+
//shipper parameters
|
859 |
+
$shipperMobilePhone = $this->checkMobileNumber($_helper->getConfigurationShipperInfo('mobilephone'));
|
860 |
+
$recipient = array(
|
861 |
+
'recipientAdress1' => $_helper->getConfigurationShipperInfo('address1'),
|
862 |
+
'recipientAdress2' => $_helper->getConfigurationShipperInfo('address2'),
|
863 |
+
'recipientCity' => $_helper->getConfigurationShipperInfo('city'),
|
864 |
+
'recipientCivility' => $_helper->getConfigurationShipperInfo('civility'),
|
865 |
+
'recipientContactName' => $_helper->getConfigurationShipperInfo('contactname'),
|
866 |
+
'recipientCountry' => $_helper->getConfigurationShipperInfo('country'),
|
867 |
+
'recipientEmail' => $_helper->getConfigurationShipperInfo('email'),
|
868 |
+
'recipientMobilePhone' => $shipperMobilePhone,
|
869 |
+
'recipientName' => $_helper->getConfigurationShipperInfo('name'),
|
870 |
+
'recipientName2' => $_helper->getConfigurationShipperInfo('name2'),
|
871 |
+
'recipientPhone' => $_helper->getConfigurationShipperInfo('phone'),
|
872 |
+
'recipientPreAlert' => '',
|
873 |
+
'recipientZipCode' => $_helper->getConfigurationShipperInfo('zipcode')
|
874 |
+
);
|
875 |
+
|
876 |
+
//customer parameters
|
877 |
+
$customerMobilePhone = $this->checkMobileNumber($_helper->getConfigurationCustomerInfo('mobilephone'));
|
878 |
+
$customer = array(
|
879 |
+
'customerAdress1' => $_helper->getConfigurationCustomerInfo('address1'),
|
880 |
+
'customerAdress2' => $_helper->getConfigurationCustomerInfo('address2'),
|
881 |
+
'customerCity' => $_helper->getConfigurationCustomerInfo('city'),
|
882 |
+
'customerCivility' => $_helper->getConfigurationCustomerInfo('civility'),
|
883 |
+
'customerContactName' => $_helper->getConfigurationCustomerInfo('contactname'),
|
884 |
+
'customerCountry' => $_helper->getConfigurationCustomerInfo('country'),
|
885 |
+
'customerEmail' => $_helper->getConfigurationCustomerInfo('email'),
|
886 |
+
'customerMobilePhone' => $customerMobilePhone,
|
887 |
+
'customerName' => $_helper->getConfigurationCustomerInfo('name'),
|
888 |
+
'customerName2' => $_helper->getConfigurationCustomerInfo('name2'),
|
889 |
+
'customerPhone' => $_helper->getConfigurationCustomerInfo('phone'),
|
890 |
+
'customerPreAlert' => '',
|
891 |
+
'customerZipCode' => $_helper->getConfigurationCustomerInfo('zipcode')
|
892 |
+
);
|
893 |
+
|
894 |
+
//recipient parameters
|
895 |
+
$_recipientAddress = $_shippingAddress;
|
896 |
+
if(strpos($_shippingMethod[0],'chronorelais') !== false) {
|
897 |
+
// Nicolas, le 27/11/2014 : si Chronorelais, on doit utiliser l'adresse de facturation, non de livraison (qui est celle du relais)
|
898 |
+
$_recipientAddress = $_billingAddress;
|
899 |
+
}
|
900 |
+
$recipient_address = $_recipientAddress->getStreet();
|
901 |
+
|
902 |
+
// Champs forcément basés sur l'adresse de livraison
|
903 |
+
$customer_email = ($_shippingAddress->getEmail()) ? $_shippingAddress->getEmail() : ($_billingAddress->getEmail() ? $_billingAddress->getEmail() : $_order->getCustomerEmail());
|
904 |
+
$recipientMobilePhone = $this->checkMobileNumber($_shippingAddress->getTelephone());
|
905 |
+
$recipientName = $this->getFilledValue($_recipientAddress->getCompany()); //RelayPoint Name if chronorelais or Companyname if chronopost and
|
906 |
+
$recipientName2 = $this->getFilledValue($_shippingAddress->getFirstname() . ' ' . $_shippingAddress->getLastname());
|
907 |
+
//remove any alphabets in phone number
|
908 |
+
|
909 |
+
$recipientPhone = trim(preg_replace("/[^0-9\.\-]/", " ", $_shippingAddress->getTelephone()));
|
910 |
+
if (!isset($recipient_address[1])) {
|
911 |
+
$recipient_address[1] = '';
|
912 |
+
}
|
913 |
+
|
914 |
+
$shipper = array(
|
915 |
+
'shipperAdress1' => substr($this->getFilledValue($recipient_address[0]), 0, 38),
|
916 |
+
'shipperAdress2' => $recipient_address[1] ? substr($this->getFilledValue($recipient_address[1]), 0, 38) : '',
|
917 |
+
'shipperCity' => $this->getFilledValue($_recipientAddress->getCity()),
|
918 |
+
'shipperCivility' => 'M',
|
919 |
+
'shipperContactName' => $recipientName2,
|
920 |
+
'shipperCountry' => $this->getFilledValue($_recipientAddress->getCountryId()),
|
921 |
+
'shipperEmail' => $customer_email,
|
922 |
+
'shipperMobilePhone' => $recipientMobilePhone,
|
923 |
+
'shipperName' => $recipientName,
|
924 |
+
'shipperName2' => $recipientName2,
|
925 |
+
'shipperPhone' => $recipientPhone,
|
926 |
+
'shipperPreAlert' => '',
|
927 |
+
'shipperZipCode' => $this->getFilledValue($_recipientAddress->getPostcode()),
|
928 |
+
);
|
929 |
+
|
930 |
+
//ref parameters
|
931 |
+
$recipientRef = $this->getFilledValue($_shippingAddress->getWRelayPointCode());
|
932 |
+
if (!$recipientRef) {
|
933 |
+
$recipientRef = $_order->getCustomerId();
|
934 |
+
}
|
935 |
+
$shipperRef = $_order->getRealOrderId();
|
936 |
+
|
937 |
+
$ref = array(
|
938 |
+
'recipientRef' => $recipientRef,
|
939 |
+
'shipperRef' => $shipperRef
|
940 |
+
);
|
941 |
+
|
942 |
+
//skybill parameters
|
943 |
+
/* Livraison Samedi (Delivery Saturday) field */
|
944 |
+
$SaturdayShipping = 0; //default value for the saturday shipping
|
945 |
+
if ($_shippingMethod[0] == "chronopost" || $_shippingMethod[0] == "chronorelais") {
|
946 |
+
if (!$_deliver_on_saturday = Mage::helper('chronorelais')->getLivraisonSamediStatus($_order->getEntityId())) {
|
947 |
+
$_deliver_on_saturday = Mage::helper('chronorelais')->getConfigData('carriers/' . $_shippingMethod[0] . '/deliver_on_saturday');
|
948 |
+
} else {
|
949 |
+
if ($_deliver_on_saturday == 'Yes') {
|
950 |
+
$_deliver_on_saturday = 1;
|
951 |
+
} else {
|
952 |
+
$_deliver_on_saturday = 0;
|
953 |
+
}
|
954 |
+
}
|
955 |
+
$is_sending_day = Mage::helper('chronorelais')->isSendingDay();
|
956 |
+
if ($_deliver_on_saturday && $is_sending_day) {
|
957 |
+
$SaturdayShipping = 6;
|
958 |
+
} elseif (!$_deliver_on_saturday && $is_sending_day) {
|
959 |
+
$SaturdayShipping = 1;
|
960 |
+
}
|
961 |
+
}
|
962 |
+
|
963 |
+
$weight = 0;
|
964 |
+
foreach ($shipment->getItemsCollection() as $item) {
|
965 |
+
$weight += $item->weight * $item->qty;
|
966 |
+
}
|
967 |
+
if ($_helper->getConfigWeightUnit() == 'g') {
|
968 |
+
$weight = $weight / 1000; /* conversion g => kg */
|
969 |
+
}
|
970 |
+
|
971 |
+
$productCode = Chronopost_Chronorelais_Helper_Data::CHRONO_POST;
|
972 |
+
if($_shippingMethod[0] == 'chronorelaiseurope') {
|
973 |
+
$productCode = '3T';
|
974 |
+
//$weight <= 3 ? $SaturdayShipping = '337' : $SaturdayShipping = '338';
|
975 |
+
$SaturdayShipping = '332';
|
976 |
+
}
|
977 |
+
|
978 |
+
$weight = 0; /* On met le poids à 0 car les colis sont pesé sur place */
|
979 |
+
|
980 |
+
$skybill = array(
|
981 |
+
'codCurrency' => 'EUR',
|
982 |
+
'codValue' => '',
|
983 |
+
'content1' => '',
|
984 |
+
'content2' => '',
|
985 |
+
'content3' => '',
|
986 |
+
'content4' => '',
|
987 |
+
'content5' => '',
|
988 |
+
'customsCurrency' => 'EUR',
|
989 |
+
'customsValue' => '',
|
990 |
+
'evtCode' => 'DC',
|
991 |
+
'insuredCurrency' => 'EUR',
|
992 |
+
'insuredValue' => '',
|
993 |
+
'objectType' => 'MAR',
|
994 |
+
'productCode' => $productCode,
|
995 |
+
'service' => $SaturdayShipping,
|
996 |
+
'shipDate' => date('c'),
|
997 |
+
'shipHour' => date('H'),
|
998 |
+
'weight' => $weight,
|
999 |
+
'weightUnit' => 'KGM'
|
1000 |
+
);
|
1001 |
+
|
1002 |
+
$mode = $_helper->getConfigurationSkybillParam();
|
1003 |
+
if($_shippingMethod[0] == 'chronorelaiseurope') {
|
1004 |
+
$mode = 'PPR';
|
1005 |
+
}
|
1006 |
+
$skybillParams = array(
|
1007 |
+
'mode' => $mode
|
1008 |
+
);
|
1009 |
+
|
1010 |
+
$expeditionArray = array(
|
1011 |
+
'headerValue' => $header,
|
1012 |
+
'shipperValue' => $shipper,
|
1013 |
+
'customerValue' => $customer,
|
1014 |
+
'recipientValue' => $recipient,
|
1015 |
+
'refValue' => $ref,
|
1016 |
+
'skybillValue' => $skybill,
|
1017 |
+
'skybillParamsValue' => $skybillParams,
|
1018 |
+
'password' => $_helper->getConfigurationAccountPass()
|
1019 |
+
);
|
1020 |
+
return $expeditionArray;
|
1021 |
+
}
|
1022 |
+
}
|
1023 |
+
|
1024 |
+
protected function getEtiquetteRetourUrl($shipment) {
|
1025 |
+
//On récupère les infos d'expédition
|
1026 |
+
$_helper = Mage::helper('chronorelais');
|
1027 |
+
|
1028 |
+
$_order = $shipment->getOrder();
|
1029 |
+
$_shippingMethod = explode("_", $_order->getShippingMethod());
|
1030 |
+
|
1031 |
+
$expeditionArray = $this->getEtiquetteRetourParams($shipment, $_shippingMethod);
|
1032 |
+
if ($expeditionArray) {
|
1033 |
+
$client = new SoapClient("https://www.chronopost.fr/shipping-cxf/ShippingServiceWS?wsdl", array('trace' => true));
|
1034 |
+
try {
|
1035 |
+
$webservbt = $client->shippingV3($expeditionArray);
|
1036 |
+
|
1037 |
+
if (!$webservbt->return->errorCode && $webservbt->return->skybill) {
|
1038 |
+
return $webservbt->return->skybill;
|
1039 |
+
} else {
|
1040 |
+
$this->_getSession()->addError($_helper->__($webservbt->return->errorMessage));
|
1041 |
+
}
|
1042 |
+
} catch (SoapFault $fault) {
|
1043 |
+
$this->_getSession()->addError($_helper->__($fault->faultstring));
|
1044 |
+
}
|
1045 |
+
}
|
1046 |
+
}
|
1047 |
+
|
1048 |
+
protected function savePdf($url, $shipmentId) {
|
1049 |
+
$this->createMediaChronopostFolder();
|
1050 |
+
$path = 'media/chronopost/etiquetteRetour-' . $shipmentId . '.pdf';
|
1051 |
+
file_put_contents($path, file_get_contents($url));
|
1052 |
+
return $path;
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
protected function savePdfWithContent($content_base64, $shipmentId) {
|
1056 |
+
$this->createMediaChronopostFolder();
|
1057 |
+
$path = 'media/chronopost/etiquetteRetour-' . $shipmentId . '.pdf';
|
1058 |
+
file_put_contents($path, $content_base64);
|
1059 |
+
return $path;
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
/* create folder media/chronopost if not exist */
|
1063 |
+
protected function createMediaChronopostFolder() {
|
1064 |
+
$path = 'media/chronopost';
|
1065 |
+
if(!is_dir($path)) {
|
1066 |
+
mkdir($path,0777);
|
1067 |
+
}
|
1068 |
+
}
|
1069 |
+
|
1070 |
+
protected function getShipmentObjectByOrderId($orderId) {
|
1071 |
+
$_shipment = Mage::getResourceModel('sales/order_shipment_collection')
|
1072 |
+
->addAttributeToFilter('order_id', $orderId);
|
1073 |
+
return $_shipment;
|
1074 |
+
}
|
1075 |
+
|
1076 |
+
public function cancelMassAction() {
|
1077 |
+
$orderIds = $this->getRequest()->getParam('order_ids');
|
1078 |
+
|
1079 |
+
if($orderIds) {
|
1080 |
+
$nbEtiquettesDelete = 0;
|
1081 |
+
foreach($orderIds as $orderId) {
|
1082 |
+
$shipments = $this->getShipmentObjectByOrderId($orderId);
|
1083 |
+
if($shipments) {
|
1084 |
+
foreach($shipments as $shipment) {
|
1085 |
+
|
1086 |
+
$tracks = $shipment->getTracksCollection();
|
1087 |
+
foreach ($tracks as $track) {
|
1088 |
+
|
1089 |
+
/* numero chrono si getChronoReservationNumber non null */
|
1090 |
+
if($track->getChronoReservationNumber()) {
|
1091 |
+
|
1092 |
+
/* appel WS pour annuler LT */
|
1093 |
+
$webservbt = Mage::helper('chronorelais/webservice')->cancelSkybill($track->getNumber());
|
1094 |
+
if($webservbt) {
|
1095 |
+
/* suppression du numéro de tracking */
|
1096 |
+
if($webservbt->return->errorCode == 0) {
|
1097 |
+
$nbEtiquettesDelete++;
|
1098 |
+
$track->delete();
|
1099 |
+
} else {
|
1100 |
+
switch($webservbt->return->errorCode) {
|
1101 |
+
case "1" :
|
1102 |
+
$errorMessage = $this->__("Une erreur système est survenue");
|
1103 |
+
break;
|
1104 |
+
case "2" :
|
1105 |
+
$errorMessage = $this->__("le colis n'appartient pas au contrat passé en paramètre ou n'a pas encore été enregistré dans le système de tracking Chronopost");
|
1106 |
+
break;
|
1107 |
+
case "3" :
|
1108 |
+
$errorMessage = $this->__("Le colis ne peut être pas annulé car il a été pris en charge par Chronopost");
|
1109 |
+
break;
|
1110 |
+
default :
|
1111 |
+
$errorMessage = '';
|
1112 |
+
break;
|
1113 |
+
}
|
1114 |
+
$this->_getSession()->addError($this->__("Erreur lors de la suppression de l'étiquettes %s : %s.",$track->getNumber(),$errorMessage));
|
1115 |
+
}
|
1116 |
+
} else {
|
1117 |
+
$this->_getSession()->addError($this->__('Désolé, une erreur est survenu lors de la suppression de l\'étiquette %s. Merci de contacter Chronopost ou de réessayer plus tard',$track->getNumber()));
|
1118 |
+
}
|
1119 |
+
}
|
1120 |
+
}
|
1121 |
+
}
|
1122 |
+
}
|
1123 |
+
}
|
1124 |
+
if($nbEtiquettesDelete > 0) {
|
1125 |
+
if($nbEtiquettesDelete > 1) {
|
1126 |
+
$this->_getSession()->addSuccess($this->__('%s étiquettes de transport ont bien été annulées.',$nbEtiquettesDelete));
|
1127 |
+
} else {
|
1128 |
+
$this->_getSession()->addSuccess($this->__('%s étiquette de transport a bien été annulée.',$nbEtiquettesDelete));
|
1129 |
+
}
|
1130 |
+
|
1131 |
+
}
|
1132 |
+
} else {
|
1133 |
+
$this->_getSession()->addError($this->__("Veuillez sélectionner au moins une lettre de transport."));
|
1134 |
+
}
|
1135 |
+
$this->_redirect('*/*/index');
|
1136 |
+
}
|
1137 |
+
|
1138 |
+
}
|
app/code/community/Chronopost/Chronorelais/controllers/Adminhtml/Chronorelais/Sales/Order/ShipmentController.php
CHANGED
@@ -1,429 +1,429 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once 'Mage/Adminhtml/controllers/Sales/Order/ShipmentController.php';
|
4 |
-
|
5 |
-
class Chronopost_Chronorelais_Adminhtml_Chronorelais_Sales_Order_ShipmentController extends Mage_Adminhtml_Sales_Order_ShipmentController {
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Save shipment
|
9 |
-
* We can save only new shipment. Existing shipments are not editable
|
10 |
-
*/
|
11 |
-
public function getFilledValue($value) {
|
12 |
-
if ($value) {
|
13 |
-
return $this->removeaccents(trim($value));
|
14 |
-
} else {
|
15 |
-
return '';
|
16 |
-
}
|
17 |
-
}
|
18 |
-
|
19 |
-
public function checkMobileNumber($value) {
|
20 |
-
if ($reqvalue = trim($value)) {
|
21 |
-
$_number = substr($reqvalue, 0, 2);
|
22 |
-
$fixed_array = array('01', '02', '03', '04', '05', '06', '06');
|
23 |
-
if (in_array($_number, $fixed_array)) {
|
24 |
-
return $reqvalue;
|
25 |
-
} else {
|
26 |
-
return '';
|
27 |
-
}
|
28 |
-
}
|
29 |
-
}
|
30 |
-
|
31 |
-
protected function saveAndCreateEtiquette($shipment,$data) {
|
32 |
-
$shipment->register();
|
33 |
-
|
34 |
-
//Si l'expedition est réalisé par Mondial Relay, on créé le tracking automatiquement.
|
35 |
-
|
36 |
-
$_order = $shipment->getOrder();
|
37 |
-
$_shippingMethod = explode("_", $_order->getShippingMethod());
|
38 |
-
|
39 |
-
$_shippingAddress = $shipment->getShippingAddress();
|
40 |
-
$_billingAddress = $shipment->getBillingAddress();
|
41 |
-
$_helper = Mage::helper('chronorelais');
|
42 |
-
|
43 |
-
$shippingMethodAllow = array('chronorelais','chronopost','chronoexpress','chronopostc10','chronopostc18','chronopostcclassic','chronorelaiseurope','chronorelaisdom','chronopostsrdv','chronopostsameday');
|
44 |
-
if (in_array($_shippingMethod[0],$shippingMethodAllow)) {
|
45 |
-
|
46 |
-
$esdParams = $header = $shipper = $customer = $recipient = $ref = $skybill = $skybillParams = $password = array();
|
47 |
-
|
48 |
-
//header parameters
|
49 |
-
$header = array(
|
50 |
-
'idEmit' => 'MAG',
|
51 |
-
'accountNumber' => $_helper->getConfigurationAccountNumber(),
|
52 |
-
'subAccount' => $_helper->getConfigurationSubAccountNumber()
|
53 |
-
);
|
54 |
-
|
55 |
-
//shipper parameters
|
56 |
-
$shipperMobilePhone = $this->checkMobileNumber($_helper->getConfigurationShipperInfo('mobilephone'));
|
57 |
-
$shipper = array(
|
58 |
-
'shipperAdress1' => $_helper->getConfigurationShipperInfo('address1'),
|
59 |
-
'shipperAdress2' => $_helper->getConfigurationShipperInfo('address2'),
|
60 |
-
'shipperCity' => $_helper->getConfigurationShipperInfo('city'),
|
61 |
-
'shipperCivility' => $_helper->getConfigurationShipperInfo('civility'),
|
62 |
-
'shipperContactName' => $_helper->getConfigurationShipperInfo('contactname'),
|
63 |
-
'shipperCountry' => $_helper->getConfigurationShipperInfo('country'),
|
64 |
-
'shipperEmail' => $_helper->getConfigurationShipperInfo('email'),
|
65 |
-
'shipperMobilePhone' => $shipperMobilePhone,
|
66 |
-
'shipperName' => $_helper->getConfigurationShipperInfo('name'),
|
67 |
-
'shipperName2' => $_helper->getConfigurationShipperInfo('name2'),
|
68 |
-
'shipperPhone' => $_helper->getConfigurationShipperInfo('phone'),
|
69 |
-
'shipperPreAlert' => '',
|
70 |
-
'shipperZipCode' => $_helper->getConfigurationShipperInfo('zipcode')
|
71 |
-
);
|
72 |
-
|
73 |
-
//customer parameters
|
74 |
-
$customerMobilePhone = $this->checkMobileNumber($_helper->getConfigurationCustomerInfo('mobilephone'));
|
75 |
-
$customer = array(
|
76 |
-
'customerAdress1' => $_helper->getConfigurationCustomerInfo('address1'),
|
77 |
-
'customerAdress2' => $_helper->getConfigurationCustomerInfo('address2'),
|
78 |
-
'customerCity' => $_helper->getConfigurationCustomerInfo('city'),
|
79 |
-
'customerCivility' => $_helper->getConfigurationCustomerInfo('civility'),
|
80 |
-
'customerContactName' => $_helper->getConfigurationCustomerInfo('contactname'),
|
81 |
-
'customerCountry' => $_helper->getConfigurationCustomerInfo('country'),
|
82 |
-
'customerEmail' => $_helper->getConfigurationCustomerInfo('email'),
|
83 |
-
'customerMobilePhone' => $customerMobilePhone,
|
84 |
-
'customerName' => $_helper->getConfigurationCustomerInfo('name'),
|
85 |
-
'customerName2' => $_helper->getConfigurationCustomerInfo('name2'),
|
86 |
-
'customerPhone' => $_helper->getConfigurationCustomerInfo('phone'),
|
87 |
-
'customerPreAlert' => '',
|
88 |
-
'customerZipCode' => $_helper->getConfigurationCustomerInfo('zipcode')
|
89 |
-
);
|
90 |
-
|
91 |
-
//recipient parameters
|
92 |
-
$recipient_address = $_shippingAddress->getStreet();
|
93 |
-
if (!isset($recipient_address[1])) {
|
94 |
-
$recipient_address[1] = '';
|
95 |
-
}
|
96 |
-
$customer_email = ($_shippingAddress->getEmail()) ? $_shippingAddress->getEmail() : ($_billingAddress->getEmail() ? $_billingAddress->getEmail() : $_order->getCustomerEmail());
|
97 |
-
$recipientMobilePhone = $this->checkMobileNumber($_shippingAddress->getTelephone());
|
98 |
-
$recipientName = $this->getFilledValue($_shippingAddress->getCompany()); //RelayPoint Name if chronorelais or Companyname if chronopost and
|
99 |
-
$recipientName2 = $this->getFilledValue($_shippingAddress->getFirstname() . ' ' . $_shippingAddress->getLastname());
|
100 |
-
|
101 |
-
//remove any alphabets in phone number
|
102 |
-
$recipientPhone = trim(preg_replace("/[^0-9\.\-]/", " ", $_shippingAddress->getTelephone()));
|
103 |
-
|
104 |
-
$recipient = array(
|
105 |
-
'recipientAdress1' => substr($this->getFilledValue($recipient_address[0]), 0, 38),
|
106 |
-
'recipientAdress2' => substr($this->getFilledValue($recipient_address[1]), 0, 38),
|
107 |
-
'recipientCity' => $this->getFilledValue($_shippingAddress->getCity()),
|
108 |
-
'recipientContactName' => $recipientName2,
|
109 |
-
'recipientCountry' => $this->getFilledValue($_shippingAddress->getCountryId()),
|
110 |
-
'recipientEmail' => $customer_email,
|
111 |
-
'recipientMobilePhone' => $recipientMobilePhone,
|
112 |
-
'recipientName' => $recipientName,
|
113 |
-
'recipientName2' => $recipientName2,
|
114 |
-
'recipientPhone' => $recipientPhone,
|
115 |
-
'recipientPreAlert' => '',
|
116 |
-
'recipientZipCode' => $this->getFilledValue($_shippingAddress->getPostcode()),
|
117 |
-
);
|
118 |
-
|
119 |
-
//ref parameters
|
120 |
-
$recipientRef = $this->getFilledValue($_shippingAddress->getWRelayPointCode());
|
121 |
-
if (!$recipientRef) {
|
122 |
-
$recipientRef = $_order->getCustomerId();
|
123 |
-
}
|
124 |
-
$shipperRef = $_order->getRealOrderId();
|
125 |
-
|
126 |
-
$ref = array(
|
127 |
-
'recipientRef' => $recipientRef,
|
128 |
-
'shipperRef' => $shipperRef
|
129 |
-
);
|
130 |
-
|
131 |
-
//skybill parameters
|
132 |
-
/* Livraison Samedi (Delivery Saturday) field */
|
133 |
-
$SaturdayShipping = 0; //default value for the saturday shipping
|
134 |
-
if ($_shippingMethod[0] == "chronopost" || $_shippingMethod[0] == "chronorelais" || $_shippingMethod[0] == "chronorelaisdom") {
|
135 |
-
if (!$_deliver_on_saturday = Mage::helper('chronorelais')->getLivraisonSamediStatus($_order->getEntityId())) {
|
136 |
-
$_deliver_on_saturday = Mage::helper('chronorelais')->getConfigData('carriers/' . $_shippingMethod[0] . '/deliver_on_saturday');
|
137 |
-
} else {
|
138 |
-
if ($_deliver_on_saturday == 'Yes') {
|
139 |
-
$_deliver_on_saturday = 1;
|
140 |
-
} else {
|
141 |
-
$_deliver_on_saturday = 0;
|
142 |
-
}
|
143 |
-
}
|
144 |
-
$is_sending_day = Mage::helper('chronorelais')->isSendingDay();
|
145 |
-
|
146 |
-
if($_shippingMethod[0] == "chronorelaisdom") {
|
147 |
-
if ($_deliver_on_saturday && $is_sending_day) {
|
148 |
-
$SaturdayShipping = 369;
|
149 |
-
} else {
|
150 |
-
$SaturdayShipping = 368;
|
151 |
-
}
|
152 |
-
} else {
|
153 |
-
if ($_deliver_on_saturday && $is_sending_day) {
|
154 |
-
$SaturdayShipping = 6;
|
155 |
-
} elseif (!$_deliver_on_saturday && $is_sending_day) {
|
156 |
-
$SaturdayShipping = 1;
|
157 |
-
}
|
158 |
-
}
|
159 |
-
|
160 |
-
}
|
161 |
-
|
162 |
-
$weight = 0;
|
163 |
-
foreach ($shipment->getItemsCollection() as $item) {
|
164 |
-
$weight += $item->weight * $item->qty;
|
165 |
-
}
|
166 |
-
if ($_helper->getConfigWeightUnit() == 'g') {
|
167 |
-
$weight = $weight / 1000; /* conversion g => kg */
|
168 |
-
}
|
169 |
-
|
170 |
-
/* si chronorelaiseurope : service : 337 si poids < 3kg ou 338 si > 3kg */
|
171 |
-
if($_shippingMethod[0] == "chronorelaiseurope") {
|
172 |
-
$weight <= 3 ? $SaturdayShipping = '337' : $SaturdayShipping = '338';
|
173 |
-
}
|
174 |
-
|
175 |
-
|
176 |
-
$weight = 0; /* On met le poids à 0 car les colis sont pesé sur place */
|
177 |
-
|
178 |
-
$skybill = array(
|
179 |
-
'codCurrency' => 'EUR',
|
180 |
-
'codValue' => '',
|
181 |
-
'content1' => '',
|
182 |
-
'content2' => '',
|
183 |
-
'content3' => '',
|
184 |
-
'content4' => '',
|
185 |
-
'content5' => '',
|
186 |
-
'customsCurrency' => 'EUR',
|
187 |
-
'customsValue' => '',
|
188 |
-
'evtCode' => 'DC',
|
189 |
-
'insuredCurrency' => 'EUR',
|
190 |
-
'insuredValue' => '',
|
191 |
-
'objectType' => 'MAR',
|
192 |
-
'productCode' => $_helper->getChronoProductCodeToShipment($_shippingMethod[0]),
|
193 |
-
'service' => $SaturdayShipping,
|
194 |
-
'shipDate' => date('c'),
|
195 |
-
'shipHour' => date('H'),
|
196 |
-
'weight' => $weight,
|
197 |
-
'weightUnit' => 'KGM'
|
198 |
-
);
|
199 |
-
|
200 |
-
$skybillParams = array(
|
201 |
-
'mode' => $_helper->getConfigurationSkybillParam()
|
202 |
-
);
|
203 |
-
|
204 |
-
$expeditionArray = array(
|
205 |
-
'headerValue' => $header,
|
206 |
-
'shipperValue' => $shipper,
|
207 |
-
'customerValue' => $customer,
|
208 |
-
'recipientValue' => $recipient,
|
209 |
-
'refValue' => $ref,
|
210 |
-
'skybillValue' => $skybill,
|
211 |
-
'skybillParamsValue' => $skybillParams,
|
212 |
-
'password' => $_helper->getConfigurationAccountPass()
|
213 |
-
);
|
214 |
-
|
215 |
-
/* si chronopostsrdv : ajout parametres supplementaires */
|
216 |
-
if($_shippingMethod[0] == "chronopostsrdv") {
|
217 |
-
|
218 |
-
$chronopostsrdv_creneaux_info = $_shippingAddress->getData('chronopostsrdv_creneaux_info');
|
219 |
-
$chronopostsrdv_creneaux_info = json_decode($chronopostsrdv_creneaux_info,true);
|
220 |
-
|
221 |
-
$_dateRdvStart = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
222 |
-
$_dateRdvStart->setTime($chronopostsrdv_creneaux_info['startHour'],$chronopostsrdv_creneaux_info['startMinutes']);
|
223 |
-
|
224 |
-
$_dateRdvEnd = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
225 |
-
$_dateRdvEnd->setTime($chronopostsrdv_creneaux_info['endHour'],$chronopostsrdv_creneaux_info['endMinutes']);
|
226 |
-
|
227 |
-
|
228 |
-
$scheduledValue = array(
|
229 |
-
'appointmentValue' => array(
|
230 |
-
'timeSlotStartDate' => $_dateRdvStart->format("Y-m-d")."T".$_dateRdvStart->format("H:i:s"),
|
231 |
-
'timeSlotEndDate' => $_dateRdvEnd->format("Y-m-d")."T".$_dateRdvEnd->format("H:i:s"),
|
232 |
-
'timeSlotTariffLevel' => $chronopostsrdv_creneaux_info['tariffLevel']
|
233 |
-
)
|
234 |
-
);
|
235 |
-
$expeditionArray['scheduledValue'] = $scheduledValue;
|
236 |
-
|
237 |
-
/* modification productCode et service car dynamique pour ce mode de livraison */
|
238 |
-
|
239 |
-
$expeditionArray['skybillValue']['productCode'] = $chronopostsrdv_creneaux_info['productCode'];
|
240 |
-
$expeditionArray['skybillValue']['service'] = $chronopostsrdv_creneaux_info['serviceCode'];
|
241 |
-
|
242 |
-
}
|
243 |
-
|
244 |
-
$tracking_order = '';
|
245 |
-
|
246 |
-
$client = new SoapClient("https://www.chronopost.fr/shipping-cxf/ShippingServiceWS?wsdl", array('trace' => true));
|
247 |
-
try {
|
248 |
-
$expedition = $client->shippingV3($expeditionArray);
|
249 |
-
|
250 |
-
if (!$expedition->return->errorCode && $expedition->return->skybillNumber) {
|
251 |
-
$track = Mage::getModel('sales/order_shipment_track')
|
252 |
-
->setNumber($expedition->return->skybillNumber)
|
253 |
-
->setChronoReservationNumber(base64_encode($expedition->return->skybill))
|
254 |
-
->setCarrier(ucwords($_shippingMethod[0]))
|
255 |
-
->setCarrierCode($_shippingMethod[0])
|
256 |
-
->setTitle(ucwords($_shippingMethod[0]))
|
257 |
-
->setPopup(1);
|
258 |
-
$shipment->addTrack($track);
|
259 |
-
|
260 |
-
$tracking_number = $expedition->return->skybillNumber;
|
261 |
-
|
262 |
-
$tracking_url = str_replace('{tracking_number}', $tracking_number, Mage::helper('chronorelais')->getConfigurationTrackingViewUrl());
|
263 |
-
$tracking_title = $this->__('Track Your Order');
|
264 |
-
$tracking_order = '<p><a title="' . $tracking_title . '" href="' . $tracking_url . '"><b>' . $tracking_title . '</b></a></p>';
|
265 |
-
|
266 |
-
} else {
|
267 |
-
$this->_getSession()->addError($_helper->__($expedition->return->errorMessage));
|
268 |
-
$this->_redirect('*/*/new', array('order_id' => $this->getRequest()->getParam('order_id')));
|
269 |
-
return;
|
270 |
-
}
|
271 |
-
} catch (SoapFault $fault) {
|
272 |
-
$this->_getSession()->addError($_helper->__($fault->faultstring));
|
273 |
-
$this->_redirect('*/*/new', array('order_id' => $this->getRequest()->getParam('order_id')));
|
274 |
-
return;
|
275 |
-
}
|
276 |
-
}
|
277 |
-
|
278 |
-
$comment = '';
|
279 |
-
if (!empty($data['comment_text'])) {
|
280 |
-
$shipment->addComment($data['comment_text'], isset($data['comment_customer_notify']));
|
281 |
-
$comment = $data['comment_text'];
|
282 |
-
}
|
283 |
-
|
284 |
-
if (!empty($data['send_email'])) {
|
285 |
-
$shipment->setEmailSent(true);
|
286 |
-
}
|
287 |
-
|
288 |
-
$this->_saveShipment($shipment);
|
289 |
-
$shipment->sendEmail(!empty($data['send_email']), $tracking_order . $comment);
|
290 |
-
$this->_getSession()->addSuccess($this->__('Shipment was successfully created.'));
|
291 |
-
$this->_redirect('adminhtml/sales_order/view', array('order_id' => $shipment->getOrderId()));
|
292 |
-
return;
|
293 |
-
}
|
294 |
-
|
295 |
-
/**
|
296 |
-
* Initialize shipment model instance
|
297 |
-
*
|
298 |
-
* @return Mage_Sales_Model_Order_Shipment|bool
|
299 |
-
*/
|
300 |
-
protected function _initShipment()
|
301 |
-
{
|
302 |
-
$this->_title($this->__('Sales'))->_title($this->__('Shipments'));
|
303 |
-
$helper = Mage::helper('chronorelais');
|
304 |
-
$shipment = false;
|
305 |
-
$shipmentId = $this->getRequest()->getParam('shipment_id');
|
306 |
-
$orderId = $this->getRequest()->getParam('order_id');
|
307 |
-
if ($shipmentId) {
|
308 |
-
$shipment = Mage::getModel('sales/order_shipment')->load($shipmentId);
|
309 |
-
} elseif ($orderId) {
|
310 |
-
$order = Mage::getModel('sales/order')->load($orderId);
|
311 |
-
|
312 |
-
/**
|
313 |
-
* Check order existing
|
314 |
-
*/
|
315 |
-
if (!$order->getId()) {
|
316 |
-
$this->_getSession()->addError($this->__('The order no longer exists.'));
|
317 |
-
return false;
|
318 |
-
}
|
319 |
-
/**
|
320 |
-
* Check shipment is available to create separate from invoice
|
321 |
-
*/
|
322 |
-
if ($order->getForcedDoShipmentWithInvoice()) {
|
323 |
-
$this->_getSession()->addError($this->__('Cannot do shipment for the order separately from invoice.'));
|
324 |
-
return false;
|
325 |
-
}
|
326 |
-
/**
|
327 |
-
* Check shipment create availability
|
328 |
-
*/
|
329 |
-
if (!$order->canShip()) {
|
330 |
-
$this->_getSession()->addError($this->__('Cannot do shipment for the order.'));
|
331 |
-
return false;
|
332 |
-
}
|
333 |
-
$savedQtys = $this->_getItemQtys();
|
334 |
-
|
335 |
-
/* If shipping method is Chronopost => check if shipping weight isn't over limit */
|
336 |
-
$chronopostMethods = array('chronopost_chronopost','chronoexpress_chronoexpress','chronorelais_chronorelais','chronopostc10_chronopostC10','chronopostc18_chronopostC18','chronopostcclassic_chronopostCClassic','chronopostsrdv_chronopostsrdv','chronopostsameday_chronopostsameday');
|
337 |
-
$shippingMethod = $order->getShippingMethod();
|
338 |
-
if(in_array($shippingMethod, $chronopostMethods)) {
|
339 |
-
$weightShipping = 0;
|
340 |
-
$shippingMethod = explode("_", $shippingMethod);
|
341 |
-
$shippingMethod = $shippingMethod[0];
|
342 |
-
$weight_limit = Mage::getStoreConfig('carriers/'.$shippingMethod.'/weight_limit');
|
343 |
-
foreach($savedQtys as $iditem => $qty) {
|
344 |
-
$item = $order->getItemById($iditem);
|
345 |
-
$weightShipping += $item->getWeight()*$qty;
|
346 |
-
}
|
347 |
-
if($helper->getConfigWeightUnit() == 'g')
|
348 |
-
{
|
349 |
-
$weightShipping = $weightShipping / 1000; // conversion g => kg
|
350 |
-
}
|
351 |
-
if($weightShipping > $weight_limit) {
|
352 |
-
|
353 |
-
/* Create one shipment by product ordered */
|
354 |
-
foreach($savedQtys as $iditem => $qty) {
|
355 |
-
$item = $order->getItemById($iditem);
|
356 |
-
$weightShipping += $item->getWeight()*$qty;
|
357 |
-
for($i = 1; $i <= $qty; $i++) {
|
358 |
-
$shipment[] = Mage::getModel('sales/service_order', $order)->prepareShipment(array($item->getId() => '1'));
|
359 |
-
|
360 |
-
}
|
361 |
-
}
|
362 |
-
}
|
363 |
-
}
|
364 |
-
|
365 |
-
|
366 |
-
if(!$shipment)
|
367 |
-
{
|
368 |
-
$shipment = Mage::getModel('sales/service_order', $order)->prepareShipment($savedQtys);
|
369 |
-
|
370 |
-
$tracks = $this->getRequest()->getPost('tracking');
|
371 |
-
if ($tracks) {
|
372 |
-
foreach ($tracks as $data) {
|
373 |
-
if (empty($data['number'])) {
|
374 |
-
Mage::throwException($this->__('Tracking number cannot be empty.'));
|
375 |
-
}
|
376 |
-
$track = Mage::getModel('sales/order_shipment_track')
|
377 |
-
->addData($data);
|
378 |
-
$shipment->addTrack($track);
|
379 |
-
}
|
380 |
-
}
|
381 |
-
}
|
382 |
-
}
|
383 |
-
|
384 |
-
Mage::register('current_shipment', $shipment);
|
385 |
-
return $shipment;
|
386 |
-
}
|
387 |
-
|
388 |
-
public function saveAction() {
|
389 |
-
$data = $this->getRequest()->getPost('shipment');
|
390 |
-
$orderId = $this->getRequest()->getParam('order_id');
|
391 |
-
|
392 |
-
try {
|
393 |
-
|
394 |
-
if ($shipment = $this->_initShipment()) {
|
395 |
-
if(is_array($shipment))
|
396 |
-
{
|
397 |
-
foreach($shipment as $ship) {
|
398 |
-
$this->saveAndCreateEtiquette($ship,$data);
|
399 |
-
}
|
400 |
-
}
|
401 |
-
else
|
402 |
-
{
|
403 |
-
$this->saveAndCreateEtiquette($shipment,$data);
|
404 |
-
}
|
405 |
-
} else {
|
406 |
-
$this->_redirect('*/*/new', array('order_id' => $this->getRequest()->getParam('order_id')));
|
407 |
-
return;
|
408 |
-
}
|
409 |
-
|
410 |
-
} catch (Mage_Core_Exception $e) {
|
411 |
-
$this->_getSession()->addError($e->getMessage());
|
412 |
-
} catch (Exception $e) {
|
413 |
-
$this->_getSession()->addError($this->__('Can not save shipment: ' . $e->getMessage()));
|
414 |
-
}
|
415 |
-
$this->_redirect('adminhtml/sales_order/view', array('order_id' => $orderId));
|
416 |
-
}
|
417 |
-
|
418 |
-
public function removeaccents($string) {
|
419 |
-
$stringToReturn = str_replace(
|
420 |
-
array('�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '/', '\xa8'), array('a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'A', 'A', 'A', 'A', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'N', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', ' ', 'e'), $string);
|
421 |
-
// Remove all remaining other unknown characters
|
422 |
-
$stringToReturn = preg_replace('/[^a-zA-Z0-9\-]/', ' ', $stringToReturn);
|
423 |
-
$stringToReturn = preg_replace('/^[\-]+/', '', $stringToReturn);
|
424 |
-
$stringToReturn = preg_replace('/[\-]+$/', '', $stringToReturn);
|
425 |
-
$stringToReturn = preg_replace('/[\-]{2,}/', ' ', $stringToReturn);
|
426 |
-
return $stringToReturn;
|
427 |
-
}
|
428 |
-
|
429 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once 'Mage/Adminhtml/controllers/Sales/Order/ShipmentController.php';
|
4 |
+
|
5 |
+
class Chronopost_Chronorelais_Adminhtml_Chronorelais_Sales_Order_ShipmentController extends Mage_Adminhtml_Sales_Order_ShipmentController {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Save shipment
|
9 |
+
* We can save only new shipment. Existing shipments are not editable
|
10 |
+
*/
|
11 |
+
public function getFilledValue($value) {
|
12 |
+
if ($value) {
|
13 |
+
return $this->removeaccents(trim($value));
|
14 |
+
} else {
|
15 |
+
return '';
|
16 |
+
}
|
17 |
+
}
|
18 |
+
|
19 |
+
public function checkMobileNumber($value) {
|
20 |
+
if ($reqvalue = trim($value)) {
|
21 |
+
$_number = substr($reqvalue, 0, 2);
|
22 |
+
$fixed_array = array('01', '02', '03', '04', '05', '06', '06');
|
23 |
+
if (in_array($_number, $fixed_array)) {
|
24 |
+
return $reqvalue;
|
25 |
+
} else {
|
26 |
+
return '';
|
27 |
+
}
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
protected function saveAndCreateEtiquette($shipment,$data) {
|
32 |
+
$shipment->register();
|
33 |
+
|
34 |
+
//Si l'expedition est réalisé par Mondial Relay, on créé le tracking automatiquement.
|
35 |
+
|
36 |
+
$_order = $shipment->getOrder();
|
37 |
+
$_shippingMethod = explode("_", $_order->getShippingMethod());
|
38 |
+
|
39 |
+
$_shippingAddress = $shipment->getShippingAddress();
|
40 |
+
$_billingAddress = $shipment->getBillingAddress();
|
41 |
+
$_helper = Mage::helper('chronorelais');
|
42 |
+
|
43 |
+
$shippingMethodAllow = array('chronorelais','chronopost','chronoexpress','chronopostc10','chronopostc18','chronopostcclassic','chronorelaiseurope','chronorelaisdom','chronopostsrdv','chronopostsameday');
|
44 |
+
if (in_array($_shippingMethod[0],$shippingMethodAllow)) {
|
45 |
+
|
46 |
+
$esdParams = $header = $shipper = $customer = $recipient = $ref = $skybill = $skybillParams = $password = array();
|
47 |
+
|
48 |
+
//header parameters
|
49 |
+
$header = array(
|
50 |
+
'idEmit' => 'MAG',
|
51 |
+
'accountNumber' => $_helper->getConfigurationAccountNumber(),
|
52 |
+
'subAccount' => $_helper->getConfigurationSubAccountNumber()
|
53 |
+
);
|
54 |
+
|
55 |
+
//shipper parameters
|
56 |
+
$shipperMobilePhone = $this->checkMobileNumber($_helper->getConfigurationShipperInfo('mobilephone'));
|
57 |
+
$shipper = array(
|
58 |
+
'shipperAdress1' => $_helper->getConfigurationShipperInfo('address1'),
|
59 |
+
'shipperAdress2' => $_helper->getConfigurationShipperInfo('address2'),
|
60 |
+
'shipperCity' => $_helper->getConfigurationShipperInfo('city'),
|
61 |
+
'shipperCivility' => $_helper->getConfigurationShipperInfo('civility'),
|
62 |
+
'shipperContactName' => $_helper->getConfigurationShipperInfo('contactname'),
|
63 |
+
'shipperCountry' => $_helper->getConfigurationShipperInfo('country'),
|
64 |
+
'shipperEmail' => $_helper->getConfigurationShipperInfo('email'),
|
65 |
+
'shipperMobilePhone' => $shipperMobilePhone,
|
66 |
+
'shipperName' => $_helper->getConfigurationShipperInfo('name'),
|
67 |
+
'shipperName2' => $_helper->getConfigurationShipperInfo('name2'),
|
68 |
+
'shipperPhone' => $_helper->getConfigurationShipperInfo('phone'),
|
69 |
+
'shipperPreAlert' => '',
|
70 |
+
'shipperZipCode' => $_helper->getConfigurationShipperInfo('zipcode')
|
71 |
+
);
|
72 |
+
|
73 |
+
//customer parameters
|
74 |
+
$customerMobilePhone = $this->checkMobileNumber($_helper->getConfigurationCustomerInfo('mobilephone'));
|
75 |
+
$customer = array(
|
76 |
+
'customerAdress1' => $_helper->getConfigurationCustomerInfo('address1'),
|
77 |
+
'customerAdress2' => $_helper->getConfigurationCustomerInfo('address2'),
|
78 |
+
'customerCity' => $_helper->getConfigurationCustomerInfo('city'),
|
79 |
+
'customerCivility' => $_helper->getConfigurationCustomerInfo('civility'),
|
80 |
+
'customerContactName' => $_helper->getConfigurationCustomerInfo('contactname'),
|
81 |
+
'customerCountry' => $_helper->getConfigurationCustomerInfo('country'),
|
82 |
+
'customerEmail' => $_helper->getConfigurationCustomerInfo('email'),
|
83 |
+
'customerMobilePhone' => $customerMobilePhone,
|
84 |
+
'customerName' => $_helper->getConfigurationCustomerInfo('name'),
|
85 |
+
'customerName2' => $_helper->getConfigurationCustomerInfo('name2'),
|
86 |
+
'customerPhone' => $_helper->getConfigurationCustomerInfo('phone'),
|
87 |
+
'customerPreAlert' => '',
|
88 |
+
'customerZipCode' => $_helper->getConfigurationCustomerInfo('zipcode')
|
89 |
+
);
|
90 |
+
|
91 |
+
//recipient parameters
|
92 |
+
$recipient_address = $_shippingAddress->getStreet();
|
93 |
+
if (!isset($recipient_address[1])) {
|
94 |
+
$recipient_address[1] = '';
|
95 |
+
}
|
96 |
+
$customer_email = ($_shippingAddress->getEmail()) ? $_shippingAddress->getEmail() : ($_billingAddress->getEmail() ? $_billingAddress->getEmail() : $_order->getCustomerEmail());
|
97 |
+
$recipientMobilePhone = $this->checkMobileNumber($_shippingAddress->getTelephone());
|
98 |
+
$recipientName = $this->getFilledValue($_shippingAddress->getCompany()); //RelayPoint Name if chronorelais or Companyname if chronopost and
|
99 |
+
$recipientName2 = $this->getFilledValue($_shippingAddress->getFirstname() . ' ' . $_shippingAddress->getLastname());
|
100 |
+
|
101 |
+
//remove any alphabets in phone number
|
102 |
+
$recipientPhone = trim(preg_replace("/[^0-9\.\-]/", " ", $_shippingAddress->getTelephone()));
|
103 |
+
|
104 |
+
$recipient = array(
|
105 |
+
'recipientAdress1' => substr($this->getFilledValue($recipient_address[0]), 0, 38),
|
106 |
+
'recipientAdress2' => substr($this->getFilledValue($recipient_address[1]), 0, 38),
|
107 |
+
'recipientCity' => $this->getFilledValue($_shippingAddress->getCity()),
|
108 |
+
'recipientContactName' => $recipientName2,
|
109 |
+
'recipientCountry' => $this->getFilledValue($_shippingAddress->getCountryId()),
|
110 |
+
'recipientEmail' => $customer_email,
|
111 |
+
'recipientMobilePhone' => $recipientMobilePhone,
|
112 |
+
'recipientName' => $recipientName,
|
113 |
+
'recipientName2' => $recipientName2,
|
114 |
+
'recipientPhone' => $recipientPhone,
|
115 |
+
'recipientPreAlert' => '',
|
116 |
+
'recipientZipCode' => $this->getFilledValue($_shippingAddress->getPostcode()),
|
117 |
+
);
|
118 |
+
|
119 |
+
//ref parameters
|
120 |
+
$recipientRef = $this->getFilledValue($_shippingAddress->getWRelayPointCode());
|
121 |
+
if (!$recipientRef) {
|
122 |
+
$recipientRef = $_order->getCustomerId();
|
123 |
+
}
|
124 |
+
$shipperRef = $_order->getRealOrderId();
|
125 |
+
|
126 |
+
$ref = array(
|
127 |
+
'recipientRef' => $recipientRef,
|
128 |
+
'shipperRef' => $shipperRef
|
129 |
+
);
|
130 |
+
|
131 |
+
//skybill parameters
|
132 |
+
/* Livraison Samedi (Delivery Saturday) field */
|
133 |
+
$SaturdayShipping = 0; //default value for the saturday shipping
|
134 |
+
if ($_shippingMethod[0] == "chronopost" || $_shippingMethod[0] == "chronorelais" || $_shippingMethod[0] == "chronorelaisdom") {
|
135 |
+
if (!$_deliver_on_saturday = Mage::helper('chronorelais')->getLivraisonSamediStatus($_order->getEntityId())) {
|
136 |
+
$_deliver_on_saturday = Mage::helper('chronorelais')->getConfigData('carriers/' . $_shippingMethod[0] . '/deliver_on_saturday');
|
137 |
+
} else {
|
138 |
+
if ($_deliver_on_saturday == 'Yes') {
|
139 |
+
$_deliver_on_saturday = 1;
|
140 |
+
} else {
|
141 |
+
$_deliver_on_saturday = 0;
|
142 |
+
}
|
143 |
+
}
|
144 |
+
$is_sending_day = Mage::helper('chronorelais')->isSendingDay();
|
145 |
+
|
146 |
+
if($_shippingMethod[0] == "chronorelaisdom") {
|
147 |
+
if ($_deliver_on_saturday && $is_sending_day) {
|
148 |
+
$SaturdayShipping = 369;
|
149 |
+
} else {
|
150 |
+
$SaturdayShipping = 368;
|
151 |
+
}
|
152 |
+
} else {
|
153 |
+
if ($_deliver_on_saturday && $is_sending_day) {
|
154 |
+
$SaturdayShipping = 6;
|
155 |
+
} elseif (!$_deliver_on_saturday && $is_sending_day) {
|
156 |
+
$SaturdayShipping = 1;
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
+
}
|
161 |
+
|
162 |
+
$weight = 0;
|
163 |
+
foreach ($shipment->getItemsCollection() as $item) {
|
164 |
+
$weight += $item->weight * $item->qty;
|
165 |
+
}
|
166 |
+
if ($_helper->getConfigWeightUnit() == 'g') {
|
167 |
+
$weight = $weight / 1000; /* conversion g => kg */
|
168 |
+
}
|
169 |
+
|
170 |
+
/* si chronorelaiseurope : service : 337 si poids < 3kg ou 338 si > 3kg */
|
171 |
+
if($_shippingMethod[0] == "chronorelaiseurope") {
|
172 |
+
$weight <= 3 ? $SaturdayShipping = '337' : $SaturdayShipping = '338';
|
173 |
+
}
|
174 |
+
|
175 |
+
|
176 |
+
$weight = 0; /* On met le poids à 0 car les colis sont pesé sur place */
|
177 |
+
|
178 |
+
$skybill = array(
|
179 |
+
'codCurrency' => 'EUR',
|
180 |
+
'codValue' => '',
|
181 |
+
'content1' => '',
|
182 |
+
'content2' => '',
|
183 |
+
'content3' => '',
|
184 |
+
'content4' => '',
|
185 |
+
'content5' => '',
|
186 |
+
'customsCurrency' => 'EUR',
|
187 |
+
'customsValue' => '',
|
188 |
+
'evtCode' => 'DC',
|
189 |
+
'insuredCurrency' => 'EUR',
|
190 |
+
'insuredValue' => '',
|
191 |
+
'objectType' => 'MAR',
|
192 |
+
'productCode' => $_helper->getChronoProductCodeToShipment($_shippingMethod[0]),
|
193 |
+
'service' => $SaturdayShipping,
|
194 |
+
'shipDate' => date('c'),
|
195 |
+
'shipHour' => date('H'),
|
196 |
+
'weight' => $weight,
|
197 |
+
'weightUnit' => 'KGM'
|
198 |
+
);
|
199 |
+
|
200 |
+
$skybillParams = array(
|
201 |
+
'mode' => $_helper->getConfigurationSkybillParam()
|
202 |
+
);
|
203 |
+
|
204 |
+
$expeditionArray = array(
|
205 |
+
'headerValue' => $header,
|
206 |
+
'shipperValue' => $shipper,
|
207 |
+
'customerValue' => $customer,
|
208 |
+
'recipientValue' => $recipient,
|
209 |
+
'refValue' => $ref,
|
210 |
+
'skybillValue' => $skybill,
|
211 |
+
'skybillParamsValue' => $skybillParams,
|
212 |
+
'password' => $_helper->getConfigurationAccountPass()
|
213 |
+
);
|
214 |
+
|
215 |
+
/* si chronopostsrdv : ajout parametres supplementaires */
|
216 |
+
if($_shippingMethod[0] == "chronopostsrdv") {
|
217 |
+
|
218 |
+
$chronopostsrdv_creneaux_info = $_shippingAddress->getData('chronopostsrdv_creneaux_info');
|
219 |
+
$chronopostsrdv_creneaux_info = json_decode($chronopostsrdv_creneaux_info,true);
|
220 |
+
|
221 |
+
$_dateRdvStart = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
222 |
+
$_dateRdvStart->setTime($chronopostsrdv_creneaux_info['startHour'],$chronopostsrdv_creneaux_info['startMinutes']);
|
223 |
+
|
224 |
+
$_dateRdvEnd = new DateTime($chronopostsrdv_creneaux_info['deliveryDate']);
|
225 |
+
$_dateRdvEnd->setTime($chronopostsrdv_creneaux_info['endHour'],$chronopostsrdv_creneaux_info['endMinutes']);
|
226 |
+
|
227 |
+
|
228 |
+
$scheduledValue = array(
|
229 |
+
'appointmentValue' => array(
|
230 |
+
'timeSlotStartDate' => $_dateRdvStart->format("Y-m-d")."T".$_dateRdvStart->format("H:i:s"),
|
231 |
+
'timeSlotEndDate' => $_dateRdvEnd->format("Y-m-d")."T".$_dateRdvEnd->format("H:i:s"),
|
232 |
+
'timeSlotTariffLevel' => $chronopostsrdv_creneaux_info['tariffLevel']
|
233 |
+
)
|
234 |
+
);
|
235 |
+
$expeditionArray['scheduledValue'] = $scheduledValue;
|
236 |
+
|
237 |
+
/* modification productCode et service car dynamique pour ce mode de livraison */
|
238 |
+
|
239 |
+
$expeditionArray['skybillValue']['productCode'] = $chronopostsrdv_creneaux_info['productCode'];
|
240 |
+
$expeditionArray['skybillValue']['service'] = $chronopostsrdv_creneaux_info['serviceCode'];
|
241 |
+
|
242 |
+
}
|
243 |
+
|
244 |
+
$tracking_order = '';
|
245 |
+
|
246 |
+
$client = new SoapClient("https://www.chronopost.fr/shipping-cxf/ShippingServiceWS?wsdl", array('trace' => true));
|
247 |
+
try {
|
248 |
+
$expedition = $client->shippingV3($expeditionArray);
|
249 |
+
|
250 |
+
if (!$expedition->return->errorCode && $expedition->return->skybillNumber) {
|
251 |
+
$track = Mage::getModel('sales/order_shipment_track')
|
252 |
+
->setNumber($expedition->return->skybillNumber)
|
253 |
+
->setChronoReservationNumber(base64_encode($expedition->return->skybill))
|
254 |
+
->setCarrier(ucwords($_shippingMethod[0]))
|
255 |
+
->setCarrierCode($_shippingMethod[0])
|
256 |
+
->setTitle(ucwords($_shippingMethod[0]))
|
257 |
+
->setPopup(1);
|
258 |
+
$shipment->addTrack($track);
|
259 |
+
|
260 |
+
$tracking_number = $expedition->return->skybillNumber;
|
261 |
+
|
262 |
+
$tracking_url = str_replace('{tracking_number}', $tracking_number, Mage::helper('chronorelais')->getConfigurationTrackingViewUrl());
|
263 |
+
$tracking_title = $this->__('Track Your Order');
|
264 |
+
$tracking_order = '<p><a title="' . $tracking_title . '" href="' . $tracking_url . '"><b>' . $tracking_title . '</b></a></p>';
|
265 |
+
|
266 |
+
} else {
|
267 |
+
$this->_getSession()->addError($_helper->__($expedition->return->errorMessage));
|
268 |
+
$this->_redirect('*/*/new', array('order_id' => $this->getRequest()->getParam('order_id')));
|
269 |
+
return;
|
270 |
+
}
|
271 |
+
} catch (SoapFault $fault) {
|
272 |
+
$this->_getSession()->addError($_helper->__($fault->faultstring));
|
273 |
+
$this->_redirect('*/*/new', array('order_id' => $this->getRequest()->getParam('order_id')));
|
274 |
+
return;
|
275 |
+
}
|
276 |
+
}
|
277 |
+
|
278 |
+
$comment = '';
|
279 |
+
if (!empty($data['comment_text'])) {
|
280 |
+
$shipment->addComment($data['comment_text'], isset($data['comment_customer_notify']));
|
281 |
+
$comment = $data['comment_text'];
|
282 |
+
}
|
283 |
+
|
284 |
+
if (!empty($data['send_email'])) {
|
285 |
+
$shipment->setEmailSent(true);
|
286 |
+
}
|
287 |
+
|
288 |
+
$this->_saveShipment($shipment);
|
289 |
+
$shipment->sendEmail(!empty($data['send_email']), $tracking_order . $comment);
|
290 |
+
$this->_getSession()->addSuccess($this->__('Shipment was successfully created.'));
|
291 |
+
$this->_redirect('adminhtml/sales_order/view', array('order_id' => $shipment->getOrderId()));
|
292 |
+
return;
|
293 |
+
}
|
294 |
+
|
295 |
+
/**
|
296 |
+
* Initialize shipment model instance
|
297 |
+
*
|
298 |
+
* @return Mage_Sales_Model_Order_Shipment|bool
|
299 |
+
*/
|
300 |
+
protected function _initShipment()
|
301 |
+
{
|
302 |
+
$this->_title($this->__('Sales'))->_title($this->__('Shipments'));
|
303 |
+
$helper = Mage::helper('chronorelais');
|
304 |
+
$shipment = false;
|
305 |
+
$shipmentId = $this->getRequest()->getParam('shipment_id');
|
306 |
+
$orderId = $this->getRequest()->getParam('order_id');
|
307 |
+
if ($shipmentId) {
|
308 |
+
$shipment = Mage::getModel('sales/order_shipment')->load($shipmentId);
|
309 |
+
} elseif ($orderId) {
|
310 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
311 |
+
|
312 |
+
/**
|
313 |
+
* Check order existing
|
314 |
+
*/
|
315 |
+
if (!$order->getId()) {
|
316 |
+
$this->_getSession()->addError($this->__('The order no longer exists.'));
|
317 |
+
return false;
|
318 |
+
}
|
319 |
+
/**
|
320 |
+
* Check shipment is available to create separate from invoice
|
321 |
+
*/
|
322 |
+
if ($order->getForcedDoShipmentWithInvoice()) {
|
323 |
+
$this->_getSession()->addError($this->__('Cannot do shipment for the order separately from invoice.'));
|
324 |
+
return false;
|
325 |
+
}
|
326 |
+
/**
|
327 |
+
* Check shipment create availability
|
328 |
+
*/
|
329 |
+
if (!$order->canShip()) {
|
330 |
+
$this->_getSession()->addError($this->__('Cannot do shipment for the order.'));
|
331 |
+
return false;
|
332 |
+
}
|
333 |
+
$savedQtys = $this->_getItemQtys();
|
334 |
+
|
335 |
+
/* If shipping method is Chronopost => check if shipping weight isn't over limit */
|
336 |
+
$chronopostMethods = array('chronopost_chronopost','chronoexpress_chronoexpress','chronorelais_chronorelais','chronopostc10_chronopostC10','chronopostc18_chronopostC18','chronopostcclassic_chronopostCClassic','chronopostsrdv_chronopostsrdv','chronopostsameday_chronopostsameday');
|
337 |
+
$shippingMethod = $order->getShippingMethod();
|
338 |
+
if(in_array($shippingMethod, $chronopostMethods)) {
|
339 |
+
$weightShipping = 0;
|
340 |
+
$shippingMethod = explode("_", $shippingMethod);
|
341 |
+
$shippingMethod = $shippingMethod[0];
|
342 |
+
$weight_limit = Mage::getStoreConfig('carriers/'.$shippingMethod.'/weight_limit');
|
343 |
+
foreach($savedQtys as $iditem => $qty) {
|
344 |
+
$item = $order->getItemById($iditem);
|
345 |
+
$weightShipping += $item->getWeight()*$qty;
|
346 |
+
}
|
347 |
+
if($helper->getConfigWeightUnit() == 'g')
|
348 |
+
{
|
349 |
+
$weightShipping = $weightShipping / 1000; // conversion g => kg
|
350 |
+
}
|
351 |
+
if($weightShipping > $weight_limit) {
|
352 |
+
|
353 |
+
/* Create one shipment by product ordered */
|
354 |
+
foreach($savedQtys as $iditem => $qty) {
|
355 |
+
$item = $order->getItemById($iditem);
|
356 |
+
$weightShipping += $item->getWeight()*$qty;
|
357 |
+
for($i = 1; $i <= $qty; $i++) {
|
358 |
+
$shipment[] = Mage::getModel('sales/service_order', $order)->prepareShipment(array($item->getId() => '1'));
|
359 |
+
|
360 |
+
}
|
361 |
+
}
|
362 |
+
}
|
363 |
+
}
|
364 |
+
|
365 |
+
|
366 |
+
if(!$shipment)
|
367 |
+
{
|
368 |
+
$shipment = Mage::getModel('sales/service_order', $order)->prepareShipment($savedQtys);
|
369 |
+
|
370 |
+
$tracks = $this->getRequest()->getPost('tracking');
|
371 |
+
if ($tracks) {
|
372 |
+
foreach ($tracks as $data) {
|
373 |
+
if (empty($data['number'])) {
|
374 |
+
Mage::throwException($this->__('Tracking number cannot be empty.'));
|
375 |
+
}
|
376 |
+
$track = Mage::getModel('sales/order_shipment_track')
|
377 |
+
->addData($data);
|
378 |
+
$shipment->addTrack($track);
|
379 |
+
}
|
380 |
+
}
|
381 |
+
}
|
382 |
+
}
|
383 |
+
|
384 |
+
Mage::register('current_shipment', $shipment);
|
385 |
+
return $shipment;
|
386 |
+
}
|
387 |
+
|
388 |
+
public function saveAction() {
|
389 |
+
$data = $this->getRequest()->getPost('shipment');
|
390 |
+
$orderId = $this->getRequest()->getParam('order_id');
|
391 |
+
|
392 |
+
try {
|
393 |
+
|
394 |
+
if ($shipment = $this->_initShipment()) {
|
395 |
+
if(is_array($shipment))
|
396 |
+
{
|
397 |
+
foreach($shipment as $ship) {
|
398 |
+
$this->saveAndCreateEtiquette($ship,$data);
|
399 |
+
}
|
400 |
+
}
|
401 |
+
else
|
402 |
+
{
|
403 |
+
$this->saveAndCreateEtiquette($shipment,$data);
|
404 |
+
}
|
405 |
+
} else {
|
406 |
+
$this->_redirect('*/*/new', array('order_id' => $this->getRequest()->getParam('order_id')));
|
407 |
+
return;
|
408 |
+
}
|
409 |
+
|
410 |
+
} catch (Mage_Core_Exception $e) {
|
411 |
+
$this->_getSession()->addError($e->getMessage());
|
412 |
+
} catch (Exception $e) {
|
413 |
+
$this->_getSession()->addError($this->__('Can not save shipment: ' . $e->getMessage()));
|
414 |
+
}
|
415 |
+
$this->_redirect('adminhtml/sales_order/view', array('order_id' => $orderId));
|
416 |
+
}
|
417 |
+
|
418 |
+
public function removeaccents($string) {
|
419 |
+
$stringToReturn = str_replace(
|
420 |
+
array('�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '�', '/', '\xa8'), array('a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'A', 'A', 'A', 'A', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'N', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', ' ', 'e'), $string);
|
421 |
+
// Remove all remaining other unknown characters
|
422 |
+
$stringToReturn = preg_replace('/[^a-zA-Z0-9\-]/', ' ', $stringToReturn);
|
423 |
+
$stringToReturn = preg_replace('/^[\-]+/', '', $stringToReturn);
|
424 |
+
$stringToReturn = preg_replace('/[\-]+$/', '', $stringToReturn);
|
425 |
+
$stringToReturn = preg_replace('/[\-]{2,}/', ' ', $stringToReturn);
|
426 |
+
return $stringToReturn;
|
427 |
+
}
|
428 |
+
|
429 |
+
}
|
app/code/community/Chronopost/Chronorelais/controllers/Checkout/MultishippingController.php
CHANGED
@@ -1,104 +1,104 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once 'Mage/Checkout/controllers/MultishippingController.php';
|
4 |
-
|
5 |
-
class Chronopost_Chronorelais_Checkout_MultishippingController extends Mage_Checkout_MultishippingController {
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Get payment method step html
|
9 |
-
*
|
10 |
-
* @return string
|
11 |
-
*/
|
12 |
-
protected function _getChronoRelaisHtml() {
|
13 |
-
return $this->getLayout()->getBlock('root')->toHtml();
|
14 |
-
}
|
15 |
-
|
16 |
-
public function shippingPostAction() {
|
17 |
-
$shippingMethods = $this->getRequest()->getPost('shipping_method');
|
18 |
-
try {
|
19 |
-
Mage::dispatchEvent(
|
20 |
-
'checkout_controller_multishipping_shipping_post', array('request' => $this->getRequest(), 'quote' => $this->_getCheckout()->getQuote())
|
21 |
-
);
|
22 |
-
$this->_getCheckout()->setShippingMethods($shippingMethods);
|
23 |
-
|
24 |
-
//WEC chronorelais
|
25 |
-
$addresses = $this->_getCheckout()->getQuote()->getAllShippingAddresses();
|
26 |
-
$relays = $this->getRequest()->getParam('shipping_method_chronorelais');
|
27 |
-
foreach ($addresses as $address) {
|
28 |
-
if (isset($shippingMethods[$address->getId()]) && substr($shippingMethods[$address->getId()], 0, 12) == "chronorelais" ) {
|
29 |
-
$relaisId = $relays[$address->getId()];
|
30 |
-
if ($relaisId != "") {
|
31 |
-
|
32 |
-
$helper = Mage::helper('chronorelais/webservice');
|
33 |
-
$relais = $helper->getDetailRelaisPoint($relaisId);
|
34 |
-
|
35 |
-
if ($relais) {
|
36 |
-
$address->setCity($relais->localite)
|
37 |
-
->setPostcode($relais->codePostal)
|
38 |
-
->setStreet(trim($relais->adresse1 . "\n" . $relais->adresse2 . " " . $relais->adresse3))
|
39 |
-
->setCompany($relais->nomEnseigne)
|
40 |
-
->setWRelayPointCode($relais->identifiantChronopostPointA2PAS)
|
41 |
-
->save()
|
42 |
-
->setCollectShippingRates(true);
|
43 |
-
}
|
44 |
-
}
|
45 |
-
}
|
46 |
-
}
|
47 |
-
//ENDWEC chronorelais
|
48 |
-
|
49 |
-
$this->_getState()->setActiveStep(
|
50 |
-
Mage_Checkout_Model_Type_Multishipping_State::STEP_BILLING
|
51 |
-
);
|
52 |
-
$this->_getState()->setCompleteStep(
|
53 |
-
Mage_Checkout_Model_Type_Multishipping_State::STEP_SHIPPING
|
54 |
-
);
|
55 |
-
$this->_redirect('*/*/billing');
|
56 |
-
} catch (Exception $e) {
|
57 |
-
$this->_getCheckoutSession()->addError($e->getMessage());
|
58 |
-
$this->_redirect('*/*/shipping');
|
59 |
-
}
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* Get relais
|
64 |
-
*/
|
65 |
-
public function getMultiRelaisAction() {
|
66 |
-
$result = array();
|
67 |
-
$postcode = $this->getRequest()->get('zip', '');
|
68 |
-
|
69 |
-
if (extension_loaded('soap')) {
|
70 |
-
$addresses = $this->_getCheckout()->getQuote()->getAllShippingAddresses();
|
71 |
-
foreach ($addresses as $address) {
|
72 |
-
if ($address->getId() == $this->getRequest()->get('index')) {
|
73 |
-
|
74 |
-
$helper = Mage::helper('chronorelais/webservice');
|
75 |
-
$webservbt = $helper->getPointsRelaisByCp($postcode);
|
76 |
-
|
77 |
-
if ($webservbt) {
|
78 |
-
Mage::getSingleton('core/session')->setMultiPostcode($postcode);
|
79 |
-
$this->loadLayout('checkout_multishipping_shippingchronorelais');
|
80 |
-
$result['update_section'] = array(
|
81 |
-
'name' => 'checkout-shipping-method-chronorelais-load_' . $this->getRequest()->get('index'),
|
82 |
-
'html' => str_replace("%%id%%", $this->getRequest()->get('index'), $this->_getChronoRelaisHtml())
|
83 |
-
);
|
84 |
-
$result['relaypoints'] = $webservbt;
|
85 |
-
} else {
|
86 |
-
$result['error'] = true;
|
87 |
-
$result['message'] = $this->__('No point relay is associated with this postcode');
|
88 |
-
}
|
89 |
-
|
90 |
-
break;
|
91 |
-
}
|
92 |
-
}
|
93 |
-
if (count($result) == 0) {
|
94 |
-
$result['error'] = true;
|
95 |
-
$result['message'] = $this->__('Issue with addresses');
|
96 |
-
}
|
97 |
-
} else {
|
98 |
-
$result['error'] = true;
|
99 |
-
$result['message'] = $this->__('Sorry for inconvenience, The SOAP extension is not installed in the server. Please contact the site administrator.');
|
100 |
-
}
|
101 |
-
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
|
102 |
-
}
|
103 |
-
|
104 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once 'Mage/Checkout/controllers/MultishippingController.php';
|
4 |
+
|
5 |
+
class Chronopost_Chronorelais_Checkout_MultishippingController extends Mage_Checkout_MultishippingController {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Get payment method step html
|
9 |
+
*
|
10 |
+
* @return string
|
11 |
+
*/
|
12 |
+
protected function _getChronoRelaisHtml() {
|
13 |
+
return $this->getLayout()->getBlock('root')->toHtml();
|
14 |
+
}
|
15 |
+
|
16 |
+
public function shippingPostAction() {
|
17 |
+
$shippingMethods = $this->getRequest()->getPost('shipping_method');
|
18 |
+
try {
|
19 |
+
Mage::dispatchEvent(
|
20 |
+
'checkout_controller_multishipping_shipping_post', array('request' => $this->getRequest(), 'quote' => $this->_getCheckout()->getQuote())
|
21 |
+
);
|
22 |
+
$this->_getCheckout()->setShippingMethods($shippingMethods);
|
23 |
+
|
24 |
+
//WEC chronorelais
|
25 |
+
$addresses = $this->_getCheckout()->getQuote()->getAllShippingAddresses();
|
26 |
+
$relays = $this->getRequest()->getParam('shipping_method_chronorelais');
|
27 |
+
foreach ($addresses as $address) {
|
28 |
+
if (isset($shippingMethods[$address->getId()]) && substr($shippingMethods[$address->getId()], 0, 12) == "chronorelais" ) {
|
29 |
+
$relaisId = $relays[$address->getId()];
|
30 |
+
if ($relaisId != "") {
|
31 |
+
|
32 |
+
$helper = Mage::helper('chronorelais/webservice');
|
33 |
+
$relais = $helper->getDetailRelaisPoint($relaisId);
|
34 |
+
|
35 |
+
if ($relais) {
|
36 |
+
$address->setCity($relais->localite)
|
37 |
+
->setPostcode($relais->codePostal)
|
38 |
+
->setStreet(trim($relais->adresse1 . "\n" . $relais->adresse2 . " " . $relais->adresse3))
|
39 |
+
->setCompany($relais->nomEnseigne)
|
40 |
+
->setWRelayPointCode($relais->identifiantChronopostPointA2PAS)
|
41 |
+
->save()
|
42 |
+
->setCollectShippingRates(true);
|
43 |
+
}
|
44 |
+
}
|
45 |
+
}
|
46 |
+
}
|
47 |
+
//ENDWEC chronorelais
|
48 |
+
|
49 |
+
$this->_getState()->setActiveStep(
|
50 |
+
Mage_Checkout_Model_Type_Multishipping_State::STEP_BILLING
|
51 |
+
);
|
52 |
+
$this->_getState()->setCompleteStep(
|
53 |
+
Mage_Checkout_Model_Type_Multishipping_State::STEP_SHIPPING
|
54 |
+
);
|
55 |
+
$this->_redirect('*/*/billing');
|
56 |
+
} catch (Exception $e) {
|
57 |
+
$this->_getCheckoutSession()->addError($e->getMessage());
|
58 |
+
$this->_redirect('*/*/shipping');
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Get relais
|
64 |
+
*/
|
65 |
+
public function getMultiRelaisAction() {
|
66 |
+
$result = array();
|
67 |
+
$postcode = $this->getRequest()->get('zip', '');
|
68 |
+
|
69 |
+
if (extension_loaded('soap')) {
|
70 |
+
$addresses = $this->_getCheckout()->getQuote()->getAllShippingAddresses();
|
71 |
+
foreach ($addresses as $address) {
|
72 |
+
if ($address->getId() == $this->getRequest()->get('index')) {
|
73 |
+
|
74 |
+
$helper = Mage::helper('chronorelais/webservice');
|
75 |
+
$webservbt = $helper->getPointsRelaisByCp($postcode);
|
76 |
+
|
77 |
+
if ($webservbt) {
|
78 |
+
Mage::getSingleton('core/session')->setMultiPostcode($postcode);
|
79 |
+
$this->loadLayout('checkout_multishipping_shippingchronorelais');
|
80 |
+
$result['update_section'] = array(
|
81 |
+
'name' => 'checkout-shipping-method-chronorelais-load_' . $this->getRequest()->get('index'),
|
82 |
+
'html' => str_replace("%%id%%", $this->getRequest()->get('index'), $this->_getChronoRelaisHtml())
|
83 |
+
);
|
84 |
+
$result['relaypoints'] = $webservbt;
|
85 |
+
} else {
|
86 |
+
$result['error'] = true;
|
87 |
+
$result['message'] = $this->__('No point relay is associated with this postcode');
|
88 |
+
}
|
89 |
+
|
90 |
+
break;
|
91 |
+
}
|
92 |
+
}
|
93 |
+
if (count($result) == 0) {
|
94 |
+
$result['error'] = true;
|
95 |
+
$result['message'] = $this->__('Issue with addresses');
|
96 |
+
}
|
97 |
+
} else {
|
98 |
+
$result['error'] = true;
|
99 |
+
$result['message'] = $this->__('Sorry for inconvenience, The SOAP extension is not installed in the server. Please contact the site administrator.');
|
100 |
+
}
|
101 |
+
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
|
102 |
+
}
|
103 |
+
|
104 |
+
}
|
app/code/community/Chronopost/Chronorelais/controllers/IndexController.php
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_IndexController extends Mage_Core_Controller_Front_Action {
|
3 |
-
|
4 |
-
public function shippingmethodimageAction() {
|
5 |
-
$this->loadLayout();
|
6 |
-
echo $this->getLayout()
|
7 |
-
->createBlock("checkout/onepage_shipping_method_available")
|
8 |
-
->setTemplate("chronorelais/checkout/onepage/shipping_method_images.phtml")
|
9 |
-
->toHtml();
|
10 |
-
}
|
11 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_IndexController extends Mage_Core_Controller_Front_Action {
|
3 |
+
|
4 |
+
public function shippingmethodimageAction() {
|
5 |
+
$this->loadLayout();
|
6 |
+
echo $this->getLayout()
|
7 |
+
->createBlock("checkout/onepage_shipping_method_available")
|
8 |
+
->setTemplate("chronorelais/checkout/onepage/shipping_method_images.phtml")
|
9 |
+
->toHtml();
|
10 |
+
}
|
11 |
}
|
app/code/community/Chronopost/Chronorelais/controllers/RelaisController.php
CHANGED
@@ -1,121 +1,121 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_RelaisController extends Mage_Core_Controller_Front_Action {
|
3 |
-
|
4 |
-
public function filterAction() {
|
5 |
-
$this->loadLayout();
|
6 |
-
$this->renderLayout();
|
7 |
-
}
|
8 |
-
|
9 |
-
public function detailAction() {
|
10 |
-
$this->loadLayout();
|
11 |
-
$this->renderLayout();
|
12 |
-
}
|
13 |
-
|
14 |
-
/**
|
15 |
-
* Go to the tacking page
|
16 |
-
* external function for mail link "Track Your Order" in shipment mail
|
17 |
-
*/
|
18 |
-
public function trackingAction()
|
19 |
-
{
|
20 |
-
if($this->getRequest()->isGet()) {
|
21 |
-
if($hash = $this->getRequest()->getParam('hash')) {
|
22 |
-
$req_values = Mage::helper('shipping')->decodeTrackingHash($hash);
|
23 |
-
if($req_values) {
|
24 |
-
$order = Mage::getModel('sales/order')->load($req_values['id']);
|
25 |
-
$popup_url = Mage::helper('shipping')->getTrackingPopupUrlBySalesModel($order);
|
26 |
-
header('location: '.$popup_url);
|
27 |
-
exit();
|
28 |
-
}
|
29 |
-
}
|
30 |
-
}
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Get payment method step html
|
35 |
-
*
|
36 |
-
* @return string
|
37 |
-
*/
|
38 |
-
protected function _getChronoRelaisHtml($shippingMethodCode = 'chronorelais') {
|
39 |
-
return $this->getLayout()->getBlock('root')->setMethodCode($shippingMethodCode)->toHtml();
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* Get relais
|
44 |
-
*/
|
45 |
-
public function getRelaisAction() {
|
46 |
-
$result = array();
|
47 |
-
$quote = Mage::getSingleton('checkout/session')->getQuote();
|
48 |
-
$address = $quote->getShippingAddress();
|
49 |
-
$shippingMethod = $this->getRequest()->getPost('shipping_method');
|
50 |
-
|
51 |
-
if (extension_loaded('soap')) {
|
52 |
-
|
53 |
-
$shippingMethodCode = explode("_", $shippingMethod);
|
54 |
-
$shippingMethodCode = $shippingMethodCode[0];
|
55 |
-
|
56 |
-
$helper = Mage::helper('chronorelais/webservice');
|
57 |
-
$webservbt = $helper->getPointRelaisByAddress($shippingMethodCode);
|
58 |
-
|
59 |
-
if ($webservbt) {
|
60 |
-
$this->loadLayout('checkout_onepage_shippingchronorelais');
|
61 |
-
$result['goto_section'] = 'shipping-method';
|
62 |
-
$result['update_section'] = array(
|
63 |
-
'name' => 'shipping-method-'.$shippingMethod,
|
64 |
-
'html' => $this->_getChronoRelaisHtml($shippingMethodCode)
|
65 |
-
);
|
66 |
-
$result['relaypoints'] = $webservbt;
|
67 |
-
} else {
|
68 |
-
$result['error'] = true;
|
69 |
-
$result['message'] = $this->__('No point relay is associated with this postcode');
|
70 |
-
}
|
71 |
-
} else {
|
72 |
-
$result['error'] = true;
|
73 |
-
$result['message'] = $this->__('Sorry for inconvenience, The SOAP extension is not installed in the server. Please contact the site administrator.');
|
74 |
-
}
|
75 |
-
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
|
76 |
-
}
|
77 |
-
|
78 |
-
/**
|
79 |
-
* Change shipping postal code
|
80 |
-
*/
|
81 |
-
public function changePostalCodeAction() {
|
82 |
-
|
83 |
-
$result = array();
|
84 |
-
$webservbt = array();
|
85 |
-
$postcode = $this->getRequest()->getPost('mappostalcode');
|
86 |
-
$shippingMethod = $this->getRequest()->getPost('shipping_method');
|
87 |
-
|
88 |
-
$shippingMethodCode = explode("_", $shippingMethod);
|
89 |
-
$shippingMethodCode = $shippingMethodCode[0];
|
90 |
-
|
91 |
-
if ($postcode) {
|
92 |
-
$quote = Mage::getSingleton('checkout/session')->getQuote();
|
93 |
-
$address = $quote->getShippingAddress();
|
94 |
-
$address->setPostcode($postcode)
|
95 |
-
->save()
|
96 |
-
->setCollectShippingRates(true);
|
97 |
-
|
98 |
-
$helper = Mage::helper('chronorelais/webservice');
|
99 |
-
$webservbt = $helper->getPointsRelaisByCp($postcode);
|
100 |
-
|
101 |
-
}
|
102 |
-
if ($webservbt) {
|
103 |
-
$this->loadLayout('checkout_onepage_shippingchronorelais');
|
104 |
-
$result['goto_section'] = 'shipping-method';
|
105 |
-
$result['update_section'] = array(
|
106 |
-
'name' => 'shipping-method-'.$shippingMethod,
|
107 |
-
'html' => $this->_getChronoRelaisHtml($shippingMethodCode)
|
108 |
-
);
|
109 |
-
$result['relaypoints'] = $webservbt;
|
110 |
-
} else {
|
111 |
-
$result['error'] = true;
|
112 |
-
$result['message'] = $this->__('No point relay is associated with this postcode');
|
113 |
-
}
|
114 |
-
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
|
115 |
-
}
|
116 |
-
|
117 |
-
public function resetSessionRelaiAction() {
|
118 |
-
unset($_SESSION['chronopost_relais_id']);
|
119 |
-
}
|
120 |
-
|
121 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_RelaisController extends Mage_Core_Controller_Front_Action {
|
3 |
+
|
4 |
+
public function filterAction() {
|
5 |
+
$this->loadLayout();
|
6 |
+
$this->renderLayout();
|
7 |
+
}
|
8 |
+
|
9 |
+
public function detailAction() {
|
10 |
+
$this->loadLayout();
|
11 |
+
$this->renderLayout();
|
12 |
+
}
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Go to the tacking page
|
16 |
+
* external function for mail link "Track Your Order" in shipment mail
|
17 |
+
*/
|
18 |
+
public function trackingAction()
|
19 |
+
{
|
20 |
+
if($this->getRequest()->isGet()) {
|
21 |
+
if($hash = $this->getRequest()->getParam('hash')) {
|
22 |
+
$req_values = Mage::helper('shipping')->decodeTrackingHash($hash);
|
23 |
+
if($req_values) {
|
24 |
+
$order = Mage::getModel('sales/order')->load($req_values['id']);
|
25 |
+
$popup_url = Mage::helper('shipping')->getTrackingPopupUrlBySalesModel($order);
|
26 |
+
header('location: '.$popup_url);
|
27 |
+
exit();
|
28 |
+
}
|
29 |
+
}
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Get payment method step html
|
35 |
+
*
|
36 |
+
* @return string
|
37 |
+
*/
|
38 |
+
protected function _getChronoRelaisHtml($shippingMethodCode = 'chronorelais') {
|
39 |
+
return $this->getLayout()->getBlock('root')->setMethodCode($shippingMethodCode)->toHtml();
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Get relais
|
44 |
+
*/
|
45 |
+
public function getRelaisAction() {
|
46 |
+
$result = array();
|
47 |
+
$quote = Mage::getSingleton('checkout/session')->getQuote();
|
48 |
+
$address = $quote->getShippingAddress();
|
49 |
+
$shippingMethod = $this->getRequest()->getPost('shipping_method');
|
50 |
+
|
51 |
+
if (extension_loaded('soap')) {
|
52 |
+
|
53 |
+
$shippingMethodCode = explode("_", $shippingMethod);
|
54 |
+
$shippingMethodCode = $shippingMethodCode[0];
|
55 |
+
|
56 |
+
$helper = Mage::helper('chronorelais/webservice');
|
57 |
+
$webservbt = $helper->getPointRelaisByAddress($shippingMethodCode);
|
58 |
+
|
59 |
+
if ($webservbt) {
|
60 |
+
$this->loadLayout('checkout_onepage_shippingchronorelais');
|
61 |
+
$result['goto_section'] = 'shipping-method';
|
62 |
+
$result['update_section'] = array(
|
63 |
+
'name' => 'shipping-method-'.$shippingMethod,
|
64 |
+
'html' => $this->_getChronoRelaisHtml($shippingMethodCode)
|
65 |
+
);
|
66 |
+
$result['relaypoints'] = $webservbt;
|
67 |
+
} else {
|
68 |
+
$result['error'] = true;
|
69 |
+
$result['message'] = $this->__('No point relay is associated with this postcode');
|
70 |
+
}
|
71 |
+
} else {
|
72 |
+
$result['error'] = true;
|
73 |
+
$result['message'] = $this->__('Sorry for inconvenience, The SOAP extension is not installed in the server. Please contact the site administrator.');
|
74 |
+
}
|
75 |
+
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Change shipping postal code
|
80 |
+
*/
|
81 |
+
public function changePostalCodeAction() {
|
82 |
+
|
83 |
+
$result = array();
|
84 |
+
$webservbt = array();
|
85 |
+
$postcode = $this->getRequest()->getPost('mappostalcode');
|
86 |
+
$shippingMethod = $this->getRequest()->getPost('shipping_method');
|
87 |
+
|
88 |
+
$shippingMethodCode = explode("_", $shippingMethod);
|
89 |
+
$shippingMethodCode = $shippingMethodCode[0];
|
90 |
+
|
91 |
+
if ($postcode) {
|
92 |
+
$quote = Mage::getSingleton('checkout/session')->getQuote();
|
93 |
+
$address = $quote->getShippingAddress();
|
94 |
+
$address->setPostcode($postcode)
|
95 |
+
->save()
|
96 |
+
->setCollectShippingRates(true);
|
97 |
+
|
98 |
+
$helper = Mage::helper('chronorelais/webservice');
|
99 |
+
$webservbt = $helper->getPointsRelaisByCp($postcode);
|
100 |
+
|
101 |
+
}
|
102 |
+
if ($webservbt) {
|
103 |
+
$this->loadLayout('checkout_onepage_shippingchronorelais');
|
104 |
+
$result['goto_section'] = 'shipping-method';
|
105 |
+
$result['update_section'] = array(
|
106 |
+
'name' => 'shipping-method-'.$shippingMethod,
|
107 |
+
'html' => $this->_getChronoRelaisHtml($shippingMethodCode)
|
108 |
+
);
|
109 |
+
$result['relaypoints'] = $webservbt;
|
110 |
+
} else {
|
111 |
+
$result['error'] = true;
|
112 |
+
$result['message'] = $this->__('No point relay is associated with this postcode');
|
113 |
+
}
|
114 |
+
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
|
115 |
+
}
|
116 |
+
|
117 |
+
public function resetSessionRelaiAction() {
|
118 |
+
unset($_SESSION['chronopost_relais_id']);
|
119 |
+
}
|
120 |
+
|
121 |
}
|
app/code/community/Chronopost/Chronorelais/controllers/SrdvController.php
CHANGED
@@ -1,38 +1,38 @@
|
|
1 |
-
<?php
|
2 |
-
class Chronopost_Chronorelais_SrdvController extends Mage_Core_Controller_Front_Action {
|
3 |
-
|
4 |
-
/**
|
5 |
-
* Get payment method step html
|
6 |
-
*
|
7 |
-
* @return string
|
8 |
-
*/
|
9 |
-
protected function _getChronopostSrdvHtml() {
|
10 |
-
return $this->getLayout()->getBlock('root')->toHtml();
|
11 |
-
}
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Get planning
|
15 |
-
*/
|
16 |
-
public function getPlanningAction() {
|
17 |
-
$result = array();
|
18 |
-
$shippingMethod = $this->getRequest()->getPost('shipping_method');
|
19 |
-
|
20 |
-
if (extension_loaded('soap')) {
|
21 |
-
|
22 |
-
$shippingMethodCode = explode("_", $shippingMethod);
|
23 |
-
$shippingMethodCode = $shippingMethodCode[0];
|
24 |
-
|
25 |
-
$this->loadLayout('checkout_onepage_shippingchronopostsrdv');
|
26 |
-
$result['goto_section'] = 'shipping-method';
|
27 |
-
$result['update_section'] = array(
|
28 |
-
'name' => 'shipping-method-'.$shippingMethod,
|
29 |
-
'html' => $this->_getChronopostSrdvHtml()
|
30 |
-
);
|
31 |
-
$result['planning'] = true;
|
32 |
-
} else {
|
33 |
-
$result['error'] = true;
|
34 |
-
$result['message'] = $this->__('Sorry for inconvenience, The SOAP extension is not installed in the server. Please contact the site administrator.');
|
35 |
-
}
|
36 |
-
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
|
37 |
-
}
|
38 |
}
|
1 |
+
<?php
|
2 |
+
class Chronopost_Chronorelais_SrdvController extends Mage_Core_Controller_Front_Action {
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Get payment method step html
|
6 |
+
*
|
7 |
+
* @return string
|
8 |
+
*/
|
9 |
+
protected function _getChronopostSrdvHtml() {
|
10 |
+
return $this->getLayout()->getBlock('root')->toHtml();
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Get planning
|
15 |
+
*/
|
16 |
+
public function getPlanningAction() {
|
17 |
+
$result = array();
|
18 |
+
$shippingMethod = $this->getRequest()->getPost('shipping_method');
|
19 |
+
|
20 |
+
if (extension_loaded('soap')) {
|
21 |
+
|
22 |
+
$shippingMethodCode = explode("_", $shippingMethod);
|
23 |
+
$shippingMethodCode = $shippingMethodCode[0];
|
24 |
+
|
25 |
+
$this->loadLayout('checkout_onepage_shippingchronopostsrdv');
|
26 |
+
$result['goto_section'] = 'shipping-method';
|
27 |
+
$result['update_section'] = array(
|
28 |
+
'name' => 'shipping-method-'.$shippingMethod,
|
29 |
+
'html' => $this->_getChronopostSrdvHtml()
|
30 |
+
);
|
31 |
+
$result['planning'] = true;
|
32 |
+
} else {
|
33 |
+
$result['error'] = true;
|
34 |
+
$result['message'] = $this->__('Sorry for inconvenience, The SOAP extension is not installed in the server. Please contact the site administrator.');
|
35 |
+
}
|
36 |
+
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
|
37 |
+
}
|
38 |
}
|
app/code/community/Chronopost/Chronorelais/etc/config.xml
CHANGED
@@ -1,673 +1,673 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<config>
|
3 |
-
<modules>
|
4 |
-
<Chronopost_Chronorelais>
|
5 |
-
<version>1.3.0</version>
|
6 |
-
<depends>
|
7 |
-
<Mage_Shipping />
|
8 |
-
<Mage_Sales />
|
9 |
-
<Mage_Adminhtml />
|
10 |
-
</depends>
|
11 |
-
</Chronopost_Chronorelais>
|
12 |
-
</modules>
|
13 |
-
|
14 |
-
<global>
|
15 |
-
<models>
|
16 |
-
<chronorelais>
|
17 |
-
<class>Chronopost_Chronorelais_Model</class>
|
18 |
-
</chronorelais>
|
19 |
-
</models>
|
20 |
-
<blocks>
|
21 |
-
<chronorelais>
|
22 |
-
<class>Chronopost_Chronorelais_Block</class>
|
23 |
-
</chronorelais>
|
24 |
-
<adminhtml>
|
25 |
-
<rewrite>
|
26 |
-
<sales_order_shipment_view>Chronopost_Chronorelais_Block_Sales_Order_Shipment_View</sales_order_shipment_view>
|
27 |
-
</rewrite>
|
28 |
-
</adminhtml>
|
29 |
-
</blocks>
|
30 |
-
<helpers>
|
31 |
-
<chronorelais>
|
32 |
-
<class>Chronopost_Chronorelais_Helper</class>
|
33 |
-
</chronorelais>
|
34 |
-
</helpers>
|
35 |
-
|
36 |
-
<resources>
|
37 |
-
<sales>
|
38 |
-
<shipping>
|
39 |
-
<carriers>
|
40 |
-
<chronorelais>
|
41 |
-
<class>Chronopost_Chronorelais_Model_Carrier_Chronorelais</class>
|
42 |
-
</chronorelais>
|
43 |
-
<chronopost>
|
44 |
-
<class>Chronopost_Chronorelais_Model_Carrier_Chronopost</class>
|
45 |
-
</chronopost>
|
46 |
-
<chronoexpress>
|
47 |
-
<class>Chronopost_Chronorelais_Model_Carrier_Chronoexpress</class>
|
48 |
-
</chronoexpress>
|
49 |
-
</carriers>
|
50 |
-
</shipping>
|
51 |
-
</sales>
|
52 |
-
<chronorelais_setup>
|
53 |
-
<setup>
|
54 |
-
<module>Chronopost_Chronorelais</module>
|
55 |
-
<class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
|
56 |
-
</setup>
|
57 |
-
<connection>
|
58 |
-
<use>core_setup</use>
|
59 |
-
</connection>
|
60 |
-
</chronorelais_setup>
|
61 |
-
<chronorelais_write>
|
62 |
-
<connection>
|
63 |
-
<use>core_write</use>
|
64 |
-
</connection>
|
65 |
-
</chronorelais_write>
|
66 |
-
|
67 |
-
<chronorelais_read>
|
68 |
-
<connection>
|
69 |
-
<use>core_read</use>
|
70 |
-
</connection>
|
71 |
-
</chronorelais_read>
|
72 |
-
</resources>
|
73 |
-
|
74 |
-
<rewrite>
|
75 |
-
<chronopost_chronorelais_checkout_multishipping>
|
76 |
-
<from><![CDATA[#^/checkout/multishipping/#]]>
|
77 |
-
</from>
|
78 |
-
<to>/chronorelais/checkout_multishipping/</to>
|
79 |
-
</chronopost_chronorelais_checkout_multishipping>
|
80 |
-
<chronopost_chronorelais_sales_order_shipment>
|
81 |
-
<from><![CDATA[#^/(.*)sales_order_shipment/save/#]]>
|
82 |
-
</from>
|
83 |
-
<to><![CDATA[/$1chronorelais_sales_order_shipment/save/]]></to>
|
84 |
-
</chronopost_chronorelais_sales_order_shipment>
|
85 |
-
</rewrite>
|
86 |
-
|
87 |
-
<fieldsets>
|
88 |
-
<sales_copy_order_billing_address>
|
89 |
-
<w_relay_point_code>
|
90 |
-
<to_order>*</to_order>
|
91 |
-
</w_relay_point_code>
|
92 |
-
</sales_copy_order_billing_address>
|
93 |
-
<sales_copy_order_shipping_address>
|
94 |
-
<w_relay_point_code>
|
95 |
-
<to_order>*</to_order>
|
96 |
-
</w_relay_point_code>
|
97 |
-
</sales_copy_order_shipping_address>
|
98 |
-
<sales_convert_quote_address>
|
99 |
-
<w_relay_point_code>
|
100 |
-
<to_order_address>*</to_order_address>
|
101 |
-
<to_customer_address>*</to_customer_address>
|
102 |
-
</w_relay_point_code>
|
103 |
-
<chronopostsrdv_creneaux_info>
|
104 |
-
<to_order_address>*</to_order_address>
|
105 |
-
<to_customer_address>*</to_customer_address>
|
106 |
-
<to_order>*</to_order>
|
107 |
-
</chronopostsrdv_creneaux_info>
|
108 |
-
</sales_convert_quote_address>
|
109 |
-
<sales_convert_order_address>
|
110 |
-
<w_relay_point_code>
|
111 |
-
<to_quote_address>*</to_quote_address>
|
112 |
-
</w_relay_point_code>
|
113 |
-
</sales_convert_order_address>
|
114 |
-
<customer_address>
|
115 |
-
<w_relay_point_code>
|
116 |
-
<to_quote_address>*</to_quote_address>
|
117 |
-
</w_relay_point_code>
|
118 |
-
</customer_address>
|
119 |
-
</fieldsets>
|
120 |
-
|
121 |
-
</global>
|
122 |
-
|
123 |
-
<frontend>
|
124 |
-
<routers>
|
125 |
-
<chronorelais>
|
126 |
-
<use>standard</use>
|
127 |
-
<args>
|
128 |
-
<module>Chronopost_Chronorelais</module>
|
129 |
-
<frontName>chronorelais</frontName>
|
130 |
-
</args>
|
131 |
-
</chronorelais>
|
132 |
-
</routers>
|
133 |
-
|
134 |
-
<layout>
|
135 |
-
<updates>
|
136 |
-
<chronorelais>
|
137 |
-
<file>chronorelais.xml</file>
|
138 |
-
</chronorelais>
|
139 |
-
</updates>
|
140 |
-
</layout>
|
141 |
-
<translate>
|
142 |
-
<modules>
|
143 |
-
<Chronopost_Chronorelais>
|
144 |
-
<files>
|
145 |
-
<default>Chronopost_Chronorelais.csv</default>
|
146 |
-
</files>
|
147 |
-
</Chronopost_Chronorelais>
|
148 |
-
</modules>
|
149 |
-
</translate>
|
150 |
-
|
151 |
-
<events>
|
152 |
-
<controller_action_predispatch_checkout_onepage_index>
|
153 |
-
<observers>
|
154 |
-
<check_soap_exists>
|
155 |
-
<class>chronorelais/observer</class>
|
156 |
-
<method>checkSoapExists</method>
|
157 |
-
</check_soap_exists>
|
158 |
-
</observers>
|
159 |
-
</controller_action_predispatch_checkout_onepage_index>
|
160 |
-
|
161 |
-
<controller_action_predispatch_checkout_onepage_saveBilling>
|
162 |
-
<observers>
|
163 |
-
<savebilling_before>
|
164 |
-
<class>chronorelais/observer</class>
|
165 |
-
<method>saveBillingBefore</method>
|
166 |
-
</savebilling_before>
|
167 |
-
</observers>
|
168 |
-
</controller_action_predispatch_checkout_onepage_saveBilling>
|
169 |
-
|
170 |
-
<controller_action_predispatch_checkout_onepage_saveShipping>
|
171 |
-
<observers>
|
172 |
-
<saveshipping_before>
|
173 |
-
<class>chronorelais/observer</class>
|
174 |
-
<method>saveShippingBefore</method>
|
175 |
-
</saveshipping_before>
|
176 |
-
</observers>
|
177 |
-
</controller_action_predispatch_checkout_onepage_saveShipping>
|
178 |
-
|
179 |
-
<controller_action_predispatch_checkout_onepage_saveShippingMethod>
|
180 |
-
<observers>
|
181 |
-
<saveshippingmethod_before>
|
182 |
-
<class>chronorelais/observer</class>
|
183 |
-
<method>saveShippingMethodBefore</method>
|
184 |
-
</saveshippingmethod_before>
|
185 |
-
</observers>
|
186 |
-
</controller_action_predispatch_checkout_onepage_saveShippingMethod>
|
187 |
-
|
188 |
-
<controller_action_predispatch_onestepcheckout_ajax_set_methods_separate>
|
189 |
-
<observers>
|
190 |
-
<saveshippingmethod_idev_onestepcheckout_before>
|
191 |
-
<class>chronorelais/observer</class>
|
192 |
-
<method>saveShippingMethodBefore</method>
|
193 |
-
</saveshippingmethod_idev_onestepcheckout_before>
|
194 |
-
</observers>
|
195 |
-
</controller_action_predispatch_onestepcheckout_ajax_set_methods_separate>
|
196 |
-
|
197 |
-
<sales_order_place_before>
|
198 |
-
<observers>
|
199 |
-
<check_relay_point>
|
200 |
-
<type>singleton</type>
|
201 |
-
<class>chronorelais/observer</class>
|
202 |
-
<method>checkRelayPoint</method>
|
203 |
-
</check_relay_point>
|
204 |
-
</observers>
|
205 |
-
</sales_order_place_before>
|
206 |
-
|
207 |
-
<sales_convert_quote_address_to_order>
|
208 |
-
<observers>
|
209 |
-
<update_order_with_relay_address>
|
210 |
-
<type>singleton</type>
|
211 |
-
<class>chronorelais/observer</class>
|
212 |
-
<method>updateShippingAddress</method>
|
213 |
-
</update_order_with_relay_address>
|
214 |
-
</observers>
|
215 |
-
</sales_convert_quote_address_to_order>
|
216 |
-
|
217 |
-
</events>
|
218 |
-
</frontend>
|
219 |
-
|
220 |
-
<!-- <admin>
|
221 |
-
<routers>
|
222 |
-
<chronorelais>
|
223 |
-
<use>admin</use>
|
224 |
-
<args>
|
225 |
-
<module>Chronopost_Chronorelais</module>
|
226 |
-
<frontName>chronorelais</frontName>
|
227 |
-
</args>
|
228 |
-
</chronorelais>
|
229 |
-
</routers>
|
230 |
-
</admin> -->
|
231 |
-
<adminhtml>
|
232 |
-
<layout>
|
233 |
-
<updates>
|
234 |
-
<chronorelais>
|
235 |
-
<file>chronorelais.xml</file>
|
236 |
-
</chronorelais>
|
237 |
-
</updates>
|
238 |
-
</layout>
|
239 |
-
<menu>
|
240 |
-
<sales>
|
241 |
-
<children>
|
242 |
-
<chronorelais translate="title"> <!-- TODO faire marcher : module="chronorelais" (aussi dans les children) -->
|
243 |
-
<title>Chronopost</title>
|
244 |
-
<sort_order>15</sort_order>
|
245 |
-
<children>
|
246 |
-
<export translate="title">
|
247 |
-
<title>Export</title>
|
248 |
-
<action>adminhtml/chronorelais_export</action>
|
249 |
-
<sort_order>10</sort_order>
|
250 |
-
</export>
|
251 |
-
<import translate="title">
|
252 |
-
<title>Import</title>
|
253 |
-
<action>adminhtml/chronorelais_import</action>
|
254 |
-
<sort_order>20</sort_order>
|
255 |
-
</import>
|
256 |
-
<impression translate="title" module="sales">
|
257 |
-
<title>Impression des étiquettes</title>
|
258 |
-
<action>adminhtml/chronorelais_sales_impression</action>
|
259 |
-
<sort_order>30</sort_order>
|
260 |
-
</impression>
|
261 |
-
<bordereau translate="title" module="sales">
|
262 |
-
<title>Bordereau de fin de journée</title>
|
263 |
-
<action>adminhtml/chronorelais_sales_bordereau</action>
|
264 |
-
<sort_order>40</sort_order>
|
265 |
-
</bordereau>
|
266 |
-
</children>
|
267 |
-
</chronorelais>
|
268 |
-
</children>
|
269 |
-
</sales>
|
270 |
-
</menu>
|
271 |
-
<acl>
|
272 |
-
<resources>
|
273 |
-
<admin>
|
274 |
-
<children>
|
275 |
-
<sales>
|
276 |
-
<children>
|
277 |
-
<chronorelais translate="title">
|
278 |
-
<title>Chronopost</title>
|
279 |
-
<sort_order>15</sort_order>
|
280 |
-
<children>
|
281 |
-
<export translate="title">
|
282 |
-
<title>Export</title>
|
283 |
-
<sort_order>10</sort_order>
|
284 |
-
</export>
|
285 |
-
<import translate="title">
|
286 |
-
<title>Import</title>
|
287 |
-
<sort_order>20</sort_order>
|
288 |
-
</import>
|
289 |
-
<impression translate="title" module="sales">
|
290 |
-
<title>Impression des étiquettes</title>
|
291 |
-
<sort_order>30</sort_order>
|
292 |
-
</impression>
|
293 |
-
</children>
|
294 |
-
</chronorelais>
|
295 |
-
</children>
|
296 |
-
</sales>
|
297 |
-
<system>
|
298 |
-
<children>
|
299 |
-
<config>
|
300 |
-
<children>
|
301 |
-
<chronorelais translate="title" module="chronorelais">
|
302 |
-
<title>Chronopost</title>
|
303 |
-
<sort_order>100</sort_order>
|
304 |
-
</chronorelais>
|
305 |
-
</children>
|
306 |
-
</config>
|
307 |
-
</children>
|
308 |
-
</system>
|
309 |
-
</children>
|
310 |
-
</admin>
|
311 |
-
</resources>
|
312 |
-
</acl>
|
313 |
-
|
314 |
-
<translate>
|
315 |
-
<modules>
|
316 |
-
<Chronopost_Chronorelais>
|
317 |
-
<files>
|
318 |
-
<default>Chronopost_Chronorelais.csv</default>
|
319 |
-
</files>
|
320 |
-
</Chronopost_Chronorelais>
|
321 |
-
</modules>
|
322 |
-
</translate>
|
323 |
-
|
324 |
-
</adminhtml>
|
325 |
-
|
326 |
-
<admin>
|
327 |
-
<routers>
|
328 |
-
<adminhtml>
|
329 |
-
<args>
|
330 |
-
<modules>
|
331 |
-
<Chronopost_Chronorelais before="Mage_Adminhtml">Chronopost_Chronorelais_Adminhtml</Chronopost_Chronorelais>
|
332 |
-
</modules>
|
333 |
-
</args>
|
334 |
-
</adminhtml>
|
335 |
-
</routers>
|
336 |
-
</admin>
|
337 |
-
|
338 |
-
<default>
|
339 |
-
<chronorelais>
|
340 |
-
<shipping>
|
341 |
-
<google_map_api></google_map_api>
|
342 |
-
<tracking_view_url><![CDATA[http://www.chronopost.fr/expedier/inputLTNumbersNoJahia.do?lang=fr_FR&listeNumeros={tracking_number}]]>
|
343 |
-
</tracking_view_url>
|
344 |
-
<gs_path>/usr/bin/gs</gs_path>
|
345 |
-
</shipping>
|
346 |
-
<export_css>
|
347 |
-
<file_extension>.chr</file_extension>
|
348 |
-
<file_charset>ASCII-7</file_charset>
|
349 |
-
<endofline_character>crlf</endofline_character>
|
350 |
-
<field_delimiter>none</field_delimiter>
|
351 |
-
<field_separator>;</field_separator>
|
352 |
-
</export_css>
|
353 |
-
<export_cso>
|
354 |
-
<file_extension>.txt</file_extension>
|
355 |
-
<file_charset>ISO-8859-1</file_charset>
|
356 |
-
<endofline_character>crlf</endofline_character>
|
357 |
-
<field_delimiter>none</field_delimiter>
|
358 |
-
<field_separator>;</field_separator>
|
359 |
-
</export_cso>
|
360 |
-
<import>
|
361 |
-
<default_tracking_title>Chronopost - Chronopost livraison express à domicile</default_tracking_title>
|
362 |
-
<send_email>1</send_email>
|
363 |
-
<shipping_comment></shipping_comment>
|
364 |
-
<include_comment>0</include_comment>
|
365 |
-
</import>
|
366 |
-
<saturday>
|
367 |
-
<startday>thursday:18:00</startday>
|
368 |
-
<endday>friday:15:00</endday>
|
369 |
-
</saturday>
|
370 |
-
</chronorelais>
|
371 |
-
<carriers>
|
372 |
-
<chronopost>
|
373 |
-
<active>0</active>
|
374 |
-
<title>Chronopost-Livraison express à domicile avant 13H</title>
|
375 |
-
<model>Chronopost_Chronorelais_Model_Carrier_Chronopost</model>
|
376 |
-
<tracking_view_url></tracking_view_url>
|
377 |
-
<config>
|
378 |
-
# Chronopost
|
379 |
-
{
|
380 |
-
label: "Chronopost-Livraison express à domicile avant 13H",
|
381 |
-
code: "chronopost",
|
382 |
-
description: "En 24h à votre domicile! Commande livrée le lendemain matin avant 13h.
|
383 |
-
Vous pouvez reprogrammer votre livraison en cas d'absence.",
|
384 |
-
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
385 |
-
destination: "FR,MC",
|
386 |
-
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
387 |
-
}
|
388 |
-
|
389 |
-
# Chronopost Corse
|
390 |
-
{
|
391 |
-
label: "Chronopost livraison express à domicile en Corse",
|
392 |
-
code: "chronopost_corse",
|
393 |
-
description: "Colis livré le lendemain avant 13h, à l’adresse de votre choix.
|
394 |
-
Délai à compter de la prise en charge du colis par Chronopost, pour une livraison en France métropolitaine.
|
395 |
-
En cas d’absence, le colis est mis en instance dans le bureau de Poste le plus proche.",
|
396 |
-
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
397 |
-
destination: "FR(20*)",
|
398 |
-
fees: "{table {cart.weight} in 2.00:19.56, 3.00:20.40, 4.00:21.24, 5.00:22.08, 6.00:22.92, 7.00:23.76, 8.00:24.60, 9.00:25.44, 10.00:26.28, 15.00:30.48, 20.00:34.68, 25.00:38.88, 30.00:43.08}",
|
399 |
-
}
|
400 |
-
</config>
|
401 |
-
<weight_limit>30</weight_limit>
|
402 |
-
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
403 |
-
<logo_url>chronopost.png</logo_url>
|
404 |
-
<debug>0</debug>
|
405 |
-
<stop_to_first_match>0</stop_to_first_match>
|
406 |
-
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
407 |
-
<sort_order>1</sort_order>
|
408 |
-
</chronopost>
|
409 |
-
<chronoexpress>
|
410 |
-
<active>0</active>
|
411 |
-
<title>Chronopost Livraison express partout dans le monde</title>
|
412 |
-
<model>Chronopost_Chronorelais_Model_Carrier_Chronoexpress</model>
|
413 |
-
<tracking_view_url></tracking_view_url>
|
414 |
-
<config>
|
415 |
-
# Chronoexpress
|
416 |
-
{
|
417 |
-
label: "Chronopost Livraison express partout dans le monde",
|
418 |
-
code: "chronoexpress",
|
419 |
-
description: "En express à votre domicile! Commande livrée en Express à l'adresse de votre choix.",
|
420 |
-
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
421 |
-
destination: "DE,BE,BG,CY,DK,ES,EE,FI,GR,IE,IT,LV,LT,MT,NL,PL,PT,CZ,RO,SK,AT,HU,LU,GB,SI,SE,GF,YT,GP,MQ,RE",
|
422 |
-
fees: "{table {cart.weight} in 0.50:30.94, 1.00:45.07, 1.50:55.26, 2.00:65.45, 2.50:75.64, 3.00:85.83, 3.50:88.72, 4.00:91.61, 4.50:94.50, 5.00:97.39, 30.00:97.39}",
|
423 |
-
}
|
424 |
-
</config>
|
425 |
-
<weight_limit>30</weight_limit>
|
426 |
-
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
427 |
-
<logo_url>Logo-Chronopost.jpg</logo_url>
|
428 |
-
<debug>0</debug>
|
429 |
-
<stop_to_first_match>0</stop_to_first_match>
|
430 |
-
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
431 |
-
<sort_order>2</sort_order>
|
432 |
-
</chronoexpress>
|
433 |
-
<chronorelais>
|
434 |
-
<active>0</active>
|
435 |
-
<title>Chrono Relais</title>
|
436 |
-
<model>Chronopost_Chronorelais_Model_Carrier_Chronorelais</model>
|
437 |
-
<tracking_view_url></tracking_view_url>
|
438 |
-
<config>
|
439 |
-
# Chronorelais
|
440 |
-
{
|
441 |
-
label: "Chrono Relais : livraison express en relais Pickup",
|
442 |
-
code: "chronorelais",
|
443 |
-
description: "En 24h en relais Pickup! Commande livrée le lendemain dans le relais
|
444 |
-
Pickup de votre choix, parmi 7500 points répartis sur toute la France.",
|
445 |
-
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
446 |
-
destination: "FR",
|
447 |
-
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
448 |
-
}
|
449 |
-
|
450 |
-
# Voir exemple sur mode "Chronopost" pour un tarif spécifique pour la Corse
|
451 |
-
</config>
|
452 |
-
<weight_limit>20</weight_limit>
|
453 |
-
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
454 |
-
<show_google_map>1</show_google_map>
|
455 |
-
<logo_url>chronorelais.png</logo_url>
|
456 |
-
<debug>0</debug>
|
457 |
-
<stop_to_first_match>0</stop_to_first_match>
|
458 |
-
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
459 |
-
<sort_order>3</sort_order>
|
460 |
-
<max_distance_search>15</max_distance_search>
|
461 |
-
<max_point_chronopost>5</max_point_chronopost>
|
462 |
-
<point_relai_ws_method>recherchePointChronopost</point_relai_ws_method>
|
463 |
-
<add_address_to_ws>1</add_address_to_ws>
|
464 |
-
<can_change_postcode>1</can_change_postcode>
|
465 |
-
</chronorelais>
|
466 |
-
<chronopostc10>
|
467 |
-
<active>0</active>
|
468 |
-
<title>Chronopost-Livraison express à domicile avant 10H</title>
|
469 |
-
<model>Chronopost_Chronorelais_Model_Carrier_ChronopostC10</model>
|
470 |
-
<tracking_view_url></tracking_view_url>
|
471 |
-
<config>
|
472 |
-
# ChronopostC10
|
473 |
-
{
|
474 |
-
label: "Chronopost-Livraison express à domicile avant 10H",
|
475 |
-
code: "chronopostC10",
|
476 |
-
description: "En 24h à votre domicile! Commande livrée le lendemain matin avant 10h.
|
477 |
-
Vous pouvez reprogrammer votre livraison en cas d'absence.",
|
478 |
-
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
479 |
-
destination: "FR,MC",
|
480 |
-
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
481 |
-
}
|
482 |
-
</config>
|
483 |
-
<weight_limit>30</weight_limit>
|
484 |
-
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
485 |
-
<logo_url>chronopost.png</logo_url>
|
486 |
-
<debug>0</debug>
|
487 |
-
<stop_to_first_match>0</stop_to_first_match>
|
488 |
-
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
489 |
-
<sort_order>4</sort_order>
|
490 |
-
</chronopostc10>
|
491 |
-
<chronopostc18>
|
492 |
-
<active>0</active>
|
493 |
-
<title>Chronopost-Livraison express à domicile avant 18H</title>
|
494 |
-
<model>Chronopost_Chronorelais_Model_Carrier_ChronopostC18</model>
|
495 |
-
<tracking_view_url></tracking_view_url>
|
496 |
-
<config>
|
497 |
-
# ChronopostC18
|
498 |
-
{
|
499 |
-
label: "Chronopost-Livraison express à domicile avant 18H",
|
500 |
-
code: "chronopostC18",
|
501 |
-
description: "En 24h à votre domicile! Commande livrée le lendemain matin avant 18h.
|
502 |
-
Vous pouvez reprogrammer votre livraison en cas d'absence.",
|
503 |
-
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
504 |
-
destination: "FR,MC",
|
505 |
-
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
506 |
-
}
|
507 |
-
</config>
|
508 |
-
<weight_limit>30</weight_limit>
|
509 |
-
<quickcost>0</quickcost>
|
510 |
-
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
511 |
-
<logo_url>chronopost.png</logo_url>
|
512 |
-
<debug>0</debug>
|
513 |
-
<stop_to_first_match>0</stop_to_first_match>
|
514 |
-
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
515 |
-
<sort_order>5</sort_order>
|
516 |
-
</chronopostc18>
|
517 |
-
<chronopostcclassic>
|
518 |
-
<active>0</active>
|
519 |
-
<title>Chronopost Livraison dans certaines villes Européennes</title>
|
520 |
-
<model>Chronopost_Chronorelais_Model_Carrier_ChronopostCClassic</model>
|
521 |
-
<tracking_view_url></tracking_view_url>
|
522 |
-
<config>
|
523 |
-
# CClassic
|
524 |
-
{
|
525 |
-
label: "Chronopost Livraison dans certaines villes Européennes",
|
526 |
-
code: "chronopostcclassic",
|
527 |
-
description: "A domicile! Commande livrée à l'adresse de votre choix. Vous pouvez reprogrammer votre livraison en cas d’absence.",
|
528 |
-
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
529 |
-
destination: "DE,BE,BG,CY,DK,ES,EE,FI,GR,IE,IT,LV,LT,MT,NL,PL,PT,CZ,RO,SK,AT,HU,LU,GB,SI,SE,GF,YT,GP,MQ,RE",
|
530 |
-
fees: "{table {cart.weight} in 0.50:30.94, 1.00:45.07, 1.50:55.26, 2.00:65.45, 2.50:75.64, 3.00:85.83, 3.50:88.72, 4.00:91.61, 4.50:94.50, 5.00:97.39, 30.00:97.39}",
|
531 |
-
}
|
532 |
-
</config>
|
533 |
-
<weight_limit>30</weight_limit>
|
534 |
-
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
535 |
-
<logo_url>chronopost.png</logo_url>
|
536 |
-
<debug>0</debug>
|
537 |
-
<stop_to_first_match>0</stop_to_first_match>
|
538 |
-
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
539 |
-
<sort_order>6</sort_order>
|
540 |
-
</chronopostcclassic>
|
541 |
-
<chronorelaiseurope>
|
542 |
-
<active>0</active>
|
543 |
-
<title>Chrono Relais Europe</title>
|
544 |
-
<model>Chronopost_Chronorelais_Model_Carrier_Chronorelaiseurope</model>
|
545 |
-
<tracking_view_url></tracking_view_url>
|
546 |
-
<config>
|
547 |
-
# ChronorelaisEurope
|
548 |
-
{
|
549 |
-
label: "Chronopost Livraison en point relais",
|
550 |
-
description: "En relais Pickup! Commande livrée dans le relais Pickup de votre choix.",
|
551 |
-
code: "chronorelaiseurope",
|
552 |
-
description: "Colis livré en Chronopost",
|
553 |
-
tracking_url: "http://www.chronopost.fr/expedier/inputLTNumbersNoJahia.do?lang=fr_FR&listeNumeros=@",
|
554 |
-
destination: "DE,AT,BE,BG,CY,DK,ES,EE,FI,GR,HU,IE,IT,LV,LT,LU,MT,NL,PL,PT,CZ,RO,GB,SK,SI,SE",
|
555 |
-
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
556 |
-
}
|
557 |
-
</config>
|
558 |
-
<weight_limit>20</weight_limit>
|
559 |
-
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
560 |
-
<show_google_map>1</show_google_map>
|
561 |
-
<logo_url>chronorelais.png</logo_url>
|
562 |
-
<debug>0</debug>
|
563 |
-
<stop_to_first_match>0</stop_to_first_match>
|
564 |
-
<deliver_on_saturday>0</deliver_on_saturday>
|
565 |
-
<sort_order>7</sort_order>
|
566 |
-
<max_distance_search>15</max_distance_search>
|
567 |
-
<max_point_chronopost>10</max_point_chronopost>
|
568 |
-
<point_relai_ws_method>recherchePointChronopostInter</point_relai_ws_method>
|
569 |
-
<add_address_to_ws>0</add_address_to_ws>
|
570 |
-
<can_change_postcode>0</can_change_postcode>
|
571 |
-
</chronorelaiseurope>
|
572 |
-
<!--<chronorelaisdom>
|
573 |
-
<active>0</active>
|
574 |
-
<title>Chrono Relais DOM</title>
|
575 |
-
<model>Chronopost_Chronorelais_Model_Carrier_Chronorelaisdom</model>
|
576 |
-
<tracking_view_url></tracking_view_url>
|
577 |
-
<config>
|
578 |
-
# ChronorelaisDom
|
579 |
-
{
|
580 |
-
label: "Chronopost - Livraison en point relais",
|
581 |
-
description: "En relais Pickup! Commande livrée dans le relais Pickup de votre choix.",
|
582 |
-
code: "chronorelaisdom",
|
583 |
-
description: "Colis livré en Chronopost",
|
584 |
-
tracking_url: "http://www.chronopost.fr/expedier/inputLTNumbersNoJahia.do?lang=fr_FR&listeNumeros=@",
|
585 |
-
destination: "GP,MQ,GF,RE",
|
586 |
-
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
587 |
-
}
|
588 |
-
</config>
|
589 |
-
<weight_limit>20</weight_limit>
|
590 |
-
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
591 |
-
<show_google_map>1</show_google_map>
|
592 |
-
<logo_url>chronorelais.png</logo_url>
|
593 |
-
<debug>0</debug>
|
594 |
-
<stop_to_first_match>0</stop_to_first_match>
|
595 |
-
<deliver_on_saturday>0</deliver_on_saturday>
|
596 |
-
<sort_order>8</sort_order>
|
597 |
-
<max_distance_search>15</max_distance_search>
|
598 |
-
<max_point_chronopost>10</max_point_chronopost>
|
599 |
-
<point_relai_ws_method>recherchePointChronopostInter</point_relai_ws_method>
|
600 |
-
<add_address_to_ws>1</add_address_to_ws>
|
601 |
-
<can_change_postcode>0</can_change_postcode>
|
602 |
-
</chronorelaisdom>-->
|
603 |
-
<chronopostsameday>
|
604 |
-
<active>0</active>
|
605 |
-
<title>Chronopost-Livraison express à domicile le même jour</title>
|
606 |
-
<model>Chronopost_Chronorelais_Model_Carrier_Chronopostsameday</model>
|
607 |
-
<tracking_view_url></tracking_view_url>
|
608 |
-
<config>
|
609 |
-
# Chronopost
|
610 |
-
{
|
611 |
-
label: "Chronopost-Livraison express à domicile le même jour",
|
612 |
-
code: "chronopostsameday",
|
613 |
-
description: "Ce soir à votre domicile! Commande livrée ce soir entre 19h et 22h.
|
614 |
-
Vous pouvez reprogrammer votre livraison en cas d'absence.",
|
615 |
-
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
616 |
-
destination: "FR,MC",
|
617 |
-
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
618 |
-
}
|
619 |
-
</config>
|
620 |
-
<weight_limit>30</weight_limit>
|
621 |
-
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
622 |
-
<logo_url>chronopost.png</logo_url>
|
623 |
-
<debug>0</debug>
|
624 |
-
<stop_to_first_match>0</stop_to_first_match>
|
625 |
-
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
626 |
-
<sort_order>9</sort_order>
|
627 |
-
</chronopostsameday>
|
628 |
-
<chronopostsrdv>
|
629 |
-
<active>0</active>
|
630 |
-
<title>Chronopost-Livraison sur Rendez-vous</title>
|
631 |
-
<model>Chronopost_Chronorelais_Model_Carrier_Chronopostsrdv</model>
|
632 |
-
<tracking_view_url></tracking_view_url>
|
633 |
-
<config>
|
634 |
-
# Chronopost
|
635 |
-
{
|
636 |
-
label: "Chronopost-Livraison sur Rendez-vous",
|
637 |
-
code: "chronopostsrdv",
|
638 |
-
description: "Sur RDV à votre domicile! Commande livrée au jour de votre choix dans un créneau horaire de 2h.
|
639 |
-
Vous pouvez reprogrammer votre livraison en cas d'absence.",
|
640 |
-
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
641 |
-
destination: "FR",
|
642 |
-
fees: "0",
|
643 |
-
}
|
644 |
-
</config>
|
645 |
-
<weight_limit>30</weight_limit>
|
646 |
-
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
647 |
-
<logo_url>chronopost.png</logo_url>
|
648 |
-
<debug>0</debug>
|
649 |
-
<stop_to_first_match>0</stop_to_first_match>
|
650 |
-
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
651 |
-
<rdv_config>
|
652 |
-
{
|
653 |
-
"dateRemiseColis_nbJour": "1",
|
654 |
-
"dateRemiseColis_jour": "0",
|
655 |
-
"dateRemiseColis_heures": "0",
|
656 |
-
"dateRemiseColis_minutes": "0",
|
657 |
-
"niveauTarifaire_show": 1,
|
658 |
-
"N1_status": "1",
|
659 |
-
"N2_status": "1",
|
660 |
-
"N3_status": "1",
|
661 |
-
"N4_status": "1",
|
662 |
-
"N1_price": "0",
|
663 |
-
"N2_price": "0",
|
664 |
-
"N3_price": "0",
|
665 |
-
"N4_price": "0"
|
666 |
-
}
|
667 |
-
</rdv_config>
|
668 |
-
<sort_order>10</sort_order>
|
669 |
-
</chronopostsrdv>
|
670 |
-
</carriers>
|
671 |
-
</default>
|
672 |
-
|
673 |
-
</config>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Chronopost_Chronorelais>
|
5 |
+
<version>1.3.0</version>
|
6 |
+
<depends>
|
7 |
+
<Mage_Shipping />
|
8 |
+
<Mage_Sales />
|
9 |
+
<Mage_Adminhtml />
|
10 |
+
</depends>
|
11 |
+
</Chronopost_Chronorelais>
|
12 |
+
</modules>
|
13 |
+
|
14 |
+
<global>
|
15 |
+
<models>
|
16 |
+
<chronorelais>
|
17 |
+
<class>Chronopost_Chronorelais_Model</class>
|
18 |
+
</chronorelais>
|
19 |
+
</models>
|
20 |
+
<blocks>
|
21 |
+
<chronorelais>
|
22 |
+
<class>Chronopost_Chronorelais_Block</class>
|
23 |
+
</chronorelais>
|
24 |
+
<adminhtml>
|
25 |
+
<rewrite>
|
26 |
+
<sales_order_shipment_view>Chronopost_Chronorelais_Block_Sales_Order_Shipment_View</sales_order_shipment_view>
|
27 |
+
</rewrite>
|
28 |
+
</adminhtml>
|
29 |
+
</blocks>
|
30 |
+
<helpers>
|
31 |
+
<chronorelais>
|
32 |
+
<class>Chronopost_Chronorelais_Helper</class>
|
33 |
+
</chronorelais>
|
34 |
+
</helpers>
|
35 |
+
|
36 |
+
<resources>
|
37 |
+
<sales>
|
38 |
+
<shipping>
|
39 |
+
<carriers>
|
40 |
+
<chronorelais>
|
41 |
+
<class>Chronopost_Chronorelais_Model_Carrier_Chronorelais</class>
|
42 |
+
</chronorelais>
|
43 |
+
<chronopost>
|
44 |
+
<class>Chronopost_Chronorelais_Model_Carrier_Chronopost</class>
|
45 |
+
</chronopost>
|
46 |
+
<chronoexpress>
|
47 |
+
<class>Chronopost_Chronorelais_Model_Carrier_Chronoexpress</class>
|
48 |
+
</chronoexpress>
|
49 |
+
</carriers>
|
50 |
+
</shipping>
|
51 |
+
</sales>
|
52 |
+
<chronorelais_setup>
|
53 |
+
<setup>
|
54 |
+
<module>Chronopost_Chronorelais</module>
|
55 |
+
<class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
|
56 |
+
</setup>
|
57 |
+
<connection>
|
58 |
+
<use>core_setup</use>
|
59 |
+
</connection>
|
60 |
+
</chronorelais_setup>
|
61 |
+
<chronorelais_write>
|
62 |
+
<connection>
|
63 |
+
<use>core_write</use>
|
64 |
+
</connection>
|
65 |
+
</chronorelais_write>
|
66 |
+
|
67 |
+
<chronorelais_read>
|
68 |
+
<connection>
|
69 |
+
<use>core_read</use>
|
70 |
+
</connection>
|
71 |
+
</chronorelais_read>
|
72 |
+
</resources>
|
73 |
+
|
74 |
+
<rewrite>
|
75 |
+
<chronopost_chronorelais_checkout_multishipping>
|
76 |
+
<from><![CDATA[#^/checkout/multishipping/#]]>
|
77 |
+
</from>
|
78 |
+
<to>/chronorelais/checkout_multishipping/</to>
|
79 |
+
</chronopost_chronorelais_checkout_multishipping>
|
80 |
+
<chronopost_chronorelais_sales_order_shipment>
|
81 |
+
<from><![CDATA[#^/(.*)sales_order_shipment/save/#]]>
|
82 |
+
</from>
|
83 |
+
<to><![CDATA[/$1chronorelais_sales_order_shipment/save/]]></to>
|
84 |
+
</chronopost_chronorelais_sales_order_shipment>
|
85 |
+
</rewrite>
|
86 |
+
|
87 |
+
<fieldsets>
|
88 |
+
<sales_copy_order_billing_address>
|
89 |
+
<w_relay_point_code>
|
90 |
+
<to_order>*</to_order>
|
91 |
+
</w_relay_point_code>
|
92 |
+
</sales_copy_order_billing_address>
|
93 |
+
<sales_copy_order_shipping_address>
|
94 |
+
<w_relay_point_code>
|
95 |
+
<to_order>*</to_order>
|
96 |
+
</w_relay_point_code>
|
97 |
+
</sales_copy_order_shipping_address>
|
98 |
+
<sales_convert_quote_address>
|
99 |
+
<w_relay_point_code>
|
100 |
+
<to_order_address>*</to_order_address>
|
101 |
+
<to_customer_address>*</to_customer_address>
|
102 |
+
</w_relay_point_code>
|
103 |
+
<chronopostsrdv_creneaux_info>
|
104 |
+
<to_order_address>*</to_order_address>
|
105 |
+
<to_customer_address>*</to_customer_address>
|
106 |
+
<to_order>*</to_order>
|
107 |
+
</chronopostsrdv_creneaux_info>
|
108 |
+
</sales_convert_quote_address>
|
109 |
+
<sales_convert_order_address>
|
110 |
+
<w_relay_point_code>
|
111 |
+
<to_quote_address>*</to_quote_address>
|
112 |
+
</w_relay_point_code>
|
113 |
+
</sales_convert_order_address>
|
114 |
+
<customer_address>
|
115 |
+
<w_relay_point_code>
|
116 |
+
<to_quote_address>*</to_quote_address>
|
117 |
+
</w_relay_point_code>
|
118 |
+
</customer_address>
|
119 |
+
</fieldsets>
|
120 |
+
|
121 |
+
</global>
|
122 |
+
|
123 |
+
<frontend>
|
124 |
+
<routers>
|
125 |
+
<chronorelais>
|
126 |
+
<use>standard</use>
|
127 |
+
<args>
|
128 |
+
<module>Chronopost_Chronorelais</module>
|
129 |
+
<frontName>chronorelais</frontName>
|
130 |
+
</args>
|
131 |
+
</chronorelais>
|
132 |
+
</routers>
|
133 |
+
|
134 |
+
<layout>
|
135 |
+
<updates>
|
136 |
+
<chronorelais>
|
137 |
+
<file>chronorelais.xml</file>
|
138 |
+
</chronorelais>
|
139 |
+
</updates>
|
140 |
+
</layout>
|
141 |
+
<translate>
|
142 |
+
<modules>
|
143 |
+
<Chronopost_Chronorelais>
|
144 |
+
<files>
|
145 |
+
<default>Chronopost_Chronorelais.csv</default>
|
146 |
+
</files>
|
147 |
+
</Chronopost_Chronorelais>
|
148 |
+
</modules>
|
149 |
+
</translate>
|
150 |
+
|
151 |
+
<events>
|
152 |
+
<controller_action_predispatch_checkout_onepage_index>
|
153 |
+
<observers>
|
154 |
+
<check_soap_exists>
|
155 |
+
<class>chronorelais/observer</class>
|
156 |
+
<method>checkSoapExists</method>
|
157 |
+
</check_soap_exists>
|
158 |
+
</observers>
|
159 |
+
</controller_action_predispatch_checkout_onepage_index>
|
160 |
+
|
161 |
+
<controller_action_predispatch_checkout_onepage_saveBilling>
|
162 |
+
<observers>
|
163 |
+
<savebilling_before>
|
164 |
+
<class>chronorelais/observer</class>
|
165 |
+
<method>saveBillingBefore</method>
|
166 |
+
</savebilling_before>
|
167 |
+
</observers>
|
168 |
+
</controller_action_predispatch_checkout_onepage_saveBilling>
|
169 |
+
|
170 |
+
<controller_action_predispatch_checkout_onepage_saveShipping>
|
171 |
+
<observers>
|
172 |
+
<saveshipping_before>
|
173 |
+
<class>chronorelais/observer</class>
|
174 |
+
<method>saveShippingBefore</method>
|
175 |
+
</saveshipping_before>
|
176 |
+
</observers>
|
177 |
+
</controller_action_predispatch_checkout_onepage_saveShipping>
|
178 |
+
|
179 |
+
<controller_action_predispatch_checkout_onepage_saveShippingMethod>
|
180 |
+
<observers>
|
181 |
+
<saveshippingmethod_before>
|
182 |
+
<class>chronorelais/observer</class>
|
183 |
+
<method>saveShippingMethodBefore</method>
|
184 |
+
</saveshippingmethod_before>
|
185 |
+
</observers>
|
186 |
+
</controller_action_predispatch_checkout_onepage_saveShippingMethod>
|
187 |
+
|
188 |
+
<controller_action_predispatch_onestepcheckout_ajax_set_methods_separate>
|
189 |
+
<observers>
|
190 |
+
<saveshippingmethod_idev_onestepcheckout_before>
|
191 |
+
<class>chronorelais/observer</class>
|
192 |
+
<method>saveShippingMethodBefore</method>
|
193 |
+
</saveshippingmethod_idev_onestepcheckout_before>
|
194 |
+
</observers>
|
195 |
+
</controller_action_predispatch_onestepcheckout_ajax_set_methods_separate>
|
196 |
+
|
197 |
+
<sales_order_place_before>
|
198 |
+
<observers>
|
199 |
+
<check_relay_point>
|
200 |
+
<type>singleton</type>
|
201 |
+
<class>chronorelais/observer</class>
|
202 |
+
<method>checkRelayPoint</method>
|
203 |
+
</check_relay_point>
|
204 |
+
</observers>
|
205 |
+
</sales_order_place_before>
|
206 |
+
|
207 |
+
<sales_convert_quote_address_to_order>
|
208 |
+
<observers>
|
209 |
+
<update_order_with_relay_address>
|
210 |
+
<type>singleton</type>
|
211 |
+
<class>chronorelais/observer</class>
|
212 |
+
<method>updateShippingAddress</method>
|
213 |
+
</update_order_with_relay_address>
|
214 |
+
</observers>
|
215 |
+
</sales_convert_quote_address_to_order>
|
216 |
+
|
217 |
+
</events>
|
218 |
+
</frontend>
|
219 |
+
|
220 |
+
<!-- <admin>
|
221 |
+
<routers>
|
222 |
+
<chronorelais>
|
223 |
+
<use>admin</use>
|
224 |
+
<args>
|
225 |
+
<module>Chronopost_Chronorelais</module>
|
226 |
+
<frontName>chronorelais</frontName>
|
227 |
+
</args>
|
228 |
+
</chronorelais>
|
229 |
+
</routers>
|
230 |
+
</admin> -->
|
231 |
+
<adminhtml>
|
232 |
+
<layout>
|
233 |
+
<updates>
|
234 |
+
<chronorelais>
|
235 |
+
<file>chronorelais.xml</file>
|
236 |
+
</chronorelais>
|
237 |
+
</updates>
|
238 |
+
</layout>
|
239 |
+
<menu>
|
240 |
+
<sales>
|
241 |
+
<children>
|
242 |
+
<chronorelais translate="title"> <!-- TODO faire marcher : module="chronorelais" (aussi dans les children) -->
|
243 |
+
<title>Chronopost</title>
|
244 |
+
<sort_order>15</sort_order>
|
245 |
+
<children>
|
246 |
+
<export translate="title">
|
247 |
+
<title>Export</title>
|
248 |
+
<action>adminhtml/chronorelais_export</action>
|
249 |
+
<sort_order>10</sort_order>
|
250 |
+
</export>
|
251 |
+
<import translate="title">
|
252 |
+
<title>Import</title>
|
253 |
+
<action>adminhtml/chronorelais_import</action>
|
254 |
+
<sort_order>20</sort_order>
|
255 |
+
</import>
|
256 |
+
<impression translate="title" module="sales">
|
257 |
+
<title>Impression des étiquettes</title>
|
258 |
+
<action>adminhtml/chronorelais_sales_impression</action>
|
259 |
+
<sort_order>30</sort_order>
|
260 |
+
</impression>
|
261 |
+
<bordereau translate="title" module="sales">
|
262 |
+
<title>Bordereau de fin de journée</title>
|
263 |
+
<action>adminhtml/chronorelais_sales_bordereau</action>
|
264 |
+
<sort_order>40</sort_order>
|
265 |
+
</bordereau>
|
266 |
+
</children>
|
267 |
+
</chronorelais>
|
268 |
+
</children>
|
269 |
+
</sales>
|
270 |
+
</menu>
|
271 |
+
<acl>
|
272 |
+
<resources>
|
273 |
+
<admin>
|
274 |
+
<children>
|
275 |
+
<sales>
|
276 |
+
<children>
|
277 |
+
<chronorelais translate="title">
|
278 |
+
<title>Chronopost</title>
|
279 |
+
<sort_order>15</sort_order>
|
280 |
+
<children>
|
281 |
+
<export translate="title">
|
282 |
+
<title>Export</title>
|
283 |
+
<sort_order>10</sort_order>
|
284 |
+
</export>
|
285 |
+
<import translate="title">
|
286 |
+
<title>Import</title>
|
287 |
+
<sort_order>20</sort_order>
|
288 |
+
</import>
|
289 |
+
<impression translate="title" module="sales">
|
290 |
+
<title>Impression des étiquettes</title>
|
291 |
+
<sort_order>30</sort_order>
|
292 |
+
</impression>
|
293 |
+
</children>
|
294 |
+
</chronorelais>
|
295 |
+
</children>
|
296 |
+
</sales>
|
297 |
+
<system>
|
298 |
+
<children>
|
299 |
+
<config>
|
300 |
+
<children>
|
301 |
+
<chronorelais translate="title" module="chronorelais">
|
302 |
+
<title>Chronopost</title>
|
303 |
+
<sort_order>100</sort_order>
|
304 |
+
</chronorelais>
|
305 |
+
</children>
|
306 |
+
</config>
|
307 |
+
</children>
|
308 |
+
</system>
|
309 |
+
</children>
|
310 |
+
</admin>
|
311 |
+
</resources>
|
312 |
+
</acl>
|
313 |
+
|
314 |
+
<translate>
|
315 |
+
<modules>
|
316 |
+
<Chronopost_Chronorelais>
|
317 |
+
<files>
|
318 |
+
<default>Chronopost_Chronorelais.csv</default>
|
319 |
+
</files>
|
320 |
+
</Chronopost_Chronorelais>
|
321 |
+
</modules>
|
322 |
+
</translate>
|
323 |
+
|
324 |
+
</adminhtml>
|
325 |
+
|
326 |
+
<admin>
|
327 |
+
<routers>
|
328 |
+
<adminhtml>
|
329 |
+
<args>
|
330 |
+
<modules>
|
331 |
+
<Chronopost_Chronorelais before="Mage_Adminhtml">Chronopost_Chronorelais_Adminhtml</Chronopost_Chronorelais>
|
332 |
+
</modules>
|
333 |
+
</args>
|
334 |
+
</adminhtml>
|
335 |
+
</routers>
|
336 |
+
</admin>
|
337 |
+
|
338 |
+
<default>
|
339 |
+
<chronorelais>
|
340 |
+
<shipping>
|
341 |
+
<google_map_api></google_map_api>
|
342 |
+
<tracking_view_url><![CDATA[http://www.chronopost.fr/expedier/inputLTNumbersNoJahia.do?lang=fr_FR&listeNumeros={tracking_number}]]>
|
343 |
+
</tracking_view_url>
|
344 |
+
<gs_path>/usr/bin/gs</gs_path>
|
345 |
+
</shipping>
|
346 |
+
<export_css>
|
347 |
+
<file_extension>.chr</file_extension>
|
348 |
+
<file_charset>ASCII-7</file_charset>
|
349 |
+
<endofline_character>crlf</endofline_character>
|
350 |
+
<field_delimiter>none</field_delimiter>
|
351 |
+
<field_separator>;</field_separator>
|
352 |
+
</export_css>
|
353 |
+
<export_cso>
|
354 |
+
<file_extension>.txt</file_extension>
|
355 |
+
<file_charset>ISO-8859-1</file_charset>
|
356 |
+
<endofline_character>crlf</endofline_character>
|
357 |
+
<field_delimiter>none</field_delimiter>
|
358 |
+
<field_separator>;</field_separator>
|
359 |
+
</export_cso>
|
360 |
+
<import>
|
361 |
+
<default_tracking_title>Chronopost - Chronopost livraison express à domicile</default_tracking_title>
|
362 |
+
<send_email>1</send_email>
|
363 |
+
<shipping_comment></shipping_comment>
|
364 |
+
<include_comment>0</include_comment>
|
365 |
+
</import>
|
366 |
+
<saturday>
|
367 |
+
<startday>thursday:18:00</startday>
|
368 |
+
<endday>friday:15:00</endday>
|
369 |
+
</saturday>
|
370 |
+
</chronorelais>
|
371 |
+
<carriers>
|
372 |
+
<chronopost>
|
373 |
+
<active>0</active>
|
374 |
+
<title>Chronopost-Livraison express à domicile avant 13H</title>
|
375 |
+
<model>Chronopost_Chronorelais_Model_Carrier_Chronopost</model>
|
376 |
+
<tracking_view_url></tracking_view_url>
|
377 |
+
<config>
|
378 |
+
# Chronopost
|
379 |
+
{
|
380 |
+
label: "Chronopost-Livraison express à domicile avant 13H",
|
381 |
+
code: "chronopost",
|
382 |
+
description: "En 24h à votre domicile! Commande livrée le lendemain matin avant 13h.
|
383 |
+
Vous pouvez reprogrammer votre livraison en cas d'absence.",
|
384 |
+
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
385 |
+
destination: "FR,MC",
|
386 |
+
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
387 |
+
}
|
388 |
+
|
389 |
+
# Chronopost Corse
|
390 |
+
{
|
391 |
+
label: "Chronopost livraison express à domicile en Corse",
|
392 |
+
code: "chronopost_corse",
|
393 |
+
description: "Colis livré le lendemain avant 13h, à l’adresse de votre choix.
|
394 |
+
Délai à compter de la prise en charge du colis par Chronopost, pour une livraison en France métropolitaine.
|
395 |
+
En cas d’absence, le colis est mis en instance dans le bureau de Poste le plus proche.",
|
396 |
+
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
397 |
+
destination: "FR(20*)",
|
398 |
+
fees: "{table {cart.weight} in 2.00:19.56, 3.00:20.40, 4.00:21.24, 5.00:22.08, 6.00:22.92, 7.00:23.76, 8.00:24.60, 9.00:25.44, 10.00:26.28, 15.00:30.48, 20.00:34.68, 25.00:38.88, 30.00:43.08}",
|
399 |
+
}
|
400 |
+
</config>
|
401 |
+
<weight_limit>30</weight_limit>
|
402 |
+
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
403 |
+
<logo_url>chronopost.png</logo_url>
|
404 |
+
<debug>0</debug>
|
405 |
+
<stop_to_first_match>0</stop_to_first_match>
|
406 |
+
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
407 |
+
<sort_order>1</sort_order>
|
408 |
+
</chronopost>
|
409 |
+
<chronoexpress>
|
410 |
+
<active>0</active>
|
411 |
+
<title>Chronopost Livraison express partout dans le monde</title>
|
412 |
+
<model>Chronopost_Chronorelais_Model_Carrier_Chronoexpress</model>
|
413 |
+
<tracking_view_url></tracking_view_url>
|
414 |
+
<config>
|
415 |
+
# Chronoexpress
|
416 |
+
{
|
417 |
+
label: "Chronopost Livraison express partout dans le monde",
|
418 |
+
code: "chronoexpress",
|
419 |
+
description: "En express à votre domicile! Commande livrée en Express à l'adresse de votre choix.",
|
420 |
+
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
421 |
+
destination: "DE,BE,BG,CY,DK,ES,EE,FI,GR,IE,IT,LV,LT,MT,NL,PL,PT,CZ,RO,SK,AT,HU,LU,GB,SI,SE,GF,YT,GP,MQ,RE",
|
422 |
+
fees: "{table {cart.weight} in 0.50:30.94, 1.00:45.07, 1.50:55.26, 2.00:65.45, 2.50:75.64, 3.00:85.83, 3.50:88.72, 4.00:91.61, 4.50:94.50, 5.00:97.39, 30.00:97.39}",
|
423 |
+
}
|
424 |
+
</config>
|
425 |
+
<weight_limit>30</weight_limit>
|
426 |
+
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
427 |
+
<logo_url>Logo-Chronopost.jpg</logo_url>
|
428 |
+
<debug>0</debug>
|
429 |
+
<stop_to_first_match>0</stop_to_first_match>
|
430 |
+
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
431 |
+
<sort_order>2</sort_order>
|
432 |
+
</chronoexpress>
|
433 |
+
<chronorelais>
|
434 |
+
<active>0</active>
|
435 |
+
<title>Chrono Relais</title>
|
436 |
+
<model>Chronopost_Chronorelais_Model_Carrier_Chronorelais</model>
|
437 |
+
<tracking_view_url></tracking_view_url>
|
438 |
+
<config>
|
439 |
+
# Chronorelais
|
440 |
+
{
|
441 |
+
label: "Chrono Relais : livraison express en relais Pickup",
|
442 |
+
code: "chronorelais",
|
443 |
+
description: "En 24h en relais Pickup! Commande livrée le lendemain dans le relais
|
444 |
+
Pickup de votre choix, parmi 7500 points répartis sur toute la France.",
|
445 |
+
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
446 |
+
destination: "FR",
|
447 |
+
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
448 |
+
}
|
449 |
+
|
450 |
+
# Voir exemple sur mode "Chronopost" pour un tarif spécifique pour la Corse
|
451 |
+
</config>
|
452 |
+
<weight_limit>20</weight_limit>
|
453 |
+
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
454 |
+
<show_google_map>1</show_google_map>
|
455 |
+
<logo_url>chronorelais.png</logo_url>
|
456 |
+
<debug>0</debug>
|
457 |
+
<stop_to_first_match>0</stop_to_first_match>
|
458 |
+
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
459 |
+
<sort_order>3</sort_order>
|
460 |
+
<max_distance_search>15</max_distance_search>
|
461 |
+
<max_point_chronopost>5</max_point_chronopost>
|
462 |
+
<point_relai_ws_method>recherchePointChronopost</point_relai_ws_method>
|
463 |
+
<add_address_to_ws>1</add_address_to_ws>
|
464 |
+
<can_change_postcode>1</can_change_postcode>
|
465 |
+
</chronorelais>
|
466 |
+
<chronopostc10>
|
467 |
+
<active>0</active>
|
468 |
+
<title>Chronopost-Livraison express à domicile avant 10H</title>
|
469 |
+
<model>Chronopost_Chronorelais_Model_Carrier_ChronopostC10</model>
|
470 |
+
<tracking_view_url></tracking_view_url>
|
471 |
+
<config>
|
472 |
+
# ChronopostC10
|
473 |
+
{
|
474 |
+
label: "Chronopost-Livraison express à domicile avant 10H",
|
475 |
+
code: "chronopostC10",
|
476 |
+
description: "En 24h à votre domicile! Commande livrée le lendemain matin avant 10h.
|
477 |
+
Vous pouvez reprogrammer votre livraison en cas d'absence.",
|
478 |
+
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
479 |
+
destination: "FR,MC",
|
480 |
+
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
481 |
+
}
|
482 |
+
</config>
|
483 |
+
<weight_limit>30</weight_limit>
|
484 |
+
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
485 |
+
<logo_url>chronopost.png</logo_url>
|
486 |
+
<debug>0</debug>
|
487 |
+
<stop_to_first_match>0</stop_to_first_match>
|
488 |
+
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
489 |
+
<sort_order>4</sort_order>
|
490 |
+
</chronopostc10>
|
491 |
+
<chronopostc18>
|
492 |
+
<active>0</active>
|
493 |
+
<title>Chronopost-Livraison express à domicile avant 18H</title>
|
494 |
+
<model>Chronopost_Chronorelais_Model_Carrier_ChronopostC18</model>
|
495 |
+
<tracking_view_url></tracking_view_url>
|
496 |
+
<config>
|
497 |
+
# ChronopostC18
|
498 |
+
{
|
499 |
+
label: "Chronopost-Livraison express à domicile avant 18H",
|
500 |
+
code: "chronopostC18",
|
501 |
+
description: "En 24h à votre domicile! Commande livrée le lendemain matin avant 18h.
|
502 |
+
Vous pouvez reprogrammer votre livraison en cas d'absence.",
|
503 |
+
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
504 |
+
destination: "FR,MC",
|
505 |
+
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
506 |
+
}
|
507 |
+
</config>
|
508 |
+
<weight_limit>30</weight_limit>
|
509 |
+
<quickcost>0</quickcost>
|
510 |
+
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
511 |
+
<logo_url>chronopost.png</logo_url>
|
512 |
+
<debug>0</debug>
|
513 |
+
<stop_to_first_match>0</stop_to_first_match>
|
514 |
+
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
515 |
+
<sort_order>5</sort_order>
|
516 |
+
</chronopostc18>
|
517 |
+
<chronopostcclassic>
|
518 |
+
<active>0</active>
|
519 |
+
<title>Chronopost Livraison dans certaines villes Européennes</title>
|
520 |
+
<model>Chronopost_Chronorelais_Model_Carrier_ChronopostCClassic</model>
|
521 |
+
<tracking_view_url></tracking_view_url>
|
522 |
+
<config>
|
523 |
+
# CClassic
|
524 |
+
{
|
525 |
+
label: "Chronopost Livraison dans certaines villes Européennes",
|
526 |
+
code: "chronopostcclassic",
|
527 |
+
description: "A domicile! Commande livrée à l'adresse de votre choix. Vous pouvez reprogrammer votre livraison en cas d’absence.",
|
528 |
+
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
529 |
+
destination: "DE,BE,BG,CY,DK,ES,EE,FI,GR,IE,IT,LV,LT,MT,NL,PL,PT,CZ,RO,SK,AT,HU,LU,GB,SI,SE,GF,YT,GP,MQ,RE",
|
530 |
+
fees: "{table {cart.weight} in 0.50:30.94, 1.00:45.07, 1.50:55.26, 2.00:65.45, 2.50:75.64, 3.00:85.83, 3.50:88.72, 4.00:91.61, 4.50:94.50, 5.00:97.39, 30.00:97.39}",
|
531 |
+
}
|
532 |
+
</config>
|
533 |
+
<weight_limit>30</weight_limit>
|
534 |
+
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
535 |
+
<logo_url>chronopost.png</logo_url>
|
536 |
+
<debug>0</debug>
|
537 |
+
<stop_to_first_match>0</stop_to_first_match>
|
538 |
+
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
539 |
+
<sort_order>6</sort_order>
|
540 |
+
</chronopostcclassic>
|
541 |
+
<chronorelaiseurope>
|
542 |
+
<active>0</active>
|
543 |
+
<title>Chrono Relais Europe</title>
|
544 |
+
<model>Chronopost_Chronorelais_Model_Carrier_Chronorelaiseurope</model>
|
545 |
+
<tracking_view_url></tracking_view_url>
|
546 |
+
<config>
|
547 |
+
# ChronorelaisEurope
|
548 |
+
{
|
549 |
+
label: "Chronopost Livraison en point relais",
|
550 |
+
description: "En relais Pickup! Commande livrée dans le relais Pickup de votre choix.",
|
551 |
+
code: "chronorelaiseurope",
|
552 |
+
description: "Colis livré en Chronopost",
|
553 |
+
tracking_url: "http://www.chronopost.fr/expedier/inputLTNumbersNoJahia.do?lang=fr_FR&listeNumeros=@",
|
554 |
+
destination: "DE,AT,BE,BG,CY,DK,ES,EE,FI,GR,HU,IE,IT,LV,LT,LU,MT,NL,PL,PT,CZ,RO,GB,SK,SI,SE",
|
555 |
+
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
556 |
+
}
|
557 |
+
</config>
|
558 |
+
<weight_limit>20</weight_limit>
|
559 |
+
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
560 |
+
<show_google_map>1</show_google_map>
|
561 |
+
<logo_url>chronorelais.png</logo_url>
|
562 |
+
<debug>0</debug>
|
563 |
+
<stop_to_first_match>0</stop_to_first_match>
|
564 |
+
<deliver_on_saturday>0</deliver_on_saturday>
|
565 |
+
<sort_order>7</sort_order>
|
566 |
+
<max_distance_search>15</max_distance_search>
|
567 |
+
<max_point_chronopost>10</max_point_chronopost>
|
568 |
+
<point_relai_ws_method>recherchePointChronopostInter</point_relai_ws_method>
|
569 |
+
<add_address_to_ws>0</add_address_to_ws>
|
570 |
+
<can_change_postcode>0</can_change_postcode>
|
571 |
+
</chronorelaiseurope>
|
572 |
+
<!--<chronorelaisdom>
|
573 |
+
<active>0</active>
|
574 |
+
<title>Chrono Relais DOM</title>
|
575 |
+
<model>Chronopost_Chronorelais_Model_Carrier_Chronorelaisdom</model>
|
576 |
+
<tracking_view_url></tracking_view_url>
|
577 |
+
<config>
|
578 |
+
# ChronorelaisDom
|
579 |
+
{
|
580 |
+
label: "Chronopost - Livraison en point relais",
|
581 |
+
description: "En relais Pickup! Commande livrée dans le relais Pickup de votre choix.",
|
582 |
+
code: "chronorelaisdom",
|
583 |
+
description: "Colis livré en Chronopost",
|
584 |
+
tracking_url: "http://www.chronopost.fr/expedier/inputLTNumbersNoJahia.do?lang=fr_FR&listeNumeros=@",
|
585 |
+
destination: "GP,MQ,GF,RE",
|
586 |
+
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
587 |
+
}
|
588 |
+
</config>
|
589 |
+
<weight_limit>20</weight_limit>
|
590 |
+
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
591 |
+
<show_google_map>1</show_google_map>
|
592 |
+
<logo_url>chronorelais.png</logo_url>
|
593 |
+
<debug>0</debug>
|
594 |
+
<stop_to_first_match>0</stop_to_first_match>
|
595 |
+
<deliver_on_saturday>0</deliver_on_saturday>
|
596 |
+
<sort_order>8</sort_order>
|
597 |
+
<max_distance_search>15</max_distance_search>
|
598 |
+
<max_point_chronopost>10</max_point_chronopost>
|
599 |
+
<point_relai_ws_method>recherchePointChronopostInter</point_relai_ws_method>
|
600 |
+
<add_address_to_ws>1</add_address_to_ws>
|
601 |
+
<can_change_postcode>0</can_change_postcode>
|
602 |
+
</chronorelaisdom>-->
|
603 |
+
<chronopostsameday>
|
604 |
+
<active>0</active>
|
605 |
+
<title>Chronopost-Livraison express à domicile le même jour</title>
|
606 |
+
<model>Chronopost_Chronorelais_Model_Carrier_Chronopostsameday</model>
|
607 |
+
<tracking_view_url></tracking_view_url>
|
608 |
+
<config>
|
609 |
+
# Chronopost
|
610 |
+
{
|
611 |
+
label: "Chronopost-Livraison express à domicile le même jour",
|
612 |
+
code: "chronopostsameday",
|
613 |
+
description: "Ce soir à votre domicile! Commande livrée ce soir entre 19h et 22h.
|
614 |
+
Vous pouvez reprogrammer votre livraison en cas d'absence.",
|
615 |
+
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
616 |
+
destination: "FR,MC",
|
617 |
+
fees: "{table {cart.weight} in 2.00:17.56, 3.00:18.40, 4.00:19.24, 5.00:20.08, 6.00:20.92, 7.00:21.76, 8.00:22.60, 9.00:23.44, 10.00:24.28, 15.00:28.48, 20.00:32.68, 25.00:36.88, 30.00:41.08}",
|
618 |
+
}
|
619 |
+
</config>
|
620 |
+
<weight_limit>30</weight_limit>
|
621 |
+
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
622 |
+
<logo_url>chronopost.png</logo_url>
|
623 |
+
<debug>0</debug>
|
624 |
+
<stop_to_first_match>0</stop_to_first_match>
|
625 |
+
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
626 |
+
<sort_order>9</sort_order>
|
627 |
+
</chronopostsameday>
|
628 |
+
<chronopostsrdv>
|
629 |
+
<active>0</active>
|
630 |
+
<title>Chronopost-Livraison sur Rendez-vous</title>
|
631 |
+
<model>Chronopost_Chronorelais_Model_Carrier_Chronopostsrdv</model>
|
632 |
+
<tracking_view_url></tracking_view_url>
|
633 |
+
<config>
|
634 |
+
# Chronopost
|
635 |
+
{
|
636 |
+
label: "Chronopost-Livraison sur Rendez-vous",
|
637 |
+
code: "chronopostsrdv",
|
638 |
+
description: "Sur RDV à votre domicile! Commande livrée au jour de votre choix dans un créneau horaire de 2h.
|
639 |
+
Vous pouvez reprogrammer votre livraison en cas d'absence.",
|
640 |
+
tracking_url: "http://www.fr.chronopost.com/fr/tracking/result?listeNumeros={tracking_number}",
|
641 |
+
destination: "FR",
|
642 |
+
fees: "0",
|
643 |
+
}
|
644 |
+
</config>
|
645 |
+
<weight_limit>30</weight_limit>
|
646 |
+
<quickcost_url>https://www.chronopost.fr/quickcost-cxf/QuickcostServiceWS?wsdl</quickcost_url>
|
647 |
+
<logo_url>chronopost.png</logo_url>
|
648 |
+
<debug>0</debug>
|
649 |
+
<stop_to_first_match>0</stop_to_first_match>
|
650 |
+
<!--<specificerrmsg>This shipping method is currently unavailable.</specificerrmsg>-->
|
651 |
+
<rdv_config>
|
652 |
+
{
|
653 |
+
"dateRemiseColis_nbJour": "1",
|
654 |
+
"dateRemiseColis_jour": "0",
|
655 |
+
"dateRemiseColis_heures": "0",
|
656 |
+
"dateRemiseColis_minutes": "0",
|
657 |
+
"niveauTarifaire_show": 1,
|
658 |
+
"N1_status": "1",
|
659 |
+
"N2_status": "1",
|
660 |
+
"N3_status": "1",
|
661 |
+
"N4_status": "1",
|
662 |
+
"N1_price": "0",
|
663 |
+
"N2_price": "0",
|
664 |
+
"N3_price": "0",
|
665 |
+
"N4_price": "0"
|
666 |
+
}
|
667 |
+
</rdv_config>
|
668 |
+
<sort_order>10</sort_order>
|
669 |
+
</chronopostsrdv>
|
670 |
+
</carriers>
|
671 |
+
</default>
|
672 |
+
|
673 |
+
</config>
|
app/code/community/Chronopost/Chronorelais/etc/system.xml
CHANGED
@@ -1,2433 +1,2433 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<config>
|
3 |
-
<tabs>
|
4 |
-
<chronopost translate="label" module="chronorelais">
|
5 |
-
<label>Chronopost</label>
|
6 |
-
<sort_order>200</sort_order>
|
7 |
-
</chronopost>
|
8 |
-
</tabs>
|
9 |
-
<sections>
|
10 |
-
<carriers>
|
11 |
-
<groups>
|
12 |
-
<chronopost translate="label">
|
13 |
-
<label>Chronopost</label>
|
14 |
-
<frontend_type>text</frontend_type>
|
15 |
-
<sort_order>20</sort_order>
|
16 |
-
<show_in_default>1</show_in_default>
|
17 |
-
<show_in_website>1</show_in_website>
|
18 |
-
<show_in_store>1</show_in_store>
|
19 |
-
<fields>
|
20 |
-
<active translate="label">
|
21 |
-
<label>Enabled</label>
|
22 |
-
<frontend_type>select</frontend_type>
|
23 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
24 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
25 |
-
<sort_order>1</sort_order>
|
26 |
-
<show_in_default>1</show_in_default>
|
27 |
-
<show_in_website>1</show_in_website>
|
28 |
-
<show_in_store>1</show_in_store>
|
29 |
-
</active>
|
30 |
-
<title translate="label">
|
31 |
-
<label>Title</label>
|
32 |
-
<frontend_type>text</frontend_type>
|
33 |
-
<sort_order>2</sort_order>
|
34 |
-
<show_in_default>1</show_in_default>
|
35 |
-
<show_in_website>1</show_in_website>
|
36 |
-
<show_in_store>1</show_in_store>
|
37 |
-
</title>
|
38 |
-
<config translate="label">
|
39 |
-
<label>Configuration</label>
|
40 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
41 |
-
<comment>{configuration_syntax_help}</comment>
|
42 |
-
<frontend_type>textarea</frontend_type>
|
43 |
-
<sort_order>3</sort_order>
|
44 |
-
<show_in_default>1</show_in_default>
|
45 |
-
<show_in_website>1</show_in_website>
|
46 |
-
<show_in_store>1</show_in_store>
|
47 |
-
</config>
|
48 |
-
<weight_limit translate="label">
|
49 |
-
<label>Weight Limit</label>
|
50 |
-
<frontend_type>text</frontend_type>
|
51 |
-
<comment>in Kg</comment>
|
52 |
-
<sort_order>7</sort_order>
|
53 |
-
<show_in_default>1</show_in_default>
|
54 |
-
<show_in_website>1</show_in_website>
|
55 |
-
<show_in_store>1</show_in_store>
|
56 |
-
</weight_limit>
|
57 |
-
<quickcost translate="label">
|
58 |
-
<label>Quickcost</label>
|
59 |
-
<frontend_type>select</frontend_type>
|
60 |
-
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
61 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
62 |
-
<sort_order>10</sort_order>
|
63 |
-
<show_in_default>1</show_in_default>
|
64 |
-
<show_in_website>1</show_in_website>
|
65 |
-
<show_in_store>0</show_in_store>
|
66 |
-
</quickcost>
|
67 |
-
<quickcost_marge translate="label">
|
68 |
-
<label>Value to add to quickcost</label>
|
69 |
-
<frontend_type>text</frontend_type>
|
70 |
-
<sort_order>11</sort_order>
|
71 |
-
<show_in_default>1</show_in_default>
|
72 |
-
<show_in_website>1</show_in_website>
|
73 |
-
<show_in_store>1</show_in_store>
|
74 |
-
<validate>validate-number</validate>
|
75 |
-
</quickcost_marge>
|
76 |
-
<quickcost_marge_type translate="label">
|
77 |
-
<label>Type value to add</label>
|
78 |
-
<frontend_type>select</frontend_type>
|
79 |
-
<source_model>chronorelais/config_source_margetype</source_model>
|
80 |
-
<sort_order>12</sort_order>
|
81 |
-
<show_in_default>1</show_in_default>
|
82 |
-
<show_in_website>1</show_in_website>
|
83 |
-
<show_in_store>1</show_in_store>
|
84 |
-
</quickcost_marge_type>
|
85 |
-
<quickcost_url>
|
86 |
-
<label>Quickcost Url</label>
|
87 |
-
<frontend_type>text</frontend_type>
|
88 |
-
<sort_order>13</sort_order>
|
89 |
-
<show_in_default>1</show_in_default>
|
90 |
-
<show_in_website>1</show_in_website>
|
91 |
-
<show_in_store>0</show_in_store>
|
92 |
-
</quickcost_url>
|
93 |
-
<free_shipping_enable translate="label">
|
94 |
-
<label>Free Shipping on the Amount</label>
|
95 |
-
<frontend_type>select</frontend_type>
|
96 |
-
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
97 |
-
<sort_order>20</sort_order>
|
98 |
-
<show_in_default>1</show_in_default>
|
99 |
-
<show_in_website>1</show_in_website>
|
100 |
-
<show_in_store>1</show_in_store>
|
101 |
-
</free_shipping_enable>
|
102 |
-
<free_shipping_subtotal translate="label">
|
103 |
-
<label>Minimum Amount for Free Shipping</label>
|
104 |
-
<frontend_type>text</frontend_type>
|
105 |
-
<sort_order>30</sort_order>
|
106 |
-
<show_in_default>1</show_in_default>
|
107 |
-
<show_in_website>1</show_in_website>
|
108 |
-
<show_in_store>0</show_in_store>
|
109 |
-
</free_shipping_subtotal>
|
110 |
-
<application_fee translate="label">
|
111 |
-
<label>Application Fee</label>
|
112 |
-
<frontend_type>text</frontend_type>
|
113 |
-
<sort_order>40</sort_order>
|
114 |
-
<show_in_default>1</show_in_default>
|
115 |
-
<show_in_website>1</show_in_website>
|
116 |
-
<show_in_store>1</show_in_store>
|
117 |
-
</application_fee>
|
118 |
-
<handling_fee translate="label">
|
119 |
-
<label>Handling Fee</label>
|
120 |
-
<frontend_type>text</frontend_type>
|
121 |
-
<sort_order>50</sort_order>
|
122 |
-
<show_in_default>1</show_in_default>
|
123 |
-
<show_in_website>1</show_in_website>
|
124 |
-
<show_in_store>1</show_in_store>
|
125 |
-
</handling_fee>
|
126 |
-
<logo_url>
|
127 |
-
<label>Logo Url</label>
|
128 |
-
<frontend_type>text</frontend_type>
|
129 |
-
<comment>{logo_ulr_help}</comment>
|
130 |
-
<sort_order>60</sort_order>
|
131 |
-
<show_in_default>1</show_in_default>
|
132 |
-
<show_in_website>1</show_in_website>
|
133 |
-
<show_in_store>1</show_in_store>
|
134 |
-
</logo_url>
|
135 |
-
<debug>
|
136 |
-
<label>Debug</label>
|
137 |
-
<comment>{debug_help}</comment>
|
138 |
-
<frontend_type>text</frontend_type>
|
139 |
-
<sort_order>70</sort_order>
|
140 |
-
<show_in_default>1</show_in_default>
|
141 |
-
<show_in_website>1</show_in_website>
|
142 |
-
<show_in_store>1</show_in_store>
|
143 |
-
</debug>
|
144 |
-
<!--<stop_to_first_match translate="label">
|
145 |
-
<label>Stop to first match</label>
|
146 |
-
<frontend_type>select</frontend_type>
|
147 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
148 |
-
<sort_order>80</sort_order>
|
149 |
-
<show_in_default>1</show_in_default>
|
150 |
-
<show_in_website>1</show_in_website>
|
151 |
-
<show_in_store>1</show_in_store>
|
152 |
-
</stop_to_first_match>-->
|
153 |
-
<deliver_on_saturday translate="label comment">
|
154 |
-
<label>Livraison le Samedi</label>
|
155 |
-
<frontend_type>select</frontend_type>
|
156 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
157 |
-
<sort_order>90</sort_order>
|
158 |
-
<show_in_default>1</show_in_default>
|
159 |
-
<show_in_website>1</show_in_website>
|
160 |
-
<show_in_store>1</show_in_store>
|
161 |
-
</deliver_on_saturday>
|
162 |
-
<!--<showmethod translate="label">
|
163 |
-
<label>Show Method if Not Applicable</label>
|
164 |
-
<frontend_type>select</frontend_type>
|
165 |
-
<sort_order>100</sort_order>
|
166 |
-
<frontend_class>shipping-skip-hide</frontend_class>
|
167 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
168 |
-
<show_in_default>1</show_in_default>
|
169 |
-
<show_in_website>1</show_in_website>
|
170 |
-
<show_in_store>0</show_in_store>
|
171 |
-
</showmethod>
|
172 |
-
<specificerrmsg translate="label">
|
173 |
-
<label>Displayed Error Message</label>
|
174 |
-
<frontend_type>textarea</frontend_type>
|
175 |
-
<sort_order>110</sort_order>
|
176 |
-
<show_in_default>1</show_in_default>
|
177 |
-
<show_in_website>1</show_in_website>
|
178 |
-
<show_in_store>1</show_in_store>
|
179 |
-
</specificerrmsg>-->
|
180 |
-
<sort_order translate="label">
|
181 |
-
<label>Sort order</label>
|
182 |
-
<frontend_type>text</frontend_type>
|
183 |
-
<sort_order>120</sort_order>
|
184 |
-
<show_in_default>1</show_in_default>
|
185 |
-
<show_in_website>1</show_in_website>
|
186 |
-
<show_in_store>1</show_in_store>
|
187 |
-
</sort_order>
|
188 |
-
</fields>
|
189 |
-
</chronopost>
|
190 |
-
|
191 |
-
<chronoexpress translate="label">
|
192 |
-
<label>Chrono Express</label>
|
193 |
-
<frontend_type>text</frontend_type>
|
194 |
-
<sort_order>21</sort_order>
|
195 |
-
<show_in_default>1</show_in_default>
|
196 |
-
<show_in_website>1</show_in_website>
|
197 |
-
<show_in_store>1</show_in_store>
|
198 |
-
<fields>
|
199 |
-
<active translate="label">
|
200 |
-
<label>Enabled</label>
|
201 |
-
<frontend_type>select</frontend_type>
|
202 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
203 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
204 |
-
<sort_order>1</sort_order>
|
205 |
-
<show_in_default>1</show_in_default>
|
206 |
-
<show_in_website>1</show_in_website>
|
207 |
-
<show_in_store>1</show_in_store>
|
208 |
-
</active>
|
209 |
-
<title translate="label">
|
210 |
-
<label>Title</label>
|
211 |
-
<frontend_type>text</frontend_type>
|
212 |
-
<sort_order>2</sort_order>
|
213 |
-
<show_in_default>1</show_in_default>
|
214 |
-
<show_in_website>1</show_in_website>
|
215 |
-
<show_in_store>1</show_in_store>
|
216 |
-
</title>
|
217 |
-
<config translate="label">
|
218 |
-
<label>Configuration</label>
|
219 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
220 |
-
<comment>{configuration_syntax_help}</comment>
|
221 |
-
<frontend_type>textarea</frontend_type>
|
222 |
-
<sort_order>3</sort_order>
|
223 |
-
<show_in_default>1</show_in_default>
|
224 |
-
<show_in_website>1</show_in_website>
|
225 |
-
<show_in_store>1</show_in_store>
|
226 |
-
</config>
|
227 |
-
<weight_limit translate="label">
|
228 |
-
<label>Weight Limit</label>
|
229 |
-
<frontend_type>text</frontend_type>
|
230 |
-
<comment>in Kg</comment>
|
231 |
-
<sort_order>7</sort_order>
|
232 |
-
<show_in_default>1</show_in_default>
|
233 |
-
<show_in_website>1</show_in_website>
|
234 |
-
<show_in_store>1</show_in_store>
|
235 |
-
</weight_limit>
|
236 |
-
<quickcost translate="label">
|
237 |
-
<label>Quickcost</label>
|
238 |
-
<frontend_type>select</frontend_type>
|
239 |
-
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
240 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
241 |
-
<sort_order>10</sort_order>
|
242 |
-
<show_in_default>1</show_in_default>
|
243 |
-
<show_in_website>1</show_in_website>
|
244 |
-
<show_in_store>0</show_in_store>
|
245 |
-
</quickcost>
|
246 |
-
<quickcost_marge translate="label">
|
247 |
-
<label>Value to add to quickcost</label>
|
248 |
-
<frontend_type>text</frontend_type>
|
249 |
-
<sort_order>11</sort_order>
|
250 |
-
<show_in_default>1</show_in_default>
|
251 |
-
<show_in_website>1</show_in_website>
|
252 |
-
<show_in_store>1</show_in_store>
|
253 |
-
<validate>validate-number</validate>
|
254 |
-
</quickcost_marge>
|
255 |
-
<quickcost_marge_type translate="label">
|
256 |
-
<label>Type value to add</label>
|
257 |
-
<frontend_type>select</frontend_type>
|
258 |
-
<source_model>chronorelais/config_source_margetype</source_model>
|
259 |
-
<sort_order>12</sort_order>
|
260 |
-
<show_in_default>1</show_in_default>
|
261 |
-
<show_in_website>1</show_in_website>
|
262 |
-
<show_in_store>1</show_in_store>
|
263 |
-
</quickcost_marge_type>
|
264 |
-
<quickcost_url>
|
265 |
-
<label>Quickcost Url</label>
|
266 |
-
<frontend_type>text</frontend_type>
|
267 |
-
<sort_order>13</sort_order>
|
268 |
-
<show_in_default>1</show_in_default>
|
269 |
-
<show_in_website>1</show_in_website>
|
270 |
-
<show_in_store>0</show_in_store>
|
271 |
-
</quickcost_url>
|
272 |
-
<free_shipping_enable translate="label">
|
273 |
-
<label>Free Shipping on the Amount</label>
|
274 |
-
<frontend_type>select</frontend_type>
|
275 |
-
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
276 |
-
<sort_order>20</sort_order>
|
277 |
-
<show_in_default>1</show_in_default>
|
278 |
-
<show_in_website>1</show_in_website>
|
279 |
-
<show_in_store>1</show_in_store>
|
280 |
-
</free_shipping_enable>
|
281 |
-
<free_shipping_subtotal translate="label">
|
282 |
-
<label>Minimum Amount for Free Shipping</label>
|
283 |
-
<frontend_type>text</frontend_type>
|
284 |
-
<sort_order>30</sort_order>
|
285 |
-
<show_in_default>1</show_in_default>
|
286 |
-
<show_in_website>1</show_in_website>
|
287 |
-
<show_in_store>0</show_in_store>
|
288 |
-
</free_shipping_subtotal>
|
289 |
-
<application_fee translate="label">
|
290 |
-
<label>Application Fee</label>
|
291 |
-
<frontend_type>text</frontend_type>
|
292 |
-
<sort_order>40</sort_order>
|
293 |
-
<show_in_default>1</show_in_default>
|
294 |
-
<show_in_website>1</show_in_website>
|
295 |
-
<show_in_store>1</show_in_store>
|
296 |
-
</application_fee>
|
297 |
-
<handling_fee translate="label">
|
298 |
-
<label>Handling Fee</label>
|
299 |
-
<frontend_type>text</frontend_type>
|
300 |
-
<sort_order>50</sort_order>
|
301 |
-
<show_in_default>1</show_in_default>
|
302 |
-
<show_in_website>1</show_in_website>
|
303 |
-
<show_in_store>1</show_in_store>
|
304 |
-
</handling_fee>
|
305 |
-
<logo_url>
|
306 |
-
<label>Logo Url</label>
|
307 |
-
<frontend_type>text</frontend_type>
|
308 |
-
<comment>{logo_ulr_help}</comment>
|
309 |
-
<sort_order>60</sort_order>
|
310 |
-
<show_in_default>1</show_in_default>
|
311 |
-
<show_in_website>1</show_in_website>
|
312 |
-
<show_in_store>1</show_in_store>
|
313 |
-
</logo_url>
|
314 |
-
<debug>
|
315 |
-
<label>Debug</label>
|
316 |
-
<comment>{debug_help}</comment>
|
317 |
-
<frontend_type>text</frontend_type>
|
318 |
-
<sort_order>70</sort_order>
|
319 |
-
<show_in_default>1</show_in_default>
|
320 |
-
<show_in_website>1</show_in_website>
|
321 |
-
<show_in_store>1</show_in_store>
|
322 |
-
</debug>
|
323 |
-
<!--<stop_to_first_match translate="label">
|
324 |
-
<label>Stop to first match</label>
|
325 |
-
<frontend_type>select</frontend_type>
|
326 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
327 |
-
<sort_order>80</sort_order>
|
328 |
-
<show_in_default>1</show_in_default>
|
329 |
-
<show_in_website>1</show_in_website>
|
330 |
-
<show_in_store>1</show_in_store>
|
331 |
-
</stop_to_first_match>-->
|
332 |
-
<!-- deliver_on_saturday not included in chronoexpress only -->
|
333 |
-
<!--<showmethod translate="label">
|
334 |
-
<label>Show Method if Not Applicable</label>
|
335 |
-
<frontend_type>select</frontend_type>
|
336 |
-
<sort_order>90</sort_order>
|
337 |
-
<frontend_class>shipping-skip-hide</frontend_class>
|
338 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
339 |
-
<show_in_default>1</show_in_default>
|
340 |
-
<show_in_website>1</show_in_website>
|
341 |
-
<show_in_store>0</show_in_store>
|
342 |
-
</showmethod>
|
343 |
-
<specificerrmsg translate="label">
|
344 |
-
<label>Displayed Error Message</label>
|
345 |
-
<frontend_type>textarea</frontend_type>
|
346 |
-
<sort_order>100</sort_order>
|
347 |
-
<show_in_default>1</show_in_default>
|
348 |
-
<show_in_website>1</show_in_website>
|
349 |
-
<show_in_store>1</show_in_store>
|
350 |
-
</specificerrmsg>-->
|
351 |
-
<sort_order translate="label">
|
352 |
-
<label>Sort order</label>
|
353 |
-
<frontend_type>text</frontend_type>
|
354 |
-
<sort_order>120</sort_order>
|
355 |
-
<show_in_default>1</show_in_default>
|
356 |
-
<show_in_website>1</show_in_website>
|
357 |
-
<show_in_store>1</show_in_store>
|
358 |
-
</sort_order>
|
359 |
-
</fields>
|
360 |
-
</chronoexpress>
|
361 |
-
|
362 |
-
<chronorelais translate="label">
|
363 |
-
<label>Chrono Relais</label>
|
364 |
-
<frontend_type>text</frontend_type>
|
365 |
-
<sort_order>22</sort_order>
|
366 |
-
<show_in_default>1</show_in_default>
|
367 |
-
<show_in_website>1</show_in_website>
|
368 |
-
<show_in_store>1</show_in_store>
|
369 |
-
<fields>
|
370 |
-
<active translate="label">
|
371 |
-
<label>Enabled</label>
|
372 |
-
<frontend_type>select</frontend_type>
|
373 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
374 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
375 |
-
<sort_order>1</sort_order>
|
376 |
-
<show_in_default>1</show_in_default>
|
377 |
-
<show_in_website>1</show_in_website>
|
378 |
-
<show_in_store>1</show_in_store>
|
379 |
-
</active>
|
380 |
-
<title translate="label">
|
381 |
-
<label>Title</label>
|
382 |
-
<frontend_type>text</frontend_type>
|
383 |
-
<sort_order>2</sort_order>
|
384 |
-
<show_in_default>1</show_in_default>
|
385 |
-
<show_in_website>1</show_in_website>
|
386 |
-
<show_in_store>1</show_in_store>
|
387 |
-
</title>
|
388 |
-
<config translate="label">
|
389 |
-
<label>Configuration</label>
|
390 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
391 |
-
<comment>{configuration_syntax_help}</comment>
|
392 |
-
<frontend_type>textarea</frontend_type>
|
393 |
-
<sort_order>3</sort_order>
|
394 |
-
<show_in_default>1</show_in_default>
|
395 |
-
<show_in_website>1</show_in_website>
|
396 |
-
<show_in_store>1</show_in_store>
|
397 |
-
</config>
|
398 |
-
<weight_limit translate="label">
|
399 |
-
<label>Weight Limit</label>
|
400 |
-
<frontend_type>text</frontend_type>
|
401 |
-
<comment>in Kg</comment>
|
402 |
-
<sort_order>7</sort_order>
|
403 |
-
<show_in_default>1</show_in_default>
|
404 |
-
<show_in_website>1</show_in_website>
|
405 |
-
<show_in_store>1</show_in_store>
|
406 |
-
</weight_limit>
|
407 |
-
<quickcost translate="label">
|
408 |
-
<label>Quickcost</label>
|
409 |
-
<frontend_type>select</frontend_type>
|
410 |
-
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
411 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
412 |
-
<sort_order>10</sort_order>
|
413 |
-
<show_in_default>1</show_in_default>
|
414 |
-
<show_in_website>1</show_in_website>
|
415 |
-
<show_in_store>0</show_in_store>
|
416 |
-
</quickcost>
|
417 |
-
<quickcost_marge translate="label">
|
418 |
-
<label>Value to add to quickcost</label>
|
419 |
-
<frontend_type>text</frontend_type>
|
420 |
-
<sort_order>11</sort_order>
|
421 |
-
<show_in_default>1</show_in_default>
|
422 |
-
<show_in_website>1</show_in_website>
|
423 |
-
<show_in_store>1</show_in_store>
|
424 |
-
<validate>validate-number</validate>
|
425 |
-
</quickcost_marge>
|
426 |
-
<quickcost_marge_type translate="label">
|
427 |
-
<label>Type value to add</label>
|
428 |
-
<frontend_type>select</frontend_type>
|
429 |
-
<source_model>chronorelais/config_source_margetype</source_model>
|
430 |
-
<sort_order>12</sort_order>
|
431 |
-
<show_in_default>1</show_in_default>
|
432 |
-
<show_in_website>1</show_in_website>
|
433 |
-
<show_in_store>1</show_in_store>
|
434 |
-
</quickcost_marge_type>
|
435 |
-
<quickcost_url>
|
436 |
-
<label>Quickcost Url</label>
|
437 |
-
<frontend_type>text</frontend_type>
|
438 |
-
<sort_order>13</sort_order>
|
439 |
-
<show_in_default>1</show_in_default>
|
440 |
-
<show_in_website>1</show_in_website>
|
441 |
-
<show_in_store>0</show_in_store>
|
442 |
-
</quickcost_url>
|
443 |
-
<show_google_map translate="label">
|
444 |
-
<label>Show Google Map</label>
|
445 |
-
<frontend_type>select</frontend_type>
|
446 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
447 |
-
<sort_order>20</sort_order>
|
448 |
-
<show_in_default>1</show_in_default>
|
449 |
-
<show_in_website>1</show_in_website>
|
450 |
-
<show_in_store>1</show_in_store>
|
451 |
-
</show_google_map>
|
452 |
-
<max_distance_search translate="label">
|
453 |
-
<label>Max distance search</label>
|
454 |
-
<frontend_type>text</frontend_type>
|
455 |
-
<sort_order>30</sort_order>
|
456 |
-
<show_in_default>1</show_in_default>
|
457 |
-
<show_in_website>1</show_in_website>
|
458 |
-
<show_in_store>0</show_in_store>
|
459 |
-
</max_distance_search>
|
460 |
-
<free_shipping_enable translate="label">
|
461 |
-
<label>Free Shipping with Minimum Order Amount</label>
|
462 |
-
<frontend_type>select</frontend_type>
|
463 |
-
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
464 |
-
<sort_order>40</sort_order>
|
465 |
-
<show_in_default>1</show_in_default>
|
466 |
-
<show_in_website>1</show_in_website>
|
467 |
-
<show_in_store>1</show_in_store>
|
468 |
-
</free_shipping_enable>
|
469 |
-
<free_shipping_subtotal translate="label">
|
470 |
-
<label>Minimum Order Amount for Free Shipping</label>
|
471 |
-
<frontend_type>text</frontend_type>
|
472 |
-
<sort_order>50</sort_order>
|
473 |
-
<show_in_default>1</show_in_default>
|
474 |
-
<show_in_website>1</show_in_website>
|
475 |
-
<show_in_store>1</show_in_store>
|
476 |
-
</free_shipping_subtotal>
|
477 |
-
<application_fee translate="label">
|
478 |
-
<label>Application Fee</label>
|
479 |
-
<frontend_type>text</frontend_type>
|
480 |
-
<sort_order>60</sort_order>
|
481 |
-
<show_in_default>1</show_in_default>
|
482 |
-
<show_in_website>1</show_in_website>
|
483 |
-
<show_in_store>1</show_in_store>
|
484 |
-
</application_fee>
|
485 |
-
<handling_fee translate="label">
|
486 |
-
<label>Handling Fee</label>
|
487 |
-
<frontend_type>text</frontend_type>
|
488 |
-
<sort_order>70</sort_order>
|
489 |
-
<show_in_default>1</show_in_default>
|
490 |
-
<show_in_website>1</show_in_website>
|
491 |
-
<show_in_store>1</show_in_store>
|
492 |
-
</handling_fee>
|
493 |
-
<logo_url>
|
494 |
-
<label>Logo Url</label>
|
495 |
-
<frontend_type>text</frontend_type>
|
496 |
-
<comment>{logo_ulr_help}</comment>
|
497 |
-
<sort_order>80</sort_order>
|
498 |
-
<show_in_default>1</show_in_default>
|
499 |
-
<show_in_website>1</show_in_website>
|
500 |
-
<show_in_store>1</show_in_store>
|
501 |
-
</logo_url>
|
502 |
-
<debug>
|
503 |
-
<label>Debug</label>
|
504 |
-
<comment>{debug_help}</comment>
|
505 |
-
<frontend_type>text</frontend_type>
|
506 |
-
<sort_order>90</sort_order>
|
507 |
-
<show_in_default>1</show_in_default>
|
508 |
-
<show_in_website>1</show_in_website>
|
509 |
-
<show_in_store>1</show_in_store>
|
510 |
-
</debug>
|
511 |
-
<!--<stop_to_first_match translate="label">
|
512 |
-
<label>Stop to first match</label>
|
513 |
-
<frontend_type>select</frontend_type>
|
514 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
515 |
-
<sort_order>100</sort_order>
|
516 |
-
<show_in_default>1</show_in_default>
|
517 |
-
<show_in_website>1</show_in_website>
|
518 |
-
<show_in_store>1</show_in_store>
|
519 |
-
</stop_to_first_match>-->
|
520 |
-
<deliver_on_saturday translate="label comment">
|
521 |
-
<label>Livraison le Samedi</label>
|
522 |
-
<frontend_type>select</frontend_type>
|
523 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
524 |
-
<sort_order>110</sort_order>
|
525 |
-
<show_in_default>1</show_in_default>
|
526 |
-
<show_in_website>1</show_in_website>
|
527 |
-
<show_in_store>1</show_in_store>
|
528 |
-
</deliver_on_saturday>
|
529 |
-
<!--<showmethod translate="label">
|
530 |
-
<label>Show Method if Not Applicable</label>
|
531 |
-
<frontend_type>select</frontend_type>
|
532 |
-
<sort_order>120</sort_order>
|
533 |
-
<frontend_class>shipping-skip-hide</frontend_class>
|
534 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
535 |
-
<show_in_default>1</show_in_default>
|
536 |
-
<show_in_website>1</show_in_website>
|
537 |
-
<show_in_store>0</show_in_store>
|
538 |
-
</showmethod>
|
539 |
-
<specificerrmsg translate="label">
|
540 |
-
<label>Displayed Error Message</label>
|
541 |
-
<frontend_type>textarea</frontend_type>
|
542 |
-
<sort_order>130</sort_order>
|
543 |
-
<show_in_default>1</show_in_default>
|
544 |
-
<show_in_website>1</show_in_website>
|
545 |
-
<show_in_store>1</show_in_store>
|
546 |
-
</specificerrmsg>-->
|
547 |
-
<sort_order translate="label">
|
548 |
-
<label>Sort order</label>
|
549 |
-
<frontend_type>text</frontend_type>
|
550 |
-
<sort_order>140</sort_order>
|
551 |
-
<show_in_default>1</show_in_default>
|
552 |
-
<show_in_website>1</show_in_website>
|
553 |
-
<show_in_store>1</show_in_store>
|
554 |
-
</sort_order>
|
555 |
-
</fields>
|
556 |
-
</chronorelais>
|
557 |
-
|
558 |
-
<!-- C10 Livraison avant 10H -->
|
559 |
-
<chronopostc10 translate="label">
|
560 |
-
<label>Chronopost C10</label>
|
561 |
-
<frontend_type>text</frontend_type>
|
562 |
-
<sort_order>23</sort_order>
|
563 |
-
<show_in_default>1</show_in_default>
|
564 |
-
<show_in_website>1</show_in_website>
|
565 |
-
<show_in_store>1</show_in_store>
|
566 |
-
<fields>
|
567 |
-
<active translate="label">
|
568 |
-
<label>Enabled</label>
|
569 |
-
<frontend_type>select</frontend_type>
|
570 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
571 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
572 |
-
<sort_order>1</sort_order>
|
573 |
-
<show_in_default>1</show_in_default>
|
574 |
-
<show_in_website>1</show_in_website>
|
575 |
-
<show_in_store>1</show_in_store>
|
576 |
-
</active>
|
577 |
-
<title translate="label">
|
578 |
-
<label>Title</label>
|
579 |
-
<frontend_type>text</frontend_type>
|
580 |
-
<sort_order>2</sort_order>
|
581 |
-
<show_in_default>1</show_in_default>
|
582 |
-
<show_in_website>1</show_in_website>
|
583 |
-
<show_in_store>1</show_in_store>
|
584 |
-
</title>
|
585 |
-
<config translate="label">
|
586 |
-
<label>Configuration</label>
|
587 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
588 |
-
<comment>{configuration_syntax_help}</comment>
|
589 |
-
<frontend_type>textarea</frontend_type>
|
590 |
-
<sort_order>3</sort_order>
|
591 |
-
<show_in_default>1</show_in_default>
|
592 |
-
<show_in_website>1</show_in_website>
|
593 |
-
<show_in_store>1</show_in_store>
|
594 |
-
</config>
|
595 |
-
<weight_limit translate="label">
|
596 |
-
<label>Weight Limit</label>
|
597 |
-
<frontend_type>text</frontend_type>
|
598 |
-
<comment>in Kg</comment>
|
599 |
-
<sort_order>7</sort_order>
|
600 |
-
<show_in_default>1</show_in_default>
|
601 |
-
<show_in_website>1</show_in_website>
|
602 |
-
<show_in_store>1</show_in_store>
|
603 |
-
</weight_limit>
|
604 |
-
<quickcost translate="label">
|
605 |
-
<label>Quickcost</label>
|
606 |
-
<frontend_type>select</frontend_type>
|
607 |
-
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
608 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
609 |
-
<sort_order>10</sort_order>
|
610 |
-
<show_in_default>1</show_in_default>
|
611 |
-
<show_in_website>1</show_in_website>
|
612 |
-
<show_in_store>0</show_in_store>
|
613 |
-
</quickcost>
|
614 |
-
<quickcost_marge translate="label">
|
615 |
-
<label>Value to add to quickcost</label>
|
616 |
-
<frontend_type>text</frontend_type>
|
617 |
-
<sort_order>11</sort_order>
|
618 |
-
<show_in_default>1</show_in_default>
|
619 |
-
<show_in_website>1</show_in_website>
|
620 |
-
<show_in_store>1</show_in_store>
|
621 |
-
<validate>validate-number</validate>
|
622 |
-
</quickcost_marge>
|
623 |
-
<quickcost_marge_type translate="label">
|
624 |
-
<label>Type value to add</label>
|
625 |
-
<frontend_type>select</frontend_type>
|
626 |
-
<source_model>chronorelais/config_source_margetype</source_model>
|
627 |
-
<sort_order>12</sort_order>
|
628 |
-
<show_in_default>1</show_in_default>
|
629 |
-
<show_in_website>1</show_in_website>
|
630 |
-
<show_in_store>1</show_in_store>
|
631 |
-
</quickcost_marge_type>
|
632 |
-
<quickcost_url>
|
633 |
-
<label>Quickcost Url</label>
|
634 |
-
<frontend_type>text</frontend_type>
|
635 |
-
<sort_order>13</sort_order>
|
636 |
-
<show_in_default>1</show_in_default>
|
637 |
-
<show_in_website>1</show_in_website>
|
638 |
-
<show_in_store>0</show_in_store>
|
639 |
-
</quickcost_url>
|
640 |
-
<free_shipping_enable translate="label">
|
641 |
-
<label>Free Shipping on the Amount</label>
|
642 |
-
<frontend_type>select</frontend_type>
|
643 |
-
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
644 |
-
<sort_order>20</sort_order>
|
645 |
-
<show_in_default>1</show_in_default>
|
646 |
-
<show_in_website>1</show_in_website>
|
647 |
-
<show_in_store>1</show_in_store>
|
648 |
-
</free_shipping_enable>
|
649 |
-
<free_shipping_subtotal translate="label">
|
650 |
-
<label>Minimum Amount for Free Shipping</label>
|
651 |
-
<frontend_type>text</frontend_type>
|
652 |
-
<sort_order>30</sort_order>
|
653 |
-
<show_in_default>1</show_in_default>
|
654 |
-
<show_in_website>1</show_in_website>
|
655 |
-
<show_in_store>0</show_in_store>
|
656 |
-
</free_shipping_subtotal>
|
657 |
-
<application_fee translate="label">
|
658 |
-
<label>Application Fee</label>
|
659 |
-
<frontend_type>text</frontend_type>
|
660 |
-
<sort_order>40</sort_order>
|
661 |
-
<show_in_default>1</show_in_default>
|
662 |
-
<show_in_website>1</show_in_website>
|
663 |
-
<show_in_store>1</show_in_store>
|
664 |
-
</application_fee>
|
665 |
-
<handling_fee translate="label">
|
666 |
-
<label>Handling Fee</label>
|
667 |
-
<frontend_type>text</frontend_type>
|
668 |
-
<sort_order>50</sort_order>
|
669 |
-
<show_in_default>1</show_in_default>
|
670 |
-
<show_in_website>1</show_in_website>
|
671 |
-
<show_in_store>1</show_in_store>
|
672 |
-
</handling_fee>
|
673 |
-
<logo_url>
|
674 |
-
<label>Logo Url</label>
|
675 |
-
<frontend_type>text</frontend_type>
|
676 |
-
<comment>{logo_ulr_help}</comment>
|
677 |
-
<sort_order>60</sort_order>
|
678 |
-
<show_in_default>1</show_in_default>
|
679 |
-
<show_in_website>1</show_in_website>
|
680 |
-
<show_in_store>1</show_in_store>
|
681 |
-
</logo_url>
|
682 |
-
<debug>
|
683 |
-
<label>Debug</label>
|
684 |
-
<comment>{debug_help}</comment>
|
685 |
-
<frontend_type>text</frontend_type>
|
686 |
-
<sort_order>70</sort_order>
|
687 |
-
<show_in_default>1</show_in_default>
|
688 |
-
<show_in_website>1</show_in_website>
|
689 |
-
<show_in_store>1</show_in_store>
|
690 |
-
</debug>
|
691 |
-
<!--<stop_to_first_match translate="label">
|
692 |
-
<label>Stop to first match</label>
|
693 |
-
<frontend_type>select</frontend_type>
|
694 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
695 |
-
<sort_order>80</sort_order>
|
696 |
-
<show_in_default>1</show_in_default>
|
697 |
-
<show_in_website>1</show_in_website>
|
698 |
-
<show_in_store>1</show_in_store>
|
699 |
-
</stop_to_first_match>-->
|
700 |
-
<deliver_on_saturday translate="label comment">
|
701 |
-
<label>Livraison le Samedi</label>
|
702 |
-
<frontend_type>select</frontend_type>
|
703 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
704 |
-
<sort_order>90</sort_order>
|
705 |
-
<show_in_default>1</show_in_default>
|
706 |
-
<show_in_website>1</show_in_website>
|
707 |
-
<show_in_store>1</show_in_store>
|
708 |
-
</deliver_on_saturday>
|
709 |
-
<!--<showmethod translate="label">
|
710 |
-
<label>Show Method if Not Applicable</label>
|
711 |
-
<frontend_type>select</frontend_type>
|
712 |
-
<sort_order>100</sort_order>
|
713 |
-
<frontend_class>shipping-skip-hide</frontend_class>
|
714 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
715 |
-
<show_in_default>1</show_in_default>
|
716 |
-
<show_in_website>1</show_in_website>
|
717 |
-
<show_in_store>0</show_in_store>
|
718 |
-
</showmethod>
|
719 |
-
<specificerrmsg translate="label">
|
720 |
-
<label>Displayed Error Message</label>
|
721 |
-
<frontend_type>textarea</frontend_type>
|
722 |
-
<sort_order>110</sort_order>
|
723 |
-
<show_in_default>1</show_in_default>
|
724 |
-
<show_in_website>1</show_in_website>
|
725 |
-
<show_in_store>1</show_in_store>
|
726 |
-
</specificerrmsg>-->
|
727 |
-
<sort_order translate="label">
|
728 |
-
<label>Sort order</label>
|
729 |
-
<frontend_type>text</frontend_type>
|
730 |
-
<sort_order>120</sort_order>
|
731 |
-
<show_in_default>1</show_in_default>
|
732 |
-
<show_in_website>1</show_in_website>
|
733 |
-
<show_in_store>1</show_in_store>
|
734 |
-
</sort_order>
|
735 |
-
</fields>
|
736 |
-
</chronopostc10>
|
737 |
-
|
738 |
-
<!-- C18 Livraison avant 18H -->
|
739 |
-
<chronopostc18 translate="label">
|
740 |
-
<label>Chronopost C18</label>
|
741 |
-
<frontend_type>text</frontend_type>
|
742 |
-
<sort_order>24</sort_order>
|
743 |
-
<show_in_default>1</show_in_default>
|
744 |
-
<show_in_website>1</show_in_website>
|
745 |
-
<show_in_store>1</show_in_store>
|
746 |
-
<fields>
|
747 |
-
<active translate="label">
|
748 |
-
<label>Enabled</label>
|
749 |
-
<frontend_type>select</frontend_type>
|
750 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
751 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
752 |
-
<sort_order>1</sort_order>
|
753 |
-
<show_in_default>1</show_in_default>
|
754 |
-
<show_in_website>1</show_in_website>
|
755 |
-
<show_in_store>1</show_in_store>
|
756 |
-
</active>
|
757 |
-
<title translate="label">
|
758 |
-
<label>Title</label>
|
759 |
-
<frontend_type>text</frontend_type>
|
760 |
-
<sort_order>2</sort_order>
|
761 |
-
<show_in_default>1</show_in_default>
|
762 |
-
<show_in_website>1</show_in_website>
|
763 |
-
<show_in_store>1</show_in_store>
|
764 |
-
</title>
|
765 |
-
<config translate="label">
|
766 |
-
<label>Configuration</label>
|
767 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
768 |
-
<comment>{configuration_syntax_help}</comment>
|
769 |
-
<frontend_type>textarea</frontend_type>
|
770 |
-
<sort_order>3</sort_order>
|
771 |
-
<show_in_default>1</show_in_default>
|
772 |
-
<show_in_website>1</show_in_website>
|
773 |
-
<show_in_store>1</show_in_store>
|
774 |
-
</config>
|
775 |
-
<weight_limit translate="label">
|
776 |
-
<label>Weight Limit</label>
|
777 |
-
<frontend_type>text</frontend_type>
|
778 |
-
<comment>in Kg</comment>
|
779 |
-
<sort_order>7</sort_order>
|
780 |
-
<show_in_default>1</show_in_default>
|
781 |
-
<show_in_website>1</show_in_website>
|
782 |
-
<show_in_store>1</show_in_store>
|
783 |
-
</weight_limit>
|
784 |
-
<quickcost translate="label">
|
785 |
-
<label>Quickcost</label>
|
786 |
-
<frontend_type>select</frontend_type>
|
787 |
-
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
788 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
789 |
-
<sort_order>10</sort_order>
|
790 |
-
<show_in_default>0</show_in_default>
|
791 |
-
<show_in_website>0</show_in_website>
|
792 |
-
<show_in_store>0</show_in_store>
|
793 |
-
</quickcost>
|
794 |
-
<quickcost_marge translate="label">
|
795 |
-
<label>Value to add to quickcost</label>
|
796 |
-
<frontend_type>text</frontend_type>
|
797 |
-
<sort_order>11</sort_order>
|
798 |
-
<show_in_default>1</show_in_default>
|
799 |
-
<show_in_website>1</show_in_website>
|
800 |
-
<show_in_store>1</show_in_store>
|
801 |
-
<validate>validate-number</validate>
|
802 |
-
</quickcost_marge>
|
803 |
-
<quickcost_marge_type translate="label">
|
804 |
-
<label>Type value to add</label>
|
805 |
-
<frontend_type>select</frontend_type>
|
806 |
-
<source_model>chronorelais/config_source_margetype</source_model>
|
807 |
-
<sort_order>12</sort_order>
|
808 |
-
<show_in_default>1</show_in_default>
|
809 |
-
<show_in_website>1</show_in_website>
|
810 |
-
<show_in_store>1</show_in_store>
|
811 |
-
</quickcost_marge_type>
|
812 |
-
<quickcost_url>
|
813 |
-
<label>Quickcost Url</label>
|
814 |
-
<frontend_type>text</frontend_type>
|
815 |
-
<sort_order>13</sort_order>
|
816 |
-
<show_in_default>0</show_in_default>
|
817 |
-
<show_in_website>0</show_in_website>
|
818 |
-
<show_in_store>0</show_in_store>
|
819 |
-
</quickcost_url>
|
820 |
-
<free_shipping_enable translate="label">
|
821 |
-
<label>Free Shipping on the Amount</label>
|
822 |
-
<frontend_type>select</frontend_type>
|
823 |
-
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
824 |
-
<sort_order>20</sort_order>
|
825 |
-
<show_in_default>1</show_in_default>
|
826 |
-
<show_in_website>1</show_in_website>
|
827 |
-
<show_in_store>1</show_in_store>
|
828 |
-
</free_shipping_enable>
|
829 |
-
<free_shipping_subtotal translate="label">
|
830 |
-
<label>Minimum Amount for Free Shipping</label>
|
831 |
-
<frontend_type>text</frontend_type>
|
832 |
-
<sort_order>30</sort_order>
|
833 |
-
<show_in_default>1</show_in_default>
|
834 |
-
<show_in_website>1</show_in_website>
|
835 |
-
<show_in_store>0</show_in_store>
|
836 |
-
</free_shipping_subtotal>
|
837 |
-
<application_fee translate="label">
|
838 |
-
<label>Application Fee</label>
|
839 |
-
<frontend_type>text</frontend_type>
|
840 |
-
<sort_order>40</sort_order>
|
841 |
-
<show_in_default>1</show_in_default>
|
842 |
-
<show_in_website>1</show_in_website>
|
843 |
-
<show_in_store>1</show_in_store>
|
844 |
-
</application_fee>
|
845 |
-
<handling_fee translate="label">
|
846 |
-
<label>Handling Fee</label>
|
847 |
-
<frontend_type>text</frontend_type>
|
848 |
-
<sort_order>50</sort_order>
|
849 |
-
<show_in_default>1</show_in_default>
|
850 |
-
<show_in_website>1</show_in_website>
|
851 |
-
<show_in_store>1</show_in_store>
|
852 |
-
</handling_fee>
|
853 |
-
<logo_url>
|
854 |
-
<label>Logo Url</label>
|
855 |
-
<frontend_type>text</frontend_type>
|
856 |
-
<comment>{logo_ulr_help}</comment>
|
857 |
-
<sort_order>60</sort_order>
|
858 |
-
<show_in_default>1</show_in_default>
|
859 |
-
<show_in_website>1</show_in_website>
|
860 |
-
<show_in_store>1</show_in_store>
|
861 |
-
</logo_url>
|
862 |
-
<debug>
|
863 |
-
<label>Debug</label>
|
864 |
-
<comment>{debug_help}</comment>
|
865 |
-
<frontend_type>text</frontend_type>
|
866 |
-
<sort_order>70</sort_order>
|
867 |
-
<show_in_default>1</show_in_default>
|
868 |
-
<show_in_website>1</show_in_website>
|
869 |
-
<show_in_store>1</show_in_store>
|
870 |
-
</debug>
|
871 |
-
<!--<stop_to_first_match translate="label">
|
872 |
-
<label>Stop to first match</label>
|
873 |
-
<frontend_type>select</frontend_type>
|
874 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
875 |
-
<sort_order>80</sort_order>
|
876 |
-
<show_in_default>1</show_in_default>
|
877 |
-
<show_in_website>1</show_in_website>
|
878 |
-
<show_in_store>1</show_in_store>
|
879 |
-
</stop_to_first_match>-->
|
880 |
-
<deliver_on_saturday translate="label comment">
|
881 |
-
<label>Livraison le Samedi</label>
|
882 |
-
<frontend_type>select</frontend_type>
|
883 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
884 |
-
<sort_order>90</sort_order>
|
885 |
-
<show_in_default>1</show_in_default>
|
886 |
-
<show_in_website>1</show_in_website>
|
887 |
-
<show_in_store>1</show_in_store>
|
888 |
-
</deliver_on_saturday>
|
889 |
-
<!--<showmethod translate="label">
|
890 |
-
<label>Show Method if Not Applicable</label>
|
891 |
-
<frontend_type>select</frontend_type>
|
892 |
-
<sort_order>100</sort_order>
|
893 |
-
<frontend_class>shipping-skip-hide</frontend_class>
|
894 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
895 |
-
<show_in_default>1</show_in_default>
|
896 |
-
<show_in_website>1</show_in_website>
|
897 |
-
<show_in_store>0</show_in_store>
|
898 |
-
</showmethod>
|
899 |
-
<specificerrmsg translate="label">
|
900 |
-
<label>Displayed Error Message</label>
|
901 |
-
<frontend_type>textarea</frontend_type>
|
902 |
-
<sort_order>110</sort_order>
|
903 |
-
<show_in_default>1</show_in_default>
|
904 |
-
<show_in_website>1</show_in_website>
|
905 |
-
<show_in_store>1</show_in_store>
|
906 |
-
</specificerrmsg>-->
|
907 |
-
<sort_order translate="label">
|
908 |
-
<label>Sort order</label>
|
909 |
-
<frontend_type>text</frontend_type>
|
910 |
-
<sort_order>120</sort_order>
|
911 |
-
<show_in_default>1</show_in_default>
|
912 |
-
<show_in_website>1</show_in_website>
|
913 |
-
<show_in_store>1</show_in_store>
|
914 |
-
</sort_order>
|
915 |
-
</fields>
|
916 |
-
</chronopostc18>
|
917 |
-
|
918 |
-
<!-- CClassic Livraison dans certaines villes Européennes -->
|
919 |
-
<chronopostcclassic translate="label">
|
920 |
-
<label>Chronopost CClassic</label>
|
921 |
-
<frontend_type>text</frontend_type>
|
922 |
-
<sort_order>25</sort_order>
|
923 |
-
<show_in_default>1</show_in_default>
|
924 |
-
<show_in_website>1</show_in_website>
|
925 |
-
<show_in_store>1</show_in_store>
|
926 |
-
<fields>
|
927 |
-
<active translate="label">
|
928 |
-
<label>Enabled</label>
|
929 |
-
<frontend_type>select</frontend_type>
|
930 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
931 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
932 |
-
<sort_order>1</sort_order>
|
933 |
-
<show_in_default>1</show_in_default>
|
934 |
-
<show_in_website>1</show_in_website>
|
935 |
-
<show_in_store>1</show_in_store>
|
936 |
-
</active>
|
937 |
-
<title translate="label">
|
938 |
-
<label>Title</label>
|
939 |
-
<frontend_type>text</frontend_type>
|
940 |
-
<sort_order>2</sort_order>
|
941 |
-
<show_in_default>1</show_in_default>
|
942 |
-
<show_in_website>1</show_in_website>
|
943 |
-
<show_in_store>1</show_in_store>
|
944 |
-
</title>
|
945 |
-
<config translate="label">
|
946 |
-
<label>Configuration</label>
|
947 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
948 |
-
<comment>{configuration_syntax_help}</comment>
|
949 |
-
<frontend_type>textarea</frontend_type>
|
950 |
-
<sort_order>3</sort_order>
|
951 |
-
<show_in_default>1</show_in_default>
|
952 |
-
<show_in_website>1</show_in_website>
|
953 |
-
<show_in_store>1</show_in_store>
|
954 |
-
</config>
|
955 |
-
<weight_limit translate="label">
|
956 |
-
<label>Weight Limit</label>
|
957 |
-
<frontend_type>text</frontend_type>
|
958 |
-
<comment>in Kg</comment>
|
959 |
-
<sort_order>7</sort_order>
|
960 |
-
<show_in_default>1</show_in_default>
|
961 |
-
<show_in_website>1</show_in_website>
|
962 |
-
<show_in_store>1</show_in_store>
|
963 |
-
</weight_limit>
|
964 |
-
<quickcost translate="label">
|
965 |
-
<label>Quickcost</label>
|
966 |
-
<frontend_type>select</frontend_type>
|
967 |
-
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
968 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
969 |
-
<sort_order>10</sort_order>
|
970 |
-
<show_in_default>1</show_in_default>
|
971 |
-
<show_in_website>1</show_in_website>
|
972 |
-
<show_in_store>0</show_in_store>
|
973 |
-
</quickcost>
|
974 |
-
<quickcost_marge translate="label">
|
975 |
-
<label>Value to add to quickcost</label>
|
976 |
-
<frontend_type>text</frontend_type>
|
977 |
-
<sort_order>11</sort_order>
|
978 |
-
<show_in_default>1</show_in_default>
|
979 |
-
<show_in_website>1</show_in_website>
|
980 |
-
<show_in_store>1</show_in_store>
|
981 |
-
<validate>validate-number</validate>
|
982 |
-
</quickcost_marge>
|
983 |
-
<quickcost_marge_type translate="label">
|
984 |
-
<label>Type value to add</label>
|
985 |
-
<frontend_type>select</frontend_type>
|
986 |
-
<source_model>chronorelais/config_source_margetype</source_model>
|
987 |
-
<sort_order>12</sort_order>
|
988 |
-
<show_in_default>1</show_in_default>
|
989 |
-
<show_in_website>1</show_in_website>
|
990 |
-
<show_in_store>1</show_in_store>
|
991 |
-
</quickcost_marge_type>
|
992 |
-
<quickcost_url>
|
993 |
-
<label>Quickcost Url</label>
|
994 |
-
<frontend_type>text</frontend_type>
|
995 |
-
<sort_order>13</sort_order>
|
996 |
-
<show_in_default>1</show_in_default>
|
997 |
-
<show_in_website>1</show_in_website>
|
998 |
-
<show_in_store>0</show_in_store>
|
999 |
-
</quickcost_url>
|
1000 |
-
<free_shipping_enable translate="label">
|
1001 |
-
<label>Free Shipping on the Amount</label>
|
1002 |
-
<frontend_type>select</frontend_type>
|
1003 |
-
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
1004 |
-
<sort_order>20</sort_order>
|
1005 |
-
<show_in_default>1</show_in_default>
|
1006 |
-
<show_in_website>1</show_in_website>
|
1007 |
-
<show_in_store>1</show_in_store>
|
1008 |
-
</free_shipping_enable>
|
1009 |
-
<free_shipping_subtotal translate="label">
|
1010 |
-
<label>Minimum Amount for Free Shipping</label>
|
1011 |
-
<frontend_type>text</frontend_type>
|
1012 |
-
<sort_order>30</sort_order>
|
1013 |
-
<show_in_default>1</show_in_default>
|
1014 |
-
<show_in_website>1</show_in_website>
|
1015 |
-
<show_in_store>0</show_in_store>
|
1016 |
-
</free_shipping_subtotal>
|
1017 |
-
<application_fee translate="label">
|
1018 |
-
<label>Application Fee</label>
|
1019 |
-
<frontend_type>text</frontend_type>
|
1020 |
-
<sort_order>40</sort_order>
|
1021 |
-
<show_in_default>1</show_in_default>
|
1022 |
-
<show_in_website>1</show_in_website>
|
1023 |
-
<show_in_store>1</show_in_store>
|
1024 |
-
</application_fee>
|
1025 |
-
<handling_fee translate="label">
|
1026 |
-
<label>Handling Fee</label>
|
1027 |
-
<frontend_type>text</frontend_type>
|
1028 |
-
<sort_order>50</sort_order>
|
1029 |
-
<show_in_default>1</show_in_default>
|
1030 |
-
<show_in_website>1</show_in_website>
|
1031 |
-
<show_in_store>1</show_in_store>
|
1032 |
-
</handling_fee>
|
1033 |
-
<logo_url>
|
1034 |
-
<label>Logo Url</label>
|
1035 |
-
<frontend_type>text</frontend_type>
|
1036 |
-
<comment>{logo_ulr_help}</comment>
|
1037 |
-
<sort_order>60</sort_order>
|
1038 |
-
<show_in_default>1</show_in_default>
|
1039 |
-
<show_in_website>1</show_in_website>
|
1040 |
-
<show_in_store>1</show_in_store>
|
1041 |
-
</logo_url>
|
1042 |
-
<debug>
|
1043 |
-
<label>Debug</label>
|
1044 |
-
<comment>{debug_help}</comment>
|
1045 |
-
<frontend_type>text</frontend_type>
|
1046 |
-
<sort_order>70</sort_order>
|
1047 |
-
<show_in_default>1</show_in_default>
|
1048 |
-
<show_in_website>1</show_in_website>
|
1049 |
-
<show_in_store>1</show_in_store>
|
1050 |
-
</debug>
|
1051 |
-
<!--<stop_to_first_match translate="label">
|
1052 |
-
<label>Stop to first match</label>
|
1053 |
-
<frontend_type>select</frontend_type>
|
1054 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1055 |
-
<sort_order>80</sort_order>
|
1056 |
-
<show_in_default>1</show_in_default>
|
1057 |
-
<show_in_website>1</show_in_website>
|
1058 |
-
<show_in_store>1</show_in_store>
|
1059 |
-
</stop_to_first_match>-->
|
1060 |
-
<deliver_on_saturday translate="label comment">
|
1061 |
-
<label>Livraison le Samedi</label>
|
1062 |
-
<frontend_type>select</frontend_type>
|
1063 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1064 |
-
<sort_order>90</sort_order>
|
1065 |
-
<show_in_default>1</show_in_default>
|
1066 |
-
<show_in_website>1</show_in_website>
|
1067 |
-
<show_in_store>1</show_in_store>
|
1068 |
-
</deliver_on_saturday>
|
1069 |
-
<!--<showmethod translate="label">
|
1070 |
-
<label>Show Method if Not Applicable</label>
|
1071 |
-
<frontend_type>select</frontend_type>
|
1072 |
-
<sort_order>100</sort_order>
|
1073 |
-
<frontend_class>shipping-skip-hide</frontend_class>
|
1074 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1075 |
-
<show_in_default>1</show_in_default>
|
1076 |
-
<show_in_website>1</show_in_website>
|
1077 |
-
<show_in_store>0</show_in_store>
|
1078 |
-
</showmethod>
|
1079 |
-
<specificerrmsg translate="label">
|
1080 |
-
<label>Displayed Error Message</label>
|
1081 |
-
<frontend_type>textarea</frontend_type>
|
1082 |
-
<sort_order>110</sort_order>
|
1083 |
-
<show_in_default>1</show_in_default>
|
1084 |
-
<show_in_website>1</show_in_website>
|
1085 |
-
<show_in_store>1</show_in_store>
|
1086 |
-
</specificerrmsg>-->
|
1087 |
-
<sort_order translate="label">
|
1088 |
-
<label>Sort order</label>
|
1089 |
-
<frontend_type>text</frontend_type>
|
1090 |
-
<sort_order>120</sort_order>
|
1091 |
-
<show_in_default>1</show_in_default>
|
1092 |
-
<show_in_website>1</show_in_website>
|
1093 |
-
<show_in_store>1</show_in_store>
|
1094 |
-
</sort_order>
|
1095 |
-
</fields>
|
1096 |
-
</chronopostcclassic>
|
1097 |
-
|
1098 |
-
<chronorelaiseurope translate="label">
|
1099 |
-
<label>Chrono Relais Europe</label>
|
1100 |
-
<frontend_type>text</frontend_type>
|
1101 |
-
<sort_order>26</sort_order>
|
1102 |
-
<show_in_default>1</show_in_default>
|
1103 |
-
<show_in_website>1</show_in_website>
|
1104 |
-
<show_in_store>1</show_in_store>
|
1105 |
-
<fields>
|
1106 |
-
<active translate="label">
|
1107 |
-
<label>Enabled</label>
|
1108 |
-
<frontend_type>select</frontend_type>
|
1109 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
1110 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1111 |
-
<sort_order>1</sort_order>
|
1112 |
-
<show_in_default>1</show_in_default>
|
1113 |
-
<show_in_website>1</show_in_website>
|
1114 |
-
<show_in_store>1</show_in_store>
|
1115 |
-
</active>
|
1116 |
-
<title translate="label">
|
1117 |
-
<label>Title</label>
|
1118 |
-
<frontend_type>text</frontend_type>
|
1119 |
-
<sort_order>2</sort_order>
|
1120 |
-
<show_in_default>1</show_in_default>
|
1121 |
-
<show_in_website>1</show_in_website>
|
1122 |
-
<show_in_store>1</show_in_store>
|
1123 |
-
</title>
|
1124 |
-
<config translate="label">
|
1125 |
-
<label>Configuration</label>
|
1126 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
1127 |
-
<comment>{configuration_syntax_help}</comment>
|
1128 |
-
<frontend_type>textarea</frontend_type>
|
1129 |
-
<sort_order>3</sort_order>
|
1130 |
-
<show_in_default>1</show_in_default>
|
1131 |
-
<show_in_website>1</show_in_website>
|
1132 |
-
<show_in_store>1</show_in_store>
|
1133 |
-
</config>
|
1134 |
-
<weight_limit translate="label">
|
1135 |
-
<label>Weight Limit</label>
|
1136 |
-
<frontend_type>text</frontend_type>
|
1137 |
-
<comment>in Kg</comment>
|
1138 |
-
<sort_order>7</sort_order>
|
1139 |
-
<show_in_default>1</show_in_default>
|
1140 |
-
<show_in_website>1</show_in_website>
|
1141 |
-
<show_in_store>1</show_in_store>
|
1142 |
-
</weight_limit>
|
1143 |
-
<quickcost translate="label">
|
1144 |
-
<label>Quickcost</label>
|
1145 |
-
<frontend_type>select</frontend_type>
|
1146 |
-
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
1147 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1148 |
-
<sort_order>10</sort_order>
|
1149 |
-
<show_in_default>1</show_in_default>
|
1150 |
-
<show_in_website>1</show_in_website>
|
1151 |
-
<show_in_store>0</show_in_store>
|
1152 |
-
</quickcost>
|
1153 |
-
<quickcost_marge translate="label">
|
1154 |
-
<label>Value to add to quickcost</label>
|
1155 |
-
<frontend_type>text</frontend_type>
|
1156 |
-
<sort_order>11</sort_order>
|
1157 |
-
<show_in_default>1</show_in_default>
|
1158 |
-
<show_in_website>1</show_in_website>
|
1159 |
-
<show_in_store>1</show_in_store>
|
1160 |
-
<validate>validate-number</validate>
|
1161 |
-
</quickcost_marge>
|
1162 |
-
<quickcost_marge_type translate="label">
|
1163 |
-
<label>Type value to add</label>
|
1164 |
-
<frontend_type>select</frontend_type>
|
1165 |
-
<source_model>chronorelais/config_source_margetype</source_model>
|
1166 |
-
<sort_order>12</sort_order>
|
1167 |
-
<show_in_default>1</show_in_default>
|
1168 |
-
<show_in_website>1</show_in_website>
|
1169 |
-
<show_in_store>1</show_in_store>
|
1170 |
-
</quickcost_marge_type>
|
1171 |
-
<quickcost_url>
|
1172 |
-
<label>Quickcost Url</label>
|
1173 |
-
<frontend_type>text</frontend_type>
|
1174 |
-
<sort_order>13</sort_order>
|
1175 |
-
<show_in_default>1</show_in_default>
|
1176 |
-
<show_in_website>1</show_in_website>
|
1177 |
-
<show_in_store>0</show_in_store>
|
1178 |
-
</quickcost_url>
|
1179 |
-
<show_google_map translate="label">
|
1180 |
-
<label>Show Google Map</label>
|
1181 |
-
<frontend_type>select</frontend_type>
|
1182 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1183 |
-
<sort_order>20</sort_order>
|
1184 |
-
<show_in_default>1</show_in_default>
|
1185 |
-
<show_in_website>1</show_in_website>
|
1186 |
-
<show_in_store>1</show_in_store>
|
1187 |
-
</show_google_map>
|
1188 |
-
<max_distance_search translate="label">
|
1189 |
-
<label>Max distance search</label>
|
1190 |
-
<frontend_type>text</frontend_type>
|
1191 |
-
<sort_order>30</sort_order>
|
1192 |
-
<show_in_default>1</show_in_default>
|
1193 |
-
<show_in_website>1</show_in_website>
|
1194 |
-
<show_in_store>0</show_in_store>
|
1195 |
-
</max_distance_search>
|
1196 |
-
<free_shipping_enable translate="label">
|
1197 |
-
<label>Free Shipping with Minimum Order Amount</label>
|
1198 |
-
<frontend_type>select</frontend_type>
|
1199 |
-
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
1200 |
-
<sort_order>40</sort_order>
|
1201 |
-
<show_in_default>1</show_in_default>
|
1202 |
-
<show_in_website>1</show_in_website>
|
1203 |
-
<show_in_store>1</show_in_store>
|
1204 |
-
</free_shipping_enable>
|
1205 |
-
<free_shipping_subtotal translate="label">
|
1206 |
-
<label>Minimum Order Amount for Free Shipping</label>
|
1207 |
-
<frontend_type>text</frontend_type>
|
1208 |
-
<sort_order>50</sort_order>
|
1209 |
-
<show_in_default>1</show_in_default>
|
1210 |
-
<show_in_website>1</show_in_website>
|
1211 |
-
<show_in_store>1</show_in_store>
|
1212 |
-
</free_shipping_subtotal>
|
1213 |
-
<application_fee translate="label">
|
1214 |
-
<label>Application Fee</label>
|
1215 |
-
<frontend_type>text</frontend_type>
|
1216 |
-
<sort_order>60</sort_order>
|
1217 |
-
<show_in_default>1</show_in_default>
|
1218 |
-
<show_in_website>1</show_in_website>
|
1219 |
-
<show_in_store>1</show_in_store>
|
1220 |
-
</application_fee>
|
1221 |
-
<handling_fee translate="label">
|
1222 |
-
<label>Handling Fee</label>
|
1223 |
-
<frontend_type>text</frontend_type>
|
1224 |
-
<sort_order>70</sort_order>
|
1225 |
-
<show_in_default>1</show_in_default>
|
1226 |
-
<show_in_website>1</show_in_website>
|
1227 |
-
<show_in_store>1</show_in_store>
|
1228 |
-
</handling_fee>
|
1229 |
-
<logo_url>
|
1230 |
-
<label>Logo Url</label>
|
1231 |
-
<frontend_type>text</frontend_type>
|
1232 |
-
<comment>{logo_ulr_help}</comment>
|
1233 |
-
<sort_order>80</sort_order>
|
1234 |
-
<show_in_default>1</show_in_default>
|
1235 |
-
<show_in_website>1</show_in_website>
|
1236 |
-
<show_in_store>1</show_in_store>
|
1237 |
-
</logo_url>
|
1238 |
-
<debug>
|
1239 |
-
<label>Debug</label>
|
1240 |
-
<comment>{debug_help}</comment>
|
1241 |
-
<frontend_type>text</frontend_type>
|
1242 |
-
<sort_order>90</sort_order>
|
1243 |
-
<show_in_default>1</show_in_default>
|
1244 |
-
<show_in_website>1</show_in_website>
|
1245 |
-
<show_in_store>1</show_in_store>
|
1246 |
-
</debug>
|
1247 |
-
<sort_order translate="label">
|
1248 |
-
<label>Sort order</label>
|
1249 |
-
<frontend_type>text</frontend_type>
|
1250 |
-
<sort_order>100</sort_order>
|
1251 |
-
<show_in_default>1</show_in_default>
|
1252 |
-
<show_in_website>1</show_in_website>
|
1253 |
-
<show_in_store>1</show_in_store>
|
1254 |
-
</sort_order>
|
1255 |
-
</fields>
|
1256 |
-
</chronorelaiseurope>
|
1257 |
-
|
1258 |
-
<!--<chronorelaisdom translate="label">
|
1259 |
-
<label>Chrono Relais DOM</label>
|
1260 |
-
<frontend_type>text</frontend_type>
|
1261 |
-
<sort_order>27</sort_order>
|
1262 |
-
<show_in_default>1</show_in_default>
|
1263 |
-
<show_in_website>1</show_in_website>
|
1264 |
-
<show_in_store>1</show_in_store>
|
1265 |
-
<fields>
|
1266 |
-
<active translate="label">
|
1267 |
-
<label>Enabled</label>
|
1268 |
-
<frontend_type>select</frontend_type>
|
1269 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
1270 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1271 |
-
<sort_order>1</sort_order>
|
1272 |
-
<show_in_default>1</show_in_default>
|
1273 |
-
<show_in_website>1</show_in_website>
|
1274 |
-
<show_in_store>1</show_in_store>
|
1275 |
-
</active>
|
1276 |
-
<title translate="label">
|
1277 |
-
<label>Title</label>
|
1278 |
-
<frontend_type>text</frontend_type>
|
1279 |
-
<sort_order>2</sort_order>
|
1280 |
-
<show_in_default>1</show_in_default>
|
1281 |
-
<show_in_website>1</show_in_website>
|
1282 |
-
<show_in_store>1</show_in_store>
|
1283 |
-
</title>
|
1284 |
-
<config translate="label">
|
1285 |
-
<label>Configuration</label>
|
1286 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
1287 |
-
<comment>{configuration_syntax_help}</comment>
|
1288 |
-
<frontend_type>textarea</frontend_type>
|
1289 |
-
<sort_order>3</sort_order>
|
1290 |
-
<show_in_default>1</show_in_default>
|
1291 |
-
<show_in_website>1</show_in_website>
|
1292 |
-
<show_in_store>1</show_in_store>
|
1293 |
-
</config>
|
1294 |
-
<weight_limit translate="label">
|
1295 |
-
<label>Weight Limit</label>
|
1296 |
-
<frontend_type>text</frontend_type>
|
1297 |
-
<comment>in Kg</comment>
|
1298 |
-
<sort_order>7</sort_order>
|
1299 |
-
<show_in_default>1</show_in_default>
|
1300 |
-
<show_in_website>1</show_in_website>
|
1301 |
-
<show_in_store>1</show_in_store>
|
1302 |
-
</weight_limit>
|
1303 |
-
<quickcost translate="label">
|
1304 |
-
<label>Quickcost</label>
|
1305 |
-
<frontend_type>select</frontend_type>
|
1306 |
-
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
1307 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1308 |
-
<sort_order>10</sort_order>
|
1309 |
-
<show_in_default>1</show_in_default>
|
1310 |
-
<show_in_website>1</show_in_website>
|
1311 |
-
<show_in_store>0</show_in_store>
|
1312 |
-
</quickcost>
|
1313 |
-
<quickcost_marge translate="label">
|
1314 |
-
<label>Value to add to quickcost</label>
|
1315 |
-
<frontend_type>text</frontend_type>
|
1316 |
-
<sort_order>11</sort_order>
|
1317 |
-
<show_in_default>1</show_in_default>
|
1318 |
-
<show_in_website>1</show_in_website>
|
1319 |
-
<show_in_store>1</show_in_store>
|
1320 |
-
<validate>validate-number</validate>
|
1321 |
-
</quickcost_marge>
|
1322 |
-
<quickcost_marge_type translate="label">
|
1323 |
-
<label>Type value to add</label>
|
1324 |
-
<frontend_type>select</frontend_type>
|
1325 |
-
<source_model>chronorelais/config_source_margetype</source_model>
|
1326 |
-
<sort_order>12</sort_order>
|
1327 |
-
<show_in_default>1</show_in_default>
|
1328 |
-
<show_in_website>1</show_in_website>
|
1329 |
-
<show_in_store>1</show_in_store>
|
1330 |
-
</quickcost_marge_type>
|
1331 |
-
<quickcost_url>
|
1332 |
-
<label>Quickcost Url</label>
|
1333 |
-
<frontend_type>text</frontend_type>
|
1334 |
-
<sort_order>13</sort_order>
|
1335 |
-
<show_in_default>1</show_in_default>
|
1336 |
-
<show_in_website>1</show_in_website>
|
1337 |
-
<show_in_store>0</show_in_store>
|
1338 |
-
</quickcost_url>
|
1339 |
-
<show_google_map translate="label">
|
1340 |
-
<label>Show Google Map</label>
|
1341 |
-
<frontend_type>select</frontend_type>
|
1342 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1343 |
-
<sort_order>20</sort_order>
|
1344 |
-
<show_in_default>1</show_in_default>
|
1345 |
-
<show_in_website>1</show_in_website>
|
1346 |
-
<show_in_store>1</show_in_store>
|
1347 |
-
</show_google_map>
|
1348 |
-
<max_distance_search translate="label">
|
1349 |
-
<label>Max distance search</label>
|
1350 |
-
<frontend_type>text</frontend_type>
|
1351 |
-
<sort_order>30</sort_order>
|
1352 |
-
<show_in_default>1</show_in_default>
|
1353 |
-
<show_in_website>1</show_in_website>
|
1354 |
-
<show_in_store>0</show_in_store>
|
1355 |
-
</max_distance_search>
|
1356 |
-
<free_shipping_enable translate="label">
|
1357 |
-
<label>Free Shipping with Minimum Order Amount</label>
|
1358 |
-
<frontend_type>select</frontend_type>
|
1359 |
-
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
1360 |
-
<sort_order>40</sort_order>
|
1361 |
-
<show_in_default>1</show_in_default>
|
1362 |
-
<show_in_website>1</show_in_website>
|
1363 |
-
<show_in_store>1</show_in_store>
|
1364 |
-
</free_shipping_enable>
|
1365 |
-
<free_shipping_subtotal translate="label">
|
1366 |
-
<label>Minimum Order Amount for Free Shipping</label>
|
1367 |
-
<frontend_type>text</frontend_type>
|
1368 |
-
<sort_order>50</sort_order>
|
1369 |
-
<show_in_default>1</show_in_default>
|
1370 |
-
<show_in_website>1</show_in_website>
|
1371 |
-
<show_in_store>1</show_in_store>
|
1372 |
-
</free_shipping_subtotal>
|
1373 |
-
<application_fee translate="label">
|
1374 |
-
<label>Application Fee</label>
|
1375 |
-
<frontend_type>text</frontend_type>
|
1376 |
-
<sort_order>60</sort_order>
|
1377 |
-
<show_in_default>1</show_in_default>
|
1378 |
-
<show_in_website>1</show_in_website>
|
1379 |
-
<show_in_store>1</show_in_store>
|
1380 |
-
</application_fee>
|
1381 |
-
<handling_fee translate="label">
|
1382 |
-
<label>Handling Fee</label>
|
1383 |
-
<frontend_type>text</frontend_type>
|
1384 |
-
<sort_order>70</sort_order>
|
1385 |
-
<show_in_default>1</show_in_default>
|
1386 |
-
<show_in_website>1</show_in_website>
|
1387 |
-
<show_in_store>1</show_in_store>
|
1388 |
-
</handling_fee>
|
1389 |
-
<logo_url>
|
1390 |
-
<label>Logo Url</label>
|
1391 |
-
<frontend_type>text</frontend_type>
|
1392 |
-
<comment>{logo_ulr_help}</comment>
|
1393 |
-
<sort_order>80</sort_order>
|
1394 |
-
<show_in_default>1</show_in_default>
|
1395 |
-
<show_in_website>1</show_in_website>
|
1396 |
-
<show_in_store>1</show_in_store>
|
1397 |
-
</logo_url>
|
1398 |
-
<debug>
|
1399 |
-
<label>Debug</label>
|
1400 |
-
<comment>{debug_help}</comment>
|
1401 |
-
<frontend_type>text</frontend_type>
|
1402 |
-
<sort_order>90</sort_order>
|
1403 |
-
<show_in_default>1</show_in_default>
|
1404 |
-
<show_in_website>1</show_in_website>
|
1405 |
-
<show_in_store>1</show_in_store>
|
1406 |
-
</debug>
|
1407 |
-
<deliver_on_saturday translate="label comment">
|
1408 |
-
<label>Livraison le Samedi</label>
|
1409 |
-
<frontend_type>select</frontend_type>
|
1410 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1411 |
-
<sort_order>100</sort_order>
|
1412 |
-
<show_in_default>1</show_in_default>
|
1413 |
-
<show_in_website>1</show_in_website>
|
1414 |
-
<show_in_store>1</show_in_store>
|
1415 |
-
</deliver_on_saturday>
|
1416 |
-
<sort_order translate="label">
|
1417 |
-
<label>Sort order</label>
|
1418 |
-
<frontend_type>text</frontend_type>
|
1419 |
-
<sort_order>110</sort_order>
|
1420 |
-
<show_in_default>1</show_in_default>
|
1421 |
-
<show_in_website>1</show_in_website>
|
1422 |
-
<show_in_store>1</show_in_store>
|
1423 |
-
</sort_order>
|
1424 |
-
</fields>
|
1425 |
-
</chronorelaisdom>-->
|
1426 |
-
|
1427 |
-
<chronopostsameday translate="label">
|
1428 |
-
<label>Chronopost SAMEDAY</label>
|
1429 |
-
<frontend_type>text</frontend_type>
|
1430 |
-
<sort_order>28</sort_order>
|
1431 |
-
<show_in_default>1</show_in_default>
|
1432 |
-
<show_in_website>1</show_in_website>
|
1433 |
-
<show_in_store>1</show_in_store>
|
1434 |
-
<fields>
|
1435 |
-
<active translate="label">
|
1436 |
-
<label>Enabled</label>
|
1437 |
-
<frontend_type>select</frontend_type>
|
1438 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
1439 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1440 |
-
<sort_order>1</sort_order>
|
1441 |
-
<show_in_default>1</show_in_default>
|
1442 |
-
<show_in_website>1</show_in_website>
|
1443 |
-
<show_in_store>1</show_in_store>
|
1444 |
-
</active>
|
1445 |
-
<title translate="label">
|
1446 |
-
<label>Title</label>
|
1447 |
-
<frontend_type>text</frontend_type>
|
1448 |
-
<sort_order>2</sort_order>
|
1449 |
-
<show_in_default>1</show_in_default>
|
1450 |
-
<show_in_website>1</show_in_website>
|
1451 |
-
<show_in_store>1</show_in_store>
|
1452 |
-
</title>
|
1453 |
-
<config translate="label">
|
1454 |
-
<label>Configuration</label>
|
1455 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
1456 |
-
<comment>{configuration_syntax_help}</comment>
|
1457 |
-
<frontend_type>textarea</frontend_type>
|
1458 |
-
<sort_order>3</sort_order>
|
1459 |
-
<show_in_default>1</show_in_default>
|
1460 |
-
<show_in_website>1</show_in_website>
|
1461 |
-
<show_in_store>1</show_in_store>
|
1462 |
-
</config>
|
1463 |
-
<weight_limit translate="label">
|
1464 |
-
<label>Weight Limit</label>
|
1465 |
-
<frontend_type>text</frontend_type>
|
1466 |
-
<comment>in Kg</comment>
|
1467 |
-
<sort_order>7</sort_order>
|
1468 |
-
<show_in_default>1</show_in_default>
|
1469 |
-
<show_in_website>1</show_in_website>
|
1470 |
-
<show_in_store>1</show_in_store>
|
1471 |
-
</weight_limit>
|
1472 |
-
<quickcost translate="label">
|
1473 |
-
<label>Quickcost</label>
|
1474 |
-
<frontend_type>select</frontend_type>
|
1475 |
-
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
1476 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1477 |
-
<sort_order>10</sort_order>
|
1478 |
-
<show_in_default>1</show_in_default>
|
1479 |
-
<show_in_website>1</show_in_website>
|
1480 |
-
<show_in_store>0</show_in_store>
|
1481 |
-
</quickcost>
|
1482 |
-
<quickcost_marge translate="label">
|
1483 |
-
<label>Value to add to quickcost</label>
|
1484 |
-
<frontend_type>text</frontend_type>
|
1485 |
-
<sort_order>11</sort_order>
|
1486 |
-
<show_in_default>1</show_in_default>
|
1487 |
-
<show_in_website>1</show_in_website>
|
1488 |
-
<show_in_store>1</show_in_store>
|
1489 |
-
<validate>validate-number</validate>
|
1490 |
-
</quickcost_marge>
|
1491 |
-
<quickcost_marge_type translate="label">
|
1492 |
-
<label>Type value to add</label>
|
1493 |
-
<frontend_type>select</frontend_type>
|
1494 |
-
<source_model>chronorelais/config_source_margetype</source_model>
|
1495 |
-
<sort_order>12</sort_order>
|
1496 |
-
<show_in_default>1</show_in_default>
|
1497 |
-
<show_in_website>1</show_in_website>
|
1498 |
-
<show_in_store>1</show_in_store>
|
1499 |
-
</quickcost_marge_type>
|
1500 |
-
<quickcost_url>
|
1501 |
-
<label>Quickcost Url</label>
|
1502 |
-
<frontend_type>text</frontend_type>
|
1503 |
-
<sort_order>13</sort_order>
|
1504 |
-
<show_in_default>1</show_in_default>
|
1505 |
-
<show_in_website>1</show_in_website>
|
1506 |
-
<show_in_store>0</show_in_store>
|
1507 |
-
</quickcost_url>
|
1508 |
-
<free_shipping_enable translate="label">
|
1509 |
-
<label>Free Shipping on the Amount</label>
|
1510 |
-
<frontend_type>select</frontend_type>
|
1511 |
-
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
1512 |
-
<sort_order>20</sort_order>
|
1513 |
-
<show_in_default>1</show_in_default>
|
1514 |
-
<show_in_website>1</show_in_website>
|
1515 |
-
<show_in_store>1</show_in_store>
|
1516 |
-
</free_shipping_enable>
|
1517 |
-
<free_shipping_subtotal translate="label">
|
1518 |
-
<label>Minimum Amount for Free Shipping</label>
|
1519 |
-
<frontend_type>text</frontend_type>
|
1520 |
-
<sort_order>30</sort_order>
|
1521 |
-
<show_in_default>1</show_in_default>
|
1522 |
-
<show_in_website>1</show_in_website>
|
1523 |
-
<show_in_store>0</show_in_store>
|
1524 |
-
</free_shipping_subtotal>
|
1525 |
-
<application_fee translate="label">
|
1526 |
-
<label>Application Fee</label>
|
1527 |
-
<frontend_type>text</frontend_type>
|
1528 |
-
<sort_order>40</sort_order>
|
1529 |
-
<show_in_default>1</show_in_default>
|
1530 |
-
<show_in_website>1</show_in_website>
|
1531 |
-
<show_in_store>1</show_in_store>
|
1532 |
-
</application_fee>
|
1533 |
-
<handling_fee translate="label">
|
1534 |
-
<label>Handling Fee</label>
|
1535 |
-
<frontend_type>text</frontend_type>
|
1536 |
-
<sort_order>50</sort_order>
|
1537 |
-
<show_in_default>1</show_in_default>
|
1538 |
-
<show_in_website>1</show_in_website>
|
1539 |
-
<show_in_store>1</show_in_store>
|
1540 |
-
</handling_fee>
|
1541 |
-
<logo_url>
|
1542 |
-
<label>Logo Url</label>
|
1543 |
-
<frontend_type>text</frontend_type>
|
1544 |
-
<comment>{logo_ulr_help}</comment>
|
1545 |
-
<sort_order>60</sort_order>
|
1546 |
-
<show_in_default>1</show_in_default>
|
1547 |
-
<show_in_website>1</show_in_website>
|
1548 |
-
<show_in_store>1</show_in_store>
|
1549 |
-
</logo_url>
|
1550 |
-
<debug>
|
1551 |
-
<label>Debug</label>
|
1552 |
-
<comment>{debug_help}</comment>
|
1553 |
-
<frontend_type>text</frontend_type>
|
1554 |
-
<sort_order>70</sort_order>
|
1555 |
-
<show_in_default>1</show_in_default>
|
1556 |
-
<show_in_website>1</show_in_website>
|
1557 |
-
<show_in_store>1</show_in_store>
|
1558 |
-
</debug>
|
1559 |
-
<!--<stop_to_first_match translate="label">
|
1560 |
-
<label>Stop to first match</label>
|
1561 |
-
<frontend_type>select</frontend_type>
|
1562 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1563 |
-
<sort_order>80</sort_order>
|
1564 |
-
<show_in_default>1</show_in_default>
|
1565 |
-
<show_in_website>1</show_in_website>
|
1566 |
-
<show_in_store>1</show_in_store>
|
1567 |
-
</stop_to_first_match>-->
|
1568 |
-
<deliver_on_saturday translate="label comment">
|
1569 |
-
<label>Livraison le Samedi</label>
|
1570 |
-
<frontend_type>select</frontend_type>
|
1571 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1572 |
-
<sort_order>90</sort_order>
|
1573 |
-
<show_in_default>1</show_in_default>
|
1574 |
-
<show_in_website>1</show_in_website>
|
1575 |
-
<show_in_store>1</show_in_store>
|
1576 |
-
</deliver_on_saturday>
|
1577 |
-
<delivery_time_limit>
|
1578 |
-
<label>Disable after</label>
|
1579 |
-
<comment>The module will be disabled after the selected hour. If it is not working, check your timezone settings in General config.</comment>
|
1580 |
-
<frontend_type>select</frontend_type>
|
1581 |
-
<source_model>chronorelais/config_source_time</source_model>
|
1582 |
-
<sort_order>100</sort_order>
|
1583 |
-
<show_in_default>1</show_in_default>
|
1584 |
-
<show_in_website>1</show_in_website>
|
1585 |
-
<show_in_store>1</show_in_store>
|
1586 |
-
</delivery_time_limit>
|
1587 |
-
<!--<showmethod translate="label">
|
1588 |
-
<label>Show Method if Not Applicable</label>
|
1589 |
-
<frontend_type>select</frontend_type>
|
1590 |
-
<sort_order>100</sort_order>
|
1591 |
-
<frontend_class>shipping-skip-hide</frontend_class>
|
1592 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1593 |
-
<show_in_default>1</show_in_default>
|
1594 |
-
<show_in_website>1</show_in_website>
|
1595 |
-
<show_in_store>0</show_in_store>
|
1596 |
-
</showmethod>
|
1597 |
-
<specificerrmsg translate="label">
|
1598 |
-
<label>Displayed Error Message</label>
|
1599 |
-
<frontend_type>textarea</frontend_type>
|
1600 |
-
<sort_order>110</sort_order>
|
1601 |
-
<show_in_default>1</show_in_default>
|
1602 |
-
<show_in_website>1</show_in_website>
|
1603 |
-
<show_in_store>1</show_in_store>
|
1604 |
-
</specificerrmsg>-->
|
1605 |
-
<sort_order translate="label">
|
1606 |
-
<label>Sort order</label>
|
1607 |
-
<frontend_type>text</frontend_type>
|
1608 |
-
<sort_order>120</sort_order>
|
1609 |
-
<show_in_default>1</show_in_default>
|
1610 |
-
<show_in_website>1</show_in_website>
|
1611 |
-
<show_in_store>1</show_in_store>
|
1612 |
-
</sort_order>
|
1613 |
-
</fields>
|
1614 |
-
</chronopostsameday>
|
1615 |
-
|
1616 |
-
<chronopostsrdv translate="label">
|
1617 |
-
<label>Chronopost Sur Rendez-vous</label>
|
1618 |
-
<frontend_type>text</frontend_type>
|
1619 |
-
<sort_order>30</sort_order>
|
1620 |
-
<show_in_default>1</show_in_default>
|
1621 |
-
<show_in_website>1</show_in_website>
|
1622 |
-
<show_in_store>1</show_in_store>
|
1623 |
-
<fields>
|
1624 |
-
<active translate="label">
|
1625 |
-
<label>Enabled</label>
|
1626 |
-
<frontend_type>select</frontend_type>
|
1627 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
1628 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1629 |
-
<sort_order>1</sort_order>
|
1630 |
-
<show_in_default>1</show_in_default>
|
1631 |
-
<show_in_website>1</show_in_website>
|
1632 |
-
<show_in_store>1</show_in_store>
|
1633 |
-
</active>
|
1634 |
-
<title translate="label">
|
1635 |
-
<label>Title</label>
|
1636 |
-
<frontend_type>text</frontend_type>
|
1637 |
-
<sort_order>2</sort_order>
|
1638 |
-
<show_in_default>1</show_in_default>
|
1639 |
-
<show_in_website>1</show_in_website>
|
1640 |
-
<show_in_store>1</show_in_store>
|
1641 |
-
</title>
|
1642 |
-
<config translate="label">
|
1643 |
-
<label>Configuration</label>
|
1644 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
1645 |
-
<comment>{configuration_syntax_help}</comment>
|
1646 |
-
<frontend_type>textarea</frontend_type>
|
1647 |
-
<sort_order>3</sort_order>
|
1648 |
-
<show_in_default>1</show_in_default>
|
1649 |
-
<show_in_website>1</show_in_website>
|
1650 |
-
<show_in_store>1</show_in_store>
|
1651 |
-
</config>
|
1652 |
-
<weight_limit translate="label">
|
1653 |
-
<label>Weight Limit</label>
|
1654 |
-
<frontend_type>text</frontend_type>
|
1655 |
-
<comment>in Kg</comment>
|
1656 |
-
<sort_order>7</sort_order>
|
1657 |
-
<show_in_default>1</show_in_default>
|
1658 |
-
<show_in_website>1</show_in_website>
|
1659 |
-
<show_in_store>1</show_in_store>
|
1660 |
-
</weight_limit>
|
1661 |
-
<quickcost translate="label">
|
1662 |
-
<label>Quickcost</label>
|
1663 |
-
<frontend_type>select</frontend_type>
|
1664 |
-
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
1665 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1666 |
-
<sort_order>10</sort_order>
|
1667 |
-
<show_in_default>1</show_in_default>
|
1668 |
-
<show_in_website>1</show_in_website>
|
1669 |
-
<show_in_store>0</show_in_store>
|
1670 |
-
</quickcost>
|
1671 |
-
<quickcost_marge translate="label">
|
1672 |
-
<label>Value to add to quickcost</label>
|
1673 |
-
<frontend_type>text</frontend_type>
|
1674 |
-
<sort_order>11</sort_order>
|
1675 |
-
<show_in_default>1</show_in_default>
|
1676 |
-
<show_in_website>1</show_in_website>
|
1677 |
-
<show_in_store>1</show_in_store>
|
1678 |
-
<validate>validate-number</validate>
|
1679 |
-
</quickcost_marge>
|
1680 |
-
<quickcost_marge_type translate="label">
|
1681 |
-
<label>Type value to add</label>
|
1682 |
-
<frontend_type>select</frontend_type>
|
1683 |
-
<source_model>chronorelais/config_source_margetype</source_model>
|
1684 |
-
<sort_order>12</sort_order>
|
1685 |
-
<show_in_default>1</show_in_default>
|
1686 |
-
<show_in_website>1</show_in_website>
|
1687 |
-
<show_in_store>1</show_in_store>
|
1688 |
-
</quickcost_marge_type>
|
1689 |
-
<quickcost_url>
|
1690 |
-
<label>Quickcost Url</label>
|
1691 |
-
<frontend_type>text</frontend_type>
|
1692 |
-
<sort_order>13</sort_order>
|
1693 |
-
<show_in_default>1</show_in_default>
|
1694 |
-
<show_in_website>1</show_in_website>
|
1695 |
-
<show_in_store>0</show_in_store>
|
1696 |
-
</quickcost_url>
|
1697 |
-
<free_shipping_enable translate="label">
|
1698 |
-
<label>Free Shipping on the Amount</label>
|
1699 |
-
<frontend_type>select</frontend_type>
|
1700 |
-
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
1701 |
-
<sort_order>20</sort_order>
|
1702 |
-
<show_in_default>1</show_in_default>
|
1703 |
-
<show_in_website>1</show_in_website>
|
1704 |
-
<show_in_store>1</show_in_store>
|
1705 |
-
</free_shipping_enable>
|
1706 |
-
<free_shipping_subtotal translate="label">
|
1707 |
-
<label>Minimum Amount for Free Shipping</label>
|
1708 |
-
<frontend_type>text</frontend_type>
|
1709 |
-
<sort_order>30</sort_order>
|
1710 |
-
<show_in_default>1</show_in_default>
|
1711 |
-
<show_in_website>1</show_in_website>
|
1712 |
-
<show_in_store>0</show_in_store>
|
1713 |
-
</free_shipping_subtotal>
|
1714 |
-
<application_fee translate="label">
|
1715 |
-
<label>Application Fee</label>
|
1716 |
-
<frontend_type>text</frontend_type>
|
1717 |
-
<sort_order>40</sort_order>
|
1718 |
-
<show_in_default>1</show_in_default>
|
1719 |
-
<show_in_website>1</show_in_website>
|
1720 |
-
<show_in_store>1</show_in_store>
|
1721 |
-
</application_fee>
|
1722 |
-
<handling_fee translate="label">
|
1723 |
-
<label>Handling Fee</label>
|
1724 |
-
<frontend_type>text</frontend_type>
|
1725 |
-
<sort_order>50</sort_order>
|
1726 |
-
<show_in_default>1</show_in_default>
|
1727 |
-
<show_in_website>1</show_in_website>
|
1728 |
-
<show_in_store>1</show_in_store>
|
1729 |
-
</handling_fee>
|
1730 |
-
<rdv_config translate="label">
|
1731 |
-
<label>Configuration RDV</label>
|
1732 |
-
<frontend_type>text</frontend_type>
|
1733 |
-
<frontend_model>chronorelais/adminhtml_system_config_rdvconfig</frontend_model>
|
1734 |
-
<sort_order>55</sort_order>
|
1735 |
-
<show_in_default>1</show_in_default>
|
1736 |
-
<show_in_website>1</show_in_website>
|
1737 |
-
<show_in_store>1</show_in_store>
|
1738 |
-
</rdv_config>
|
1739 |
-
<logo_url>
|
1740 |
-
<label>Logo Url</label>
|
1741 |
-
<frontend_type>text</frontend_type>
|
1742 |
-
<comment>{logo_ulr_help}</comment>
|
1743 |
-
<sort_order>60</sort_order>
|
1744 |
-
<show_in_default>1</show_in_default>
|
1745 |
-
<show_in_website>1</show_in_website>
|
1746 |
-
<show_in_store>1</show_in_store>
|
1747 |
-
</logo_url>
|
1748 |
-
<debug>
|
1749 |
-
<label>Debug</label>
|
1750 |
-
<comment>{debug_help}</comment>
|
1751 |
-
<frontend_type>text</frontend_type>
|
1752 |
-
<sort_order>70</sort_order>
|
1753 |
-
<show_in_default>1</show_in_default>
|
1754 |
-
<show_in_website>1</show_in_website>
|
1755 |
-
<show_in_store>1</show_in_store>
|
1756 |
-
</debug>
|
1757 |
-
<!--<stop_to_first_match translate="label">
|
1758 |
-
<label>Stop to first match</label>
|
1759 |
-
<frontend_type>select</frontend_type>
|
1760 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1761 |
-
<sort_order>80</sort_order>
|
1762 |
-
<show_in_default>1</show_in_default>
|
1763 |
-
<show_in_website>1</show_in_website>
|
1764 |
-
<show_in_store>1</show_in_store>
|
1765 |
-
</stop_to_first_match>-->
|
1766 |
-
<deliver_on_saturday translate="label comment">
|
1767 |
-
<label>Livraison le Samedi</label>
|
1768 |
-
<frontend_type>select</frontend_type>
|
1769 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1770 |
-
<sort_order>90</sort_order>
|
1771 |
-
<show_in_default>1</show_in_default>
|
1772 |
-
<show_in_website>1</show_in_website>
|
1773 |
-
<show_in_store>1</show_in_store>
|
1774 |
-
</deliver_on_saturday>
|
1775 |
-
<!--<showmethod translate="label">
|
1776 |
-
<label>Show Method if Not Applicable</label>
|
1777 |
-
<frontend_type>select</frontend_type>
|
1778 |
-
<sort_order>100</sort_order>
|
1779 |
-
<frontend_class>shipping-skip-hide</frontend_class>
|
1780 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1781 |
-
<show_in_default>1</show_in_default>
|
1782 |
-
<show_in_website>1</show_in_website>
|
1783 |
-
<show_in_store>0</show_in_store>
|
1784 |
-
</showmethod>
|
1785 |
-
<specificerrmsg translate="label">
|
1786 |
-
<label>Displayed Error Message</label>
|
1787 |
-
<frontend_type>textarea</frontend_type>
|
1788 |
-
<sort_order>110</sort_order>
|
1789 |
-
<show_in_default>1</show_in_default>
|
1790 |
-
<show_in_website>1</show_in_website>
|
1791 |
-
<show_in_store>1</show_in_store>
|
1792 |
-
</specificerrmsg>-->
|
1793 |
-
<sort_order translate="label">
|
1794 |
-
<label>Sort order</label>
|
1795 |
-
<frontend_type>text</frontend_type>
|
1796 |
-
<sort_order>120</sort_order>
|
1797 |
-
<show_in_default>1</show_in_default>
|
1798 |
-
<show_in_website>1</show_in_website>
|
1799 |
-
<show_in_store>1</show_in_store>
|
1800 |
-
</sort_order>
|
1801 |
-
</fields>
|
1802 |
-
</chronopostsrdv>
|
1803 |
-
|
1804 |
-
</groups>
|
1805 |
-
</carriers>
|
1806 |
-
</sections>
|
1807 |
-
|
1808 |
-
<sections>
|
1809 |
-
<chronorelais>
|
1810 |
-
<label>Configuration</label>
|
1811 |
-
<tab>chronopost</tab>
|
1812 |
-
<frontend_type>text</frontend_type>
|
1813 |
-
<sort_order>2000</sort_order>
|
1814 |
-
<show_in_default>1</show_in_default>
|
1815 |
-
<show_in_website>1</show_in_website>
|
1816 |
-
<show_in_store>1</show_in_store>
|
1817 |
-
<groups>
|
1818 |
-
<shipping translate="label">
|
1819 |
-
<label>General</label>
|
1820 |
-
<frontend_type>text</frontend_type>
|
1821 |
-
<sort_order>10</sort_order>
|
1822 |
-
<show_in_default>1</show_in_default>
|
1823 |
-
<show_in_website>1</show_in_website>
|
1824 |
-
<show_in_store>1</show_in_store>
|
1825 |
-
<fields>
|
1826 |
-
<account_number translate="label">
|
1827 |
-
<label>N° de compte Chronopost</label>
|
1828 |
-
<frontend_type>text</frontend_type>
|
1829 |
-
<sort_order>7</sort_order>
|
1830 |
-
<show_in_default>1</show_in_default>
|
1831 |
-
<show_in_website>1</show_in_website>
|
1832 |
-
<show_in_store>1</show_in_store>
|
1833 |
-
</account_number>
|
1834 |
-
<sub_account_number translate="label">
|
1835 |
-
<label>N° de sous-compte</label>
|
1836 |
-
<comment>must be 3 digits or empty</comment>
|
1837 |
-
<frontend_type>text</frontend_type>
|
1838 |
-
<sort_order>8</sort_order>
|
1839 |
-
<show_in_default>1</show_in_default>
|
1840 |
-
<show_in_website>1</show_in_website>
|
1841 |
-
<show_in_store>1</show_in_store>
|
1842 |
-
</sub_account_number>
|
1843 |
-
<account_pass translate="label">
|
1844 |
-
<label>Mot de passe Chronopost</label>
|
1845 |
-
<frontend_type>text</frontend_type>
|
1846 |
-
<button_label>Vérifier mes identifiants</button_label>
|
1847 |
-
<frontend_model>chronorelais/adminhtml_system_config_checklogin</frontend_model>
|
1848 |
-
<sort_order>9</sort_order>
|
1849 |
-
<show_in_default>1</show_in_default>
|
1850 |
-
<show_in_website>1</show_in_website>
|
1851 |
-
<show_in_store>1</show_in_store>
|
1852 |
-
</account_pass>
|
1853 |
-
<google_map_api translate="label">
|
1854 |
-
<label>Google Map v3 API Key</label>
|
1855 |
-
<comment>The Google Maps JavaScript API Version 2 has been officially deprecated. Please use v3 API now. Get your key at https://code.google.com/apis/console/.</comment>
|
1856 |
-
<frontend_type>text</frontend_type>
|
1857 |
-
<sort_order>10</sort_order>
|
1858 |
-
<show_in_default>1</show_in_default>
|
1859 |
-
<show_in_website>1</show_in_website>
|
1860 |
-
<show_in_store>1</show_in_store>
|
1861 |
-
</google_map_api>
|
1862 |
-
<tracking_view_url translate="label">
|
1863 |
-
<label>Tracking URL</label>
|
1864 |
-
<comment>For English language, replace fr_FR with en_GB in the above url</comment>
|
1865 |
-
<frontend_type>text</frontend_type>
|
1866 |
-
<sort_order>20</sort_order>
|
1867 |
-
<show_in_default>1</show_in_default>
|
1868 |
-
<show_in_website>1</show_in_website>
|
1869 |
-
<show_in_store>1</show_in_store>
|
1870 |
-
</tracking_view_url>
|
1871 |
-
<gs_path translate="label">
|
1872 |
-
<label>Chemin GS</label>
|
1873 |
-
<comment>Chemin d'accès à la commande gs (Ghostscript)</comment>
|
1874 |
-
<frontend_type>text</frontend_type>
|
1875 |
-
<sort_order>21</sort_order>
|
1876 |
-
<show_in_default>1</show_in_default>
|
1877 |
-
<show_in_website>0</show_in_website>
|
1878 |
-
<show_in_store>0</show_in_store>
|
1879 |
-
</gs_path>
|
1880 |
-
|
1881 |
-
</fields>
|
1882 |
-
</shipping>
|
1883 |
-
<export_css translate="label">
|
1884 |
-
<label>Export Configuration CSS</label>
|
1885 |
-
<frontend_type>text</frontend_type>
|
1886 |
-
<sort_order>20</sort_order>
|
1887 |
-
<show_in_default>1</show_in_default>
|
1888 |
-
<show_in_website>1</show_in_website>
|
1889 |
-
<show_in_store>1</show_in_store>
|
1890 |
-
<fields>
|
1891 |
-
<file_extension translate="label">
|
1892 |
-
<label>File Extension</label>
|
1893 |
-
<frontend_type>select</frontend_type>
|
1894 |
-
<source_model>chronorelais/config_source_fileExtension</source_model>
|
1895 |
-
<sort_order>10</sort_order>
|
1896 |
-
<show_in_default>1</show_in_default>
|
1897 |
-
<show_in_website>1</show_in_website>
|
1898 |
-
<show_in_store>1</show_in_store>
|
1899 |
-
</file_extension>
|
1900 |
-
<file_charset translate="label">
|
1901 |
-
<label>File Charset</label>
|
1902 |
-
<frontend_type>select</frontend_type>
|
1903 |
-
<source_model>chronorelais/config_source_fileCharset</source_model>
|
1904 |
-
<sort_order>20</sort_order>
|
1905 |
-
<show_in_default>1</show_in_default>
|
1906 |
-
<show_in_website>1</show_in_website>
|
1907 |
-
<show_in_store>1</show_in_store>
|
1908 |
-
</file_charset>
|
1909 |
-
<endofline_character translate="label">
|
1910 |
-
<label>End Of Line Character</label>
|
1911 |
-
<frontend_type>select</frontend_type>
|
1912 |
-
<source_model>chronorelais/config_source_endOfLineCharacter</source_model>
|
1913 |
-
<sort_order>30</sort_order>
|
1914 |
-
<show_in_default>1</show_in_default>
|
1915 |
-
<show_in_website>1</show_in_website>
|
1916 |
-
<show_in_store>1</show_in_store>
|
1917 |
-
</endofline_character>
|
1918 |
-
<field_delimiter translate="label">
|
1919 |
-
<label>Field Delimiter</label>
|
1920 |
-
<frontend_type>select</frontend_type>
|
1921 |
-
<source_model>chronorelais/config_source_fieldDelimiter</source_model>
|
1922 |
-
<sort_order>40</sort_order>
|
1923 |
-
<show_in_default>1</show_in_default>
|
1924 |
-
<show_in_website>1</show_in_website>
|
1925 |
-
<show_in_store>1</show_in_store>
|
1926 |
-
</field_delimiter>
|
1927 |
-
<field_separator translate="label">
|
1928 |
-
<label>Field Separator</label>
|
1929 |
-
<frontend_type>select</frontend_type>
|
1930 |
-
<source_model>chronorelais/config_source_fieldSeparator</source_model>
|
1931 |
-
<sort_order>50</sort_order>
|
1932 |
-
<show_in_default>1</show_in_default>
|
1933 |
-
<show_in_website>1</show_in_website>
|
1934 |
-
<show_in_store>1</show_in_store>
|
1935 |
-
</field_separator>
|
1936 |
-
</fields>
|
1937 |
-
</export_css>
|
1938 |
-
<export_cso translate="label">
|
1939 |
-
<label>Export Configuration CSO</label>
|
1940 |
-
<frontend_type>text</frontend_type>
|
1941 |
-
<sort_order>21</sort_order>
|
1942 |
-
<show_in_default>1</show_in_default>
|
1943 |
-
<show_in_website>1</show_in_website>
|
1944 |
-
<show_in_store>1</show_in_store>
|
1945 |
-
<fields>
|
1946 |
-
<file_extension translate="label">
|
1947 |
-
<label>File Extension</label>
|
1948 |
-
<frontend_type>select</frontend_type>
|
1949 |
-
<source_model>chronorelais/config_source_fileExtension</source_model>
|
1950 |
-
<sort_order>10</sort_order>
|
1951 |
-
<show_in_default>1</show_in_default>
|
1952 |
-
<show_in_website>1</show_in_website>
|
1953 |
-
<show_in_store>1</show_in_store>
|
1954 |
-
</file_extension>
|
1955 |
-
<file_charset
|
1956 |
-
<label>File Charset</label>
|
1957 |
-
<frontend_type>select</frontend_type>
|
1958 |
-
<source_model>chronorelais/config_source_fileCharset</source_model>
|
1959 |
-
<sort_order>20</sort_order>
|
1960 |
-
<show_in_default>1</show_in_default>
|
1961 |
-
<show_in_website>1</show_in_website>
|
1962 |
-
<show_in_store>1</show_in_store>
|
1963 |
-
</file_charset>
|
1964 |
-
<endofline_character translate="label">
|
1965 |
-
<label>End Of Line Character</label>
|
1966 |
-
<frontend_type>select</frontend_type>
|
1967 |
-
<source_model>chronorelais/config_source_endOfLineCharacter</source_model>
|
1968 |
-
<sort_order>30</sort_order>
|
1969 |
-
<show_in_default>1</show_in_default>
|
1970 |
-
<show_in_website>1</show_in_website>
|
1971 |
-
<show_in_store>1</show_in_store>
|
1972 |
-
</endofline_character>
|
1973 |
-
<field_delimiter translate="label">
|
1974 |
-
<label>Field Delimiter</label>
|
1975 |
-
<frontend_type>select</frontend_type>
|
1976 |
-
<source_model>chronorelais/config_source_fieldDelimiter</source_model>
|
1977 |
-
<sort_order>40</sort_order>
|
1978 |
-
<show_in_default>1</show_in_default>
|
1979 |
-
<show_in_website>1</show_in_website>
|
1980 |
-
<show_in_store>1</show_in_store>
|
1981 |
-
</field_delimiter>
|
1982 |
-
<field_separator translate="label">
|
1983 |
-
<label>Field Separator</label>
|
1984 |
-
<frontend_type>select</frontend_type>
|
1985 |
-
<source_model>chronorelais/config_source_fieldSeparator</source_model>
|
1986 |
-
<sort_order>50</sort_order>
|
1987 |
-
<show_in_default>1</show_in_default>
|
1988 |
-
<show_in_website>1</show_in_website>
|
1989 |
-
<show_in_store>1</show_in_store>
|
1990 |
-
</field_separator>
|
1991 |
-
</fields>
|
1992 |
-
</export_cso>
|
1993 |
-
<import translate="label">
|
1994 |
-
<label>Import Configuration</label>
|
1995 |
-
<frontend_type>text</frontend_type>
|
1996 |
-
<sort_order>30</sort_order>
|
1997 |
-
<show_in_default>1</show_in_default>
|
1998 |
-
<show_in_website>1</show_in_website>
|
1999 |
-
<show_in_store>1</show_in_store>
|
2000 |
-
<fields>
|
2001 |
-
<default_tracking_title translate="label comment">
|
2002 |
-
<label>Default Tracking Title</label>
|
2003 |
-
<frontend_type>text</frontend_type>
|
2004 |
-
<sort_order>10</sort_order>
|
2005 |
-
<show_in_default>1</show_in_default>
|
2006 |
-
<show_in_website>1</show_in_website>
|
2007 |
-
<show_in_store>1</show_in_store>
|
2008 |
-
<comment>This value can be changed in the import form</comment>
|
2009 |
-
</default_tracking_title>
|
2010 |
-
<send_email translate="label comment">
|
2011 |
-
<label>Send an e-mail</label>
|
2012 |
-
<frontend_type>select</frontend_type>
|
2013 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
2014 |
-
<sort_order>20</sort_order>
|
2015 |
-
<show_in_default>1</show_in_default>
|
2016 |
-
<show_in_website>1</show_in_website>
|
2017 |
-
<show_in_store>1</show_in_store>
|
2018 |
-
<comment>Send shipping confirmation to the customer</comment>
|
2019 |
-
</send_email>
|
2020 |
-
<shipping_comment translate="label comment">
|
2021 |
-
<label>Shipping Comment</label>
|
2022 |
-
<frontend_type>text</frontend_type>
|
2023 |
-
<sort_order>30</sort_order>
|
2024 |
-
<show_in_default>1</show_in_default>
|
2025 |
-
<show_in_website>1</show_in_website>
|
2026 |
-
<show_in_store>1</show_in_store>
|
2027 |
-
<comment>Internal comment, can be left empty</comment>
|
2028 |
-
</shipping_comment>
|
2029 |
-
<include_comment translate="label comment">
|
2030 |
-
<label>Include comment into e-mail</label>
|
2031 |
-
<frontend_type>select</frontend_type>
|
2032 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
2033 |
-
<sort_order>40</sort_order>
|
2034 |
-
<show_in_default>1</show_in_default>
|
2035 |
-
<show_in_website>1</show_in_website>
|
2036 |
-
<show_in_store>1</show_in_store>
|
2037 |
-
<comment>Only applies if the shipping comment is set</comment>
|
2038 |
-
</include_comment>
|
2039 |
-
</fields>
|
2040 |
-
</import>
|
2041 |
-
|
2042 |
-
<shipperinformation translate="label">
|
2043 |
-
<label>Shipper Information for Labels printing</label>
|
2044 |
-
<frontend_type>text</frontend_type>
|
2045 |
-
<sort_order>40</sort_order>
|
2046 |
-
<show_in_default>1</show_in_default>
|
2047 |
-
<show_in_website>1</show_in_website>
|
2048 |
-
<show_in_store>1</show_in_store>
|
2049 |
-
<fields>
|
2050 |
-
<civility translate="label">
|
2051 |
-
<label>Shipper Civility</label>
|
2052 |
-
<frontend_type>select</frontend_type>
|
2053 |
-
<source_model>chronorelais/config_source_civility</source_model>
|
2054 |
-
<sort_order>10</sort_order>
|
2055 |
-
<show_in_default>1</show_in_default>
|
2056 |
-
<show_in_website>1</show_in_website>
|
2057 |
-
<show_in_store>1</show_in_store>
|
2058 |
-
</civility>
|
2059 |
-
<name translate="label comment">
|
2060 |
-
<label>Shipper Name</label>
|
2061 |
-
<frontend_type>text</frontend_type>
|
2062 |
-
<sort_order>20</sort_order>
|
2063 |
-
<show_in_default>1</show_in_default>
|
2064 |
-
<show_in_website>1</show_in_website>
|
2065 |
-
<show_in_store>1</show_in_store>
|
2066 |
-
<comment>Company name</comment>
|
2067 |
-
</name>
|
2068 |
-
<name2 translate="label comment">
|
2069 |
-
<label>Shipper Name2</label>
|
2070 |
-
<frontend_type>text</frontend_type>
|
2071 |
-
<sort_order>30</sort_order>
|
2072 |
-
<show_in_default>1</show_in_default>
|
2073 |
-
<show_in_website>1</show_in_website>
|
2074 |
-
<show_in_store>1</show_in_store>
|
2075 |
-
<comment>[Optional]</comment>
|
2076 |
-
</name2>
|
2077 |
-
<address1 translate="label">
|
2078 |
-
<label>Shipper Address1</label>
|
2079 |
-
<frontend_type>text</frontend_type>
|
2080 |
-
<sort_order>40</sort_order>
|
2081 |
-
<show_in_default>1</show_in_default>
|
2082 |
-
<show_in_website>1</show_in_website>
|
2083 |
-
<show_in_store>1</show_in_store>
|
2084 |
-
</address1>
|
2085 |
-
<address2 translate="label comment">
|
2086 |
-
<label>Shipper Address2</label>
|
2087 |
-
<frontend_type>text</frontend_type>
|
2088 |
-
<sort_order>50</sort_order>
|
2089 |
-
<show_in_default>1</show_in_default>
|
2090 |
-
<show_in_website>1</show_in_website>
|
2091 |
-
<show_in_store>1</show_in_store>
|
2092 |
-
<comment>[Optional]</comment>
|
2093 |
-
</address2>
|
2094 |
-
<zipcode translate="label">
|
2095 |
-
<label>Shipper Zipcode</label>
|
2096 |
-
<frontend_type>text</frontend_type>
|
2097 |
-
<sort_order>60</sort_order>
|
2098 |
-
<show_in_default>1</show_in_default>
|
2099 |
-
<show_in_website>1</show_in_website>
|
2100 |
-
<show_in_store>1</show_in_store>
|
2101 |
-
</zipcode>
|
2102 |
-
<city translate="label">
|
2103 |
-
<label>Shipper City</label>
|
2104 |
-
<frontend_type>text</frontend_type>
|
2105 |
-
<sort_order>70</sort_order>
|
2106 |
-
<show_in_default>1</show_in_default>
|
2107 |
-
<show_in_website>1</show_in_website>
|
2108 |
-
<show_in_store>1</show_in_store>
|
2109 |
-
</city>
|
2110 |
-
<country translate="label">
|
2111 |
-
<label>Shipper Country</label>
|
2112 |
-
<frontend_type>select</frontend_type>
|
2113 |
-
<sort_order>80</sort_order>
|
2114 |
-
<source_model>adminhtml/system_config_source_country</source_model>
|
2115 |
-
<show_in_default>1</show_in_default>
|
2116 |
-
<show_in_website>1</show_in_website>
|
2117 |
-
<show_in_store>1</show_in_store>
|
2118 |
-
</country>
|
2119 |
-
<contactname translate="label">
|
2120 |
-
<label>Shipper Contact Name</label>
|
2121 |
-
<frontend_type>text</frontend_type>
|
2122 |
-
<sort_order>90</sort_order>
|
2123 |
-
<show_in_default>1</show_in_default>
|
2124 |
-
<show_in_website>1</show_in_website>
|
2125 |
-
<show_in_store>1</show_in_store>
|
2126 |
-
</contactname>
|
2127 |
-
<email translate="label">
|
2128 |
-
<label>Shipper Email</label>
|
2129 |
-
<frontend_type>text</frontend_type>
|
2130 |
-
<sort_order>100</sort_order>
|
2131 |
-
<show_in_default>1</show_in_default>
|
2132 |
-
<show_in_website>1</show_in_website>
|
2133 |
-
<show_in_store>1</show_in_store>
|
2134 |
-
<comment>[Optional]</comment>
|
2135 |
-
</email>
|
2136 |
-
<phone translate="label comment">
|
2137 |
-
<label>Shipper Telephone</label>
|
2138 |
-
<frontend_type>text</frontend_type>
|
2139 |
-
<sort_order>110</sort_order>
|
2140 |
-
<show_in_default>1</show_in_default>
|
2141 |
-
<show_in_website>1</show_in_website>
|
2142 |
-
<show_in_store>1</show_in_store>
|
2143 |
-
<comment>[Optional]</comment>
|
2144 |
-
</phone>
|
2145 |
-
<mobilephone translate="label comment">
|
2146 |
-
<label>Shipper Mobile</label>
|
2147 |
-
<frontend_type>text</frontend_type>
|
2148 |
-
<sort_order>120</sort_order>
|
2149 |
-
<show_in_default>1</show_in_default>
|
2150 |
-
<show_in_website>1</show_in_website>
|
2151 |
-
<show_in_store>1</show_in_store>
|
2152 |
-
<comment>[Optional]</comment>
|
2153 |
-
</mobilephone>
|
2154 |
-
</fields>
|
2155 |
-
</shipperinformation>
|
2156 |
-
|
2157 |
-
<customerinformation translate="label">
|
2158 |
-
<label>Chronopost Customer Account Information for Labels printing</label>
|
2159 |
-
<frontend_type>text</frontend_type>
|
2160 |
-
<sort_order>50</sort_order>
|
2161 |
-
<show_in_default>1</show_in_default>
|
2162 |
-
<show_in_website>1</show_in_website>
|
2163 |
-
<show_in_store>1</show_in_store>
|
2164 |
-
<fields>
|
2165 |
-
<civility translate="label">
|
2166 |
-
<label>Customer Civility</label>
|
2167 |
-
<frontend_type>select</frontend_type>
|
2168 |
-
<source_model>chronorelais/config_source_civility</source_model>
|
2169 |
-
<sort_order>10</sort_order>
|
2170 |
-
<show_in_default>1</show_in_default>
|
2171 |
-
<show_in_website>1</show_in_website>
|
2172 |
-
<show_in_store>1</show_in_store>
|
2173 |
-
</civility>
|
2174 |
-
<name translate="label comment">
|
2175 |
-
<label>Customer Name </label>
|
2176 |
-
<frontend_type>text</frontend_type>
|
2177 |
-
<sort_order>20</sort_order>
|
2178 |
-
<show_in_default>1</show_in_default>
|
2179 |
-
<show_in_website>1</show_in_website>
|
2180 |
-
<show_in_store>1</show_in_store>
|
2181 |
-
<comment>Company name</comment>
|
2182 |
-
</name>
|
2183 |
-
<name2 translate="label comment">
|
2184 |
-
<label>Customer Name2</label>
|
2185 |
-
<frontend_type>text</frontend_type>
|
2186 |
-
<sort_order>30</sort_order>
|
2187 |
-
<show_in_default>1</show_in_default>
|
2188 |
-
<show_in_website>1</show_in_website>
|
2189 |
-
<show_in_store>1</show_in_store>
|
2190 |
-
<comment>[Optional]</comment>
|
2191 |
-
</name2>
|
2192 |
-
<address1 translate="label">
|
2193 |
-
<label>Customer Address1</label>
|
2194 |
-
<frontend_type>text</frontend_type>
|
2195 |
-
<sort_order>40</sort_order>
|
2196 |
-
<show_in_default>1</show_in_default>
|
2197 |
-
<show_in_website>1</show_in_website>
|
2198 |
-
<show_in_store>1</show_in_store>
|
2199 |
-
</address1>
|
2200 |
-
<address2 translate="label comment">
|
2201 |
-
<label>Customer Address2</label>
|
2202 |
-
<frontend_type>text</frontend_type>
|
2203 |
-
<sort_order>50</sort_order>
|
2204 |
-
<show_in_default>1</show_in_default>
|
2205 |
-
<show_in_website>1</show_in_website>
|
2206 |
-
<show_in_store>1</show_in_store>
|
2207 |
-
<comment>[Optional]</comment>
|
2208 |
-
</address2>
|
2209 |
-
<zipcode translate="label">
|
2210 |
-
<label>Customer Zipcode</label>
|
2211 |
-
<frontend_type>text</frontend_type>
|
2212 |
-
<sort_order>60</sort_order>
|
2213 |
-
<show_in_default>1</show_in_default>
|
2214 |
-
<show_in_website>1</show_in_website>
|
2215 |
-
<show_in_store>1</show_in_store>
|
2216 |
-
</zipcode>
|
2217 |
-
<city translate="label">
|
2218 |
-
<label>Customer City</label>
|
2219 |
-
<frontend_type>text</frontend_type>
|
2220 |
-
<sort_order>70</sort_order>
|
2221 |
-
<show_in_default>1</show_in_default>
|
2222 |
-
<show_in_website>1</show_in_website>
|
2223 |
-
<show_in_store>1</show_in_store>
|
2224 |
-
</city>
|
2225 |
-
<country translate="label">
|
2226 |
-
<label>Customer Country</label>
|
2227 |
-
<frontend_type>select</frontend_type>
|
2228 |
-
<sort_order>80</sort_order>
|
2229 |
-
<source_model>adminhtml/system_config_source_country</source_model>
|
2230 |
-
<show_in_default>1</show_in_default>
|
2231 |
-
<show_in_website>1</show_in_website>
|
2232 |
-
<show_in_store>1</show_in_store>
|
2233 |
-
</country>
|
2234 |
-
<contactname translate="label">
|
2235 |
-
<label>Customer Contact Name</label>
|
2236 |
-
<frontend_type>text</frontend_type>
|
2237 |
-
<sort_order>90</sort_order>
|
2238 |
-
<show_in_default>1</show_in_default>
|
2239 |
-
<show_in_website>1</show_in_website>
|
2240 |
-
<show_in_store>1</show_in_store>
|
2241 |
-
</contactname>
|
2242 |
-
<email translate="label">
|
2243 |
-
<label>Customer Email</label>
|
2244 |
-
<frontend_type>text</frontend_type>
|
2245 |
-
<sort_order>100</sort_order>
|
2246 |
-
<show_in_default>1</show_in_default>
|
2247 |
-
<show_in_website>1</show_in_website>
|
2248 |
-
<show_in_store>1</show_in_store>
|
2249 |
-
<comment>[Optional]</comment>
|
2250 |
-
</email>
|
2251 |
-
<phone translate="label comment">
|
2252 |
-
<label>Customer Telephone</label>
|
2253 |
-
<frontend_type>text</frontend_type>
|
2254 |
-
<sort_order>110</sort_order>
|
2255 |
-
<show_in_default>1</show_in_default>
|
2256 |
-
<show_in_website>1</show_in_website>
|
2257 |
-
<show_in_store>1</show_in_store>
|
2258 |
-
<comment>[Optional]</comment>
|
2259 |
-
</phone>
|
2260 |
-
<mobilephone translate="label comment">
|
2261 |
-
<label>Customer Mobile</label>
|
2262 |
-
<frontend_type>text</frontend_type>
|
2263 |
-
<sort_order>120</sort_order>
|
2264 |
-
<show_in_default>1</show_in_default>
|
2265 |
-
<show_in_website>1</show_in_website>
|
2266 |
-
<show_in_store>1</show_in_store>
|
2267 |
-
<comment>[Optional]</comment>
|
2268 |
-
</mobilephone>
|
2269 |
-
</fields>
|
2270 |
-
</customerinformation>
|
2271 |
-
|
2272 |
-
<skybillparam translate="label">
|
2273 |
-
<label>Skybill Parameters for Labels printing</label>
|
2274 |
-
<frontend_type>text</frontend_type>
|
2275 |
-
<sort_order>60</sort_order>
|
2276 |
-
<show_in_default>1</show_in_default>
|
2277 |
-
<show_in_website>1</show_in_website>
|
2278 |
-
<show_in_store>1</show_in_store>
|
2279 |
-
<fields>
|
2280 |
-
<mode translate="label">
|
2281 |
-
<label>Print Mode</label>
|
2282 |
-
<frontend_type>select</frontend_type>
|
2283 |
-
<source_model>chronorelais/config_source_printMode</source_model>
|
2284 |
-
<sort_order>10</sort_order>
|
2285 |
-
<show_in_default>1</show_in_default>
|
2286 |
-
<show_in_website>1</show_in_website>
|
2287 |
-
<show_in_store>1</show_in_store>
|
2288 |
-
<required>1</required>
|
2289 |
-
</mode>
|
2290 |
-
</fields>
|
2291 |
-
</skybillparam>
|
2292 |
-
|
2293 |
-
<weightunit translate="label">
|
2294 |
-
<label>Weight unit for the store</label>
|
2295 |
-
<frontend_type>text</frontend_type>
|
2296 |
-
<sort_order>70</sort_order>
|
2297 |
-
<show_in_default>1</show_in_default>
|
2298 |
-
<show_in_website>1</show_in_website>
|
2299 |
-
<show_in_store>1</show_in_store>
|
2300 |
-
<fields>
|
2301 |
-
<unit translate="label">
|
2302 |
-
<label>Weight unit</label>
|
2303 |
-
<frontend_type>select</frontend_type>
|
2304 |
-
<source_model>chronorelais/config_source_weightUnit</source_model>
|
2305 |
-
<sort_order>10</sort_order>
|
2306 |
-
<show_in_default>1</show_in_default>
|
2307 |
-
<show_in_website>1</show_in_website>
|
2308 |
-
<show_in_store>1</show_in_store>
|
2309 |
-
<required>1</required>
|
2310 |
-
</unit>
|
2311 |
-
</fields>
|
2312 |
-
</weightunit>
|
2313 |
-
|
2314 |
-
<optionbal translate="label">
|
2315 |
-
<label>Option BAL</label>
|
2316 |
-
<frontend_type>text</frontend_type>
|
2317 |
-
<sort_order>80</sort_order>
|
2318 |
-
<show_in_default>1</show_in_default>
|
2319 |
-
<show_in_website>1</show_in_website>
|
2320 |
-
<show_in_store>1</show_in_store>
|
2321 |
-
<fields>
|
2322 |
-
<enabled translate="label">
|
2323 |
-
<label>Activer l'option BAL de Chronopost</label>
|
2324 |
-
<frontend_type>select</frontend_type>
|
2325 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
2326 |
-
<comment>Vérifiez que cette option figure dans votre contrat</comment>
|
2327 |
-
<sort_order>10</sort_order>
|
2328 |
-
<show_in_default>1</show_in_default>
|
2329 |
-
<show_in_website>1</show_in_website>
|
2330 |
-
<show_in_store>1</show_in_store>
|
2331 |
-
<required>1</required>
|
2332 |
-
</enabled>
|
2333 |
-
</fields>
|
2334 |
-
</optionbal>
|
2335 |
-
|
2336 |
-
<assurance translate="label">
|
2337 |
-
<label>Assurance Ad Valorem</label>
|
2338 |
-
<frontend_type>text</frontend_type>
|
2339 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_fieldsetassurance</frontend_model>
|
2340 |
-
<sort_order>90</sort_order>
|
2341 |
-
<show_in_default>1</show_in_default>
|
2342 |
-
<show_in_website>1</show_in_website>
|
2343 |
-
<show_in_store>1</show_in_store>
|
2344 |
-
<fields>
|
2345 |
-
<enabled translate="label">
|
2346 |
-
<label>Activer l'Ad Valorem</label>
|
2347 |
-
<frontend_type>select</frontend_type>
|
2348 |
-
<source_model>adminhtml/system_config_source_yesno</source_model>
|
2349 |
-
<sort_order>1</sort_order>
|
2350 |
-
<show_in_default>1</show_in_default>
|
2351 |
-
<show_in_website>1</show_in_website>
|
2352 |
-
<show_in_store>1</show_in_store>
|
2353 |
-
<required>1</required>
|
2354 |
-
</enabled>
|
2355 |
-
<amount translate="label">
|
2356 |
-
<label>Montant minimum à assurer</label>
|
2357 |
-
<frontend_type>text</frontend_type>
|
2358 |
-
<sort_order>2</sort_order>
|
2359 |
-
<show_in_default>1</show_in_default>
|
2360 |
-
<show_in_website>1</show_in_website>
|
2361 |
-
<show_in_store>1</show_in_store>
|
2362 |
-
<required>0</required>
|
2363 |
-
<validate>validate-number</validate>
|
2364 |
-
</amount>
|
2365 |
-
</fields>
|
2366 |
-
</assurance>
|
2367 |
-
|
2368 |
-
<conflicts translate="label">
|
2369 |
-
<label>Vérificateur de conflits</label>
|
2370 |
-
<frontend_type>text</frontend_type>
|
2371 |
-
<frontend_model>chronorelais/adminhtml_system_config_form_fieldsetconflicts</frontend_model>
|
2372 |
-
<sort_order>100</sort_order>
|
2373 |
-
<show_in_default>1</show_in_default>
|
2374 |
-
<show_in_website>1</show_in_website>
|
2375 |
-
<show_in_store>1</show_in_store>
|
2376 |
-
<comment>
|
2377 |
-
<![CDATA[
|
2378 |
-
Chronopost fournit cet outil de vérification de conflits avec d'autres modules. Il vérifie si d'autres modules suchargent les classes, modèles, helpers et controlleurs personnalisés par le module Chronopost.<br />
|
2379 |
-
Cet outil vise à vous faciliter le débogage en cas de dysfonctionnement. En cas de doute sur son utilisation, rapprochez-vous de votre agence, ou contactez le support technique Chronopost au 0825 885 866 (numéro Indigo).
|
2380 |
-
]]>
|
2381 |
-
</comment>
|
2382 |
-
<!--<fields>
|
2383 |
-
<conflicts translate="label">
|
2384 |
-
<label>Mot de passe Chronopost</label>
|
2385 |
-
<frontend_type>text</frontend_type>
|
2386 |
-
<button_label>Vérifier mes identifiants</button_label>
|
2387 |
-
<frontend_model>chronorelais/adminhtml_system_config_checklogin</frontend_model>
|
2388 |
-
<sort_order>9</sort_order>
|
2389 |
-
<show_in_default>1</show_in_default>
|
2390 |
-
<show_in_website>1</show_in_website>
|
2391 |
-
<show_in_store>1</show_in_store>
|
2392 |
-
</conflicts>
|
2393 |
-
</fields>-->
|
2394 |
-
</conflicts>
|
2395 |
-
|
2396 |
-
<saturday translate="label">
|
2397 |
-
<label>Option samedi</label>
|
2398 |
-
<frontend_type>text</frontend_type>
|
2399 |
-
<sort_order>110</sort_order>
|
2400 |
-
<show_in_default>1</show_in_default>
|
2401 |
-
<show_in_website>0</show_in_website>
|
2402 |
-
<show_in_store>0</show_in_store>
|
2403 |
-
<fields>
|
2404 |
-
<startday translate="label">
|
2405 |
-
<label>Option samedi activé du</label>
|
2406 |
-
<frontend_type>select</frontend_type>
|
2407 |
-
<frontend_model>chronorelais/adminhtml_form_renderer_config_date</frontend_model>
|
2408 |
-
<backend_model>chronorelais/config_backend_date</backend_model>
|
2409 |
-
<sort_order>1</sort_order>
|
2410 |
-
<show_in_default>1</show_in_default>
|
2411 |
-
<show_in_website>0</show_in_website>
|
2412 |
-
<show_in_store>0</show_in_store>
|
2413 |
-
<required>0</required>
|
2414 |
-
</startday>
|
2415 |
-
<endday translate="label">
|
2416 |
-
<label>Au</label>
|
2417 |
-
<frontend_type>select</frontend_type>
|
2418 |
-
<frontend_model>chronorelais/adminhtml_form_renderer_config_date</frontend_model>
|
2419 |
-
<backend_model>chronorelais/config_backend_date</backend_model>
|
2420 |
-
<sort_order>2</sort_order>
|
2421 |
-
<show_in_default>1</show_in_default>
|
2422 |
-
<show_in_website>0</show_in_website>
|
2423 |
-
<show_in_store>0</show_in_store>
|
2424 |
-
<required>0</required>
|
2425 |
-
</endday>
|
2426 |
-
</fields>
|
2427 |
-
</saturday>
|
2428 |
-
|
2429 |
-
</groups>
|
2430 |
-
</chronorelais>
|
2431 |
-
</sections>
|
2432 |
-
|
2433 |
-
</config>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<tabs>
|
4 |
+
<chronopost translate="label" module="chronorelais">
|
5 |
+
<label>Chronopost</label>
|
6 |
+
<sort_order>200</sort_order>
|
7 |
+
</chronopost>
|
8 |
+
</tabs>
|
9 |
+
<sections>
|
10 |
+
<carriers>
|
11 |
+
<groups>
|
12 |
+
<chronopost translate="label">
|
13 |
+
<label>Chronopost</label>
|
14 |
+
<frontend_type>text</frontend_type>
|
15 |
+
<sort_order>20</sort_order>
|
16 |
+
<show_in_default>1</show_in_default>
|
17 |
+
<show_in_website>1</show_in_website>
|
18 |
+
<show_in_store>1</show_in_store>
|
19 |
+
<fields>
|
20 |
+
<active translate="label">
|
21 |
+
<label>Enabled</label>
|
22 |
+
<frontend_type>select</frontend_type>
|
23 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
24 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
25 |
+
<sort_order>1</sort_order>
|
26 |
+
<show_in_default>1</show_in_default>
|
27 |
+
<show_in_website>1</show_in_website>
|
28 |
+
<show_in_store>1</show_in_store>
|
29 |
+
</active>
|
30 |
+
<title translate="label">
|
31 |
+
<label>Title</label>
|
32 |
+
<frontend_type>text</frontend_type>
|
33 |
+
<sort_order>2</sort_order>
|
34 |
+
<show_in_default>1</show_in_default>
|
35 |
+
<show_in_website>1</show_in_website>
|
36 |
+
<show_in_store>1</show_in_store>
|
37 |
+
</title>
|
38 |
+
<config translate="label">
|
39 |
+
<label>Configuration</label>
|
40 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
41 |
+
<comment>{configuration_syntax_help}</comment>
|
42 |
+
<frontend_type>textarea</frontend_type>
|
43 |
+
<sort_order>3</sort_order>
|
44 |
+
<show_in_default>1</show_in_default>
|
45 |
+
<show_in_website>1</show_in_website>
|
46 |
+
<show_in_store>1</show_in_store>
|
47 |
+
</config>
|
48 |
+
<weight_limit translate="label">
|
49 |
+
<label>Weight Limit</label>
|
50 |
+
<frontend_type>text</frontend_type>
|
51 |
+
<comment>in Kg</comment>
|
52 |
+
<sort_order>7</sort_order>
|
53 |
+
<show_in_default>1</show_in_default>
|
54 |
+
<show_in_website>1</show_in_website>
|
55 |
+
<show_in_store>1</show_in_store>
|
56 |
+
</weight_limit>
|
57 |
+
<quickcost translate="label">
|
58 |
+
<label>Quickcost</label>
|
59 |
+
<frontend_type>select</frontend_type>
|
60 |
+
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
61 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
62 |
+
<sort_order>10</sort_order>
|
63 |
+
<show_in_default>1</show_in_default>
|
64 |
+
<show_in_website>1</show_in_website>
|
65 |
+
<show_in_store>0</show_in_store>
|
66 |
+
</quickcost>
|
67 |
+
<quickcost_marge translate="label">
|
68 |
+
<label>Value to add to quickcost</label>
|
69 |
+
<frontend_type>text</frontend_type>
|
70 |
+
<sort_order>11</sort_order>
|
71 |
+
<show_in_default>1</show_in_default>
|
72 |
+
<show_in_website>1</show_in_website>
|
73 |
+
<show_in_store>1</show_in_store>
|
74 |
+
<validate>validate-number</validate>
|
75 |
+
</quickcost_marge>
|
76 |
+
<quickcost_marge_type translate="label">
|
77 |
+
<label>Type value to add</label>
|
78 |
+
<frontend_type>select</frontend_type>
|
79 |
+
<source_model>chronorelais/config_source_margetype</source_model>
|
80 |
+
<sort_order>12</sort_order>
|
81 |
+
<show_in_default>1</show_in_default>
|
82 |
+
<show_in_website>1</show_in_website>
|
83 |
+
<show_in_store>1</show_in_store>
|
84 |
+
</quickcost_marge_type>
|
85 |
+
<quickcost_url>
|
86 |
+
<label>Quickcost Url</label>
|
87 |
+
<frontend_type>text</frontend_type>
|
88 |
+
<sort_order>13</sort_order>
|
89 |
+
<show_in_default>1</show_in_default>
|
90 |
+
<show_in_website>1</show_in_website>
|
91 |
+
<show_in_store>0</show_in_store>
|
92 |
+
</quickcost_url>
|
93 |
+
<free_shipping_enable translate="label">
|
94 |
+
<label>Free Shipping on the Amount</label>
|
95 |
+
<frontend_type>select</frontend_type>
|
96 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
97 |
+
<sort_order>20</sort_order>
|
98 |
+
<show_in_default>1</show_in_default>
|
99 |
+
<show_in_website>1</show_in_website>
|
100 |
+
<show_in_store>1</show_in_store>
|
101 |
+
</free_shipping_enable>
|
102 |
+
<free_shipping_subtotal translate="label">
|
103 |
+
<label>Minimum Amount for Free Shipping</label>
|
104 |
+
<frontend_type>text</frontend_type>
|
105 |
+
<sort_order>30</sort_order>
|
106 |
+
<show_in_default>1</show_in_default>
|
107 |
+
<show_in_website>1</show_in_website>
|
108 |
+
<show_in_store>0</show_in_store>
|
109 |
+
</free_shipping_subtotal>
|
110 |
+
<application_fee translate="label">
|
111 |
+
<label>Application Fee</label>
|
112 |
+
<frontend_type>text</frontend_type>
|
113 |
+
<sort_order>40</sort_order>
|
114 |
+
<show_in_default>1</show_in_default>
|
115 |
+
<show_in_website>1</show_in_website>
|
116 |
+
<show_in_store>1</show_in_store>
|
117 |
+
</application_fee>
|
118 |
+
<handling_fee translate="label">
|
119 |
+
<label>Handling Fee</label>
|
120 |
+
<frontend_type>text</frontend_type>
|
121 |
+
<sort_order>50</sort_order>
|
122 |
+
<show_in_default>1</show_in_default>
|
123 |
+
<show_in_website>1</show_in_website>
|
124 |
+
<show_in_store>1</show_in_store>
|
125 |
+
</handling_fee>
|
126 |
+
<logo_url>
|
127 |
+
<label>Logo Url</label>
|
128 |
+
<frontend_type>text</frontend_type>
|
129 |
+
<comment>{logo_ulr_help}</comment>
|
130 |
+
<sort_order>60</sort_order>
|
131 |
+
<show_in_default>1</show_in_default>
|
132 |
+
<show_in_website>1</show_in_website>
|
133 |
+
<show_in_store>1</show_in_store>
|
134 |
+
</logo_url>
|
135 |
+
<debug>
|
136 |
+
<label>Debug</label>
|
137 |
+
<comment>{debug_help}</comment>
|
138 |
+
<frontend_type>text</frontend_type>
|
139 |
+
<sort_order>70</sort_order>
|
140 |
+
<show_in_default>1</show_in_default>
|
141 |
+
<show_in_website>1</show_in_website>
|
142 |
+
<show_in_store>1</show_in_store>
|
143 |
+
</debug>
|
144 |
+
<!--<stop_to_first_match translate="label">
|
145 |
+
<label>Stop to first match</label>
|
146 |
+
<frontend_type>select</frontend_type>
|
147 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
148 |
+
<sort_order>80</sort_order>
|
149 |
+
<show_in_default>1</show_in_default>
|
150 |
+
<show_in_website>1</show_in_website>
|
151 |
+
<show_in_store>1</show_in_store>
|
152 |
+
</stop_to_first_match>-->
|
153 |
+
<deliver_on_saturday translate="label comment">
|
154 |
+
<label>Livraison le Samedi</label>
|
155 |
+
<frontend_type>select</frontend_type>
|
156 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
157 |
+
<sort_order>90</sort_order>
|
158 |
+
<show_in_default>1</show_in_default>
|
159 |
+
<show_in_website>1</show_in_website>
|
160 |
+
<show_in_store>1</show_in_store>
|
161 |
+
</deliver_on_saturday>
|
162 |
+
<!--<showmethod translate="label">
|
163 |
+
<label>Show Method if Not Applicable</label>
|
164 |
+
<frontend_type>select</frontend_type>
|
165 |
+
<sort_order>100</sort_order>
|
166 |
+
<frontend_class>shipping-skip-hide</frontend_class>
|
167 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
168 |
+
<show_in_default>1</show_in_default>
|
169 |
+
<show_in_website>1</show_in_website>
|
170 |
+
<show_in_store>0</show_in_store>
|
171 |
+
</showmethod>
|
172 |
+
<specificerrmsg translate="label">
|
173 |
+
<label>Displayed Error Message</label>
|
174 |
+
<frontend_type>textarea</frontend_type>
|
175 |
+
<sort_order>110</sort_order>
|
176 |
+
<show_in_default>1</show_in_default>
|
177 |
+
<show_in_website>1</show_in_website>
|
178 |
+
<show_in_store>1</show_in_store>
|
179 |
+
</specificerrmsg>-->
|
180 |
+
<sort_order translate="label">
|
181 |
+
<label>Sort order</label>
|
182 |
+
<frontend_type>text</frontend_type>
|
183 |
+
<sort_order>120</sort_order>
|
184 |
+
<show_in_default>1</show_in_default>
|
185 |
+
<show_in_website>1</show_in_website>
|
186 |
+
<show_in_store>1</show_in_store>
|
187 |
+
</sort_order>
|
188 |
+
</fields>
|
189 |
+
</chronopost>
|
190 |
+
|
191 |
+
<chronoexpress translate="label">
|
192 |
+
<label>Chrono Express</label>
|
193 |
+
<frontend_type>text</frontend_type>
|
194 |
+
<sort_order>21</sort_order>
|
195 |
+
<show_in_default>1</show_in_default>
|
196 |
+
<show_in_website>1</show_in_website>
|
197 |
+
<show_in_store>1</show_in_store>
|
198 |
+
<fields>
|
199 |
+
<active translate="label">
|
200 |
+
<label>Enabled</label>
|
201 |
+
<frontend_type>select</frontend_type>
|
202 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
203 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
204 |
+
<sort_order>1</sort_order>
|
205 |
+
<show_in_default>1</show_in_default>
|
206 |
+
<show_in_website>1</show_in_website>
|
207 |
+
<show_in_store>1</show_in_store>
|
208 |
+
</active>
|
209 |
+
<title translate="label">
|
210 |
+
<label>Title</label>
|
211 |
+
<frontend_type>text</frontend_type>
|
212 |
+
<sort_order>2</sort_order>
|
213 |
+
<show_in_default>1</show_in_default>
|
214 |
+
<show_in_website>1</show_in_website>
|
215 |
+
<show_in_store>1</show_in_store>
|
216 |
+
</title>
|
217 |
+
<config translate="label">
|
218 |
+
<label>Configuration</label>
|
219 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
220 |
+
<comment>{configuration_syntax_help}</comment>
|
221 |
+
<frontend_type>textarea</frontend_type>
|
222 |
+
<sort_order>3</sort_order>
|
223 |
+
<show_in_default>1</show_in_default>
|
224 |
+
<show_in_website>1</show_in_website>
|
225 |
+
<show_in_store>1</show_in_store>
|
226 |
+
</config>
|
227 |
+
<weight_limit translate="label">
|
228 |
+
<label>Weight Limit</label>
|
229 |
+
<frontend_type>text</frontend_type>
|
230 |
+
<comment>in Kg</comment>
|
231 |
+
<sort_order>7</sort_order>
|
232 |
+
<show_in_default>1</show_in_default>
|
233 |
+
<show_in_website>1</show_in_website>
|
234 |
+
<show_in_store>1</show_in_store>
|
235 |
+
</weight_limit>
|
236 |
+
<quickcost translate="label">
|
237 |
+
<label>Quickcost</label>
|
238 |
+
<frontend_type>select</frontend_type>
|
239 |
+
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
240 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
241 |
+
<sort_order>10</sort_order>
|
242 |
+
<show_in_default>1</show_in_default>
|
243 |
+
<show_in_website>1</show_in_website>
|
244 |
+
<show_in_store>0</show_in_store>
|
245 |
+
</quickcost>
|
246 |
+
<quickcost_marge translate="label">
|
247 |
+
<label>Value to add to quickcost</label>
|
248 |
+
<frontend_type>text</frontend_type>
|
249 |
+
<sort_order>11</sort_order>
|
250 |
+
<show_in_default>1</show_in_default>
|
251 |
+
<show_in_website>1</show_in_website>
|
252 |
+
<show_in_store>1</show_in_store>
|
253 |
+
<validate>validate-number</validate>
|
254 |
+
</quickcost_marge>
|
255 |
+
<quickcost_marge_type translate="label">
|
256 |
+
<label>Type value to add</label>
|
257 |
+
<frontend_type>select</frontend_type>
|
258 |
+
<source_model>chronorelais/config_source_margetype</source_model>
|
259 |
+
<sort_order>12</sort_order>
|
260 |
+
<show_in_default>1</show_in_default>
|
261 |
+
<show_in_website>1</show_in_website>
|
262 |
+
<show_in_store>1</show_in_store>
|
263 |
+
</quickcost_marge_type>
|
264 |
+
<quickcost_url>
|
265 |
+
<label>Quickcost Url</label>
|
266 |
+
<frontend_type>text</frontend_type>
|
267 |
+
<sort_order>13</sort_order>
|
268 |
+
<show_in_default>1</show_in_default>
|
269 |
+
<show_in_website>1</show_in_website>
|
270 |
+
<show_in_store>0</show_in_store>
|
271 |
+
</quickcost_url>
|
272 |
+
<free_shipping_enable translate="label">
|
273 |
+
<label>Free Shipping on the Amount</label>
|
274 |
+
<frontend_type>select</frontend_type>
|
275 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
276 |
+
<sort_order>20</sort_order>
|
277 |
+
<show_in_default>1</show_in_default>
|
278 |
+
<show_in_website>1</show_in_website>
|
279 |
+
<show_in_store>1</show_in_store>
|
280 |
+
</free_shipping_enable>
|
281 |
+
<free_shipping_subtotal translate="label">
|
282 |
+
<label>Minimum Amount for Free Shipping</label>
|
283 |
+
<frontend_type>text</frontend_type>
|
284 |
+
<sort_order>30</sort_order>
|
285 |
+
<show_in_default>1</show_in_default>
|
286 |
+
<show_in_website>1</show_in_website>
|
287 |
+
<show_in_store>0</show_in_store>
|
288 |
+
</free_shipping_subtotal>
|
289 |
+
<application_fee translate="label">
|
290 |
+
<label>Application Fee</label>
|
291 |
+
<frontend_type>text</frontend_type>
|
292 |
+
<sort_order>40</sort_order>
|
293 |
+
<show_in_default>1</show_in_default>
|
294 |
+
<show_in_website>1</show_in_website>
|
295 |
+
<show_in_store>1</show_in_store>
|
296 |
+
</application_fee>
|
297 |
+
<handling_fee translate="label">
|
298 |
+
<label>Handling Fee</label>
|
299 |
+
<frontend_type>text</frontend_type>
|
300 |
+
<sort_order>50</sort_order>
|
301 |
+
<show_in_default>1</show_in_default>
|
302 |
+
<show_in_website>1</show_in_website>
|
303 |
+
<show_in_store>1</show_in_store>
|
304 |
+
</handling_fee>
|
305 |
+
<logo_url>
|
306 |
+
<label>Logo Url</label>
|
307 |
+
<frontend_type>text</frontend_type>
|
308 |
+
<comment>{logo_ulr_help}</comment>
|
309 |
+
<sort_order>60</sort_order>
|
310 |
+
<show_in_default>1</show_in_default>
|
311 |
+
<show_in_website>1</show_in_website>
|
312 |
+
<show_in_store>1</show_in_store>
|
313 |
+
</logo_url>
|
314 |
+
<debug>
|
315 |
+
<label>Debug</label>
|
316 |
+
<comment>{debug_help}</comment>
|
317 |
+
<frontend_type>text</frontend_type>
|
318 |
+
<sort_order>70</sort_order>
|
319 |
+
<show_in_default>1</show_in_default>
|
320 |
+
<show_in_website>1</show_in_website>
|
321 |
+
<show_in_store>1</show_in_store>
|
322 |
+
</debug>
|
323 |
+
<!--<stop_to_first_match translate="label">
|
324 |
+
<label>Stop to first match</label>
|
325 |
+
<frontend_type>select</frontend_type>
|
326 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
327 |
+
<sort_order>80</sort_order>
|
328 |
+
<show_in_default>1</show_in_default>
|
329 |
+
<show_in_website>1</show_in_website>
|
330 |
+
<show_in_store>1</show_in_store>
|
331 |
+
</stop_to_first_match>-->
|
332 |
+
<!-- deliver_on_saturday not included in chronoexpress only -->
|
333 |
+
<!--<showmethod translate="label">
|
334 |
+
<label>Show Method if Not Applicable</label>
|
335 |
+
<frontend_type>select</frontend_type>
|
336 |
+
<sort_order>90</sort_order>
|
337 |
+
<frontend_class>shipping-skip-hide</frontend_class>
|
338 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
339 |
+
<show_in_default>1</show_in_default>
|
340 |
+
<show_in_website>1</show_in_website>
|
341 |
+
<show_in_store>0</show_in_store>
|
342 |
+
</showmethod>
|
343 |
+
<specificerrmsg translate="label">
|
344 |
+
<label>Displayed Error Message</label>
|
345 |
+
<frontend_type>textarea</frontend_type>
|
346 |
+
<sort_order>100</sort_order>
|
347 |
+
<show_in_default>1</show_in_default>
|
348 |
+
<show_in_website>1</show_in_website>
|
349 |
+
<show_in_store>1</show_in_store>
|
350 |
+
</specificerrmsg>-->
|
351 |
+
<sort_order translate="label">
|
352 |
+
<label>Sort order</label>
|
353 |
+
<frontend_type>text</frontend_type>
|
354 |
+
<sort_order>120</sort_order>
|
355 |
+
<show_in_default>1</show_in_default>
|
356 |
+
<show_in_website>1</show_in_website>
|
357 |
+
<show_in_store>1</show_in_store>
|
358 |
+
</sort_order>
|
359 |
+
</fields>
|
360 |
+
</chronoexpress>
|
361 |
+
|
362 |
+
<chronorelais translate="label">
|
363 |
+
<label>Chrono Relais</label>
|
364 |
+
<frontend_type>text</frontend_type>
|
365 |
+
<sort_order>22</sort_order>
|
366 |
+
<show_in_default>1</show_in_default>
|
367 |
+
<show_in_website>1</show_in_website>
|
368 |
+
<show_in_store>1</show_in_store>
|
369 |
+
<fields>
|
370 |
+
<active translate="label">
|
371 |
+
<label>Enabled</label>
|
372 |
+
<frontend_type>select</frontend_type>
|
373 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
374 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
375 |
+
<sort_order>1</sort_order>
|
376 |
+
<show_in_default>1</show_in_default>
|
377 |
+
<show_in_website>1</show_in_website>
|
378 |
+
<show_in_store>1</show_in_store>
|
379 |
+
</active>
|
380 |
+
<title translate="label">
|
381 |
+
<label>Title</label>
|
382 |
+
<frontend_type>text</frontend_type>
|
383 |
+
<sort_order>2</sort_order>
|
384 |
+
<show_in_default>1</show_in_default>
|
385 |
+
<show_in_website>1</show_in_website>
|
386 |
+
<show_in_store>1</show_in_store>
|
387 |
+
</title>
|
388 |
+
<config translate="label">
|
389 |
+
<label>Configuration</label>
|
390 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
391 |
+
<comment>{configuration_syntax_help}</comment>
|
392 |
+
<frontend_type>textarea</frontend_type>
|
393 |
+
<sort_order>3</sort_order>
|
394 |
+
<show_in_default>1</show_in_default>
|
395 |
+
<show_in_website>1</show_in_website>
|
396 |
+
<show_in_store>1</show_in_store>
|
397 |
+
</config>
|
398 |
+
<weight_limit translate="label">
|
399 |
+
<label>Weight Limit</label>
|
400 |
+
<frontend_type>text</frontend_type>
|
401 |
+
<comment>in Kg</comment>
|
402 |
+
<sort_order>7</sort_order>
|
403 |
+
<show_in_default>1</show_in_default>
|
404 |
+
<show_in_website>1</show_in_website>
|
405 |
+
<show_in_store>1</show_in_store>
|
406 |
+
</weight_limit>
|
407 |
+
<quickcost translate="label">
|
408 |
+
<label>Quickcost</label>
|
409 |
+
<frontend_type>select</frontend_type>
|
410 |
+
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
411 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
412 |
+
<sort_order>10</sort_order>
|
413 |
+
<show_in_default>1</show_in_default>
|
414 |
+
<show_in_website>1</show_in_website>
|
415 |
+
<show_in_store>0</show_in_store>
|
416 |
+
</quickcost>
|
417 |
+
<quickcost_marge translate="label">
|
418 |
+
<label>Value to add to quickcost</label>
|
419 |
+
<frontend_type>text</frontend_type>
|
420 |
+
<sort_order>11</sort_order>
|
421 |
+
<show_in_default>1</show_in_default>
|
422 |
+
<show_in_website>1</show_in_website>
|
423 |
+
<show_in_store>1</show_in_store>
|
424 |
+
<validate>validate-number</validate>
|
425 |
+
</quickcost_marge>
|
426 |
+
<quickcost_marge_type translate="label">
|
427 |
+
<label>Type value to add</label>
|
428 |
+
<frontend_type>select</frontend_type>
|
429 |
+
<source_model>chronorelais/config_source_margetype</source_model>
|
430 |
+
<sort_order>12</sort_order>
|
431 |
+
<show_in_default>1</show_in_default>
|
432 |
+
<show_in_website>1</show_in_website>
|
433 |
+
<show_in_store>1</show_in_store>
|
434 |
+
</quickcost_marge_type>
|
435 |
+
<quickcost_url>
|
436 |
+
<label>Quickcost Url</label>
|
437 |
+
<frontend_type>text</frontend_type>
|
438 |
+
<sort_order>13</sort_order>
|
439 |
+
<show_in_default>1</show_in_default>
|
440 |
+
<show_in_website>1</show_in_website>
|
441 |
+
<show_in_store>0</show_in_store>
|
442 |
+
</quickcost_url>
|
443 |
+
<show_google_map translate="label">
|
444 |
+
<label>Show Google Map</label>
|
445 |
+
<frontend_type>select</frontend_type>
|
446 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
447 |
+
<sort_order>20</sort_order>
|
448 |
+
<show_in_default>1</show_in_default>
|
449 |
+
<show_in_website>1</show_in_website>
|
450 |
+
<show_in_store>1</show_in_store>
|
451 |
+
</show_google_map>
|
452 |
+
<max_distance_search translate="label">
|
453 |
+
<label>Max distance search</label>
|
454 |
+
<frontend_type>text</frontend_type>
|
455 |
+
<sort_order>30</sort_order>
|
456 |
+
<show_in_default>1</show_in_default>
|
457 |
+
<show_in_website>1</show_in_website>
|
458 |
+
<show_in_store>0</show_in_store>
|
459 |
+
</max_distance_search>
|
460 |
+
<free_shipping_enable translate="label">
|
461 |
+
<label>Free Shipping with Minimum Order Amount</label>
|
462 |
+
<frontend_type>select</frontend_type>
|
463 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
464 |
+
<sort_order>40</sort_order>
|
465 |
+
<show_in_default>1</show_in_default>
|
466 |
+
<show_in_website>1</show_in_website>
|
467 |
+
<show_in_store>1</show_in_store>
|
468 |
+
</free_shipping_enable>
|
469 |
+
<free_shipping_subtotal translate="label">
|
470 |
+
<label>Minimum Order Amount for Free Shipping</label>
|
471 |
+
<frontend_type>text</frontend_type>
|
472 |
+
<sort_order>50</sort_order>
|
473 |
+
<show_in_default>1</show_in_default>
|
474 |
+
<show_in_website>1</show_in_website>
|
475 |
+
<show_in_store>1</show_in_store>
|
476 |
+
</free_shipping_subtotal>
|
477 |
+
<application_fee translate="label">
|
478 |
+
<label>Application Fee</label>
|
479 |
+
<frontend_type>text</frontend_type>
|
480 |
+
<sort_order>60</sort_order>
|
481 |
+
<show_in_default>1</show_in_default>
|
482 |
+
<show_in_website>1</show_in_website>
|
483 |
+
<show_in_store>1</show_in_store>
|
484 |
+
</application_fee>
|
485 |
+
<handling_fee translate="label">
|
486 |
+
<label>Handling Fee</label>
|
487 |
+
<frontend_type>text</frontend_type>
|
488 |
+
<sort_order>70</sort_order>
|
489 |
+
<show_in_default>1</show_in_default>
|
490 |
+
<show_in_website>1</show_in_website>
|
491 |
+
<show_in_store>1</show_in_store>
|
492 |
+
</handling_fee>
|
493 |
+
<logo_url>
|
494 |
+
<label>Logo Url</label>
|
495 |
+
<frontend_type>text</frontend_type>
|
496 |
+
<comment>{logo_ulr_help}</comment>
|
497 |
+
<sort_order>80</sort_order>
|
498 |
+
<show_in_default>1</show_in_default>
|
499 |
+
<show_in_website>1</show_in_website>
|
500 |
+
<show_in_store>1</show_in_store>
|
501 |
+
</logo_url>
|
502 |
+
<debug>
|
503 |
+
<label>Debug</label>
|
504 |
+
<comment>{debug_help}</comment>
|
505 |
+
<frontend_type>text</frontend_type>
|
506 |
+
<sort_order>90</sort_order>
|
507 |
+
<show_in_default>1</show_in_default>
|
508 |
+
<show_in_website>1</show_in_website>
|
509 |
+
<show_in_store>1</show_in_store>
|
510 |
+
</debug>
|
511 |
+
<!--<stop_to_first_match translate="label">
|
512 |
+
<label>Stop to first match</label>
|
513 |
+
<frontend_type>select</frontend_type>
|
514 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
515 |
+
<sort_order>100</sort_order>
|
516 |
+
<show_in_default>1</show_in_default>
|
517 |
+
<show_in_website>1</show_in_website>
|
518 |
+
<show_in_store>1</show_in_store>
|
519 |
+
</stop_to_first_match>-->
|
520 |
+
<deliver_on_saturday translate="label comment">
|
521 |
+
<label>Livraison le Samedi</label>
|
522 |
+
<frontend_type>select</frontend_type>
|
523 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
524 |
+
<sort_order>110</sort_order>
|
525 |
+
<show_in_default>1</show_in_default>
|
526 |
+
<show_in_website>1</show_in_website>
|
527 |
+
<show_in_store>1</show_in_store>
|
528 |
+
</deliver_on_saturday>
|
529 |
+
<!--<showmethod translate="label">
|
530 |
+
<label>Show Method if Not Applicable</label>
|
531 |
+
<frontend_type>select</frontend_type>
|
532 |
+
<sort_order>120</sort_order>
|
533 |
+
<frontend_class>shipping-skip-hide</frontend_class>
|
534 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
535 |
+
<show_in_default>1</show_in_default>
|
536 |
+
<show_in_website>1</show_in_website>
|
537 |
+
<show_in_store>0</show_in_store>
|
538 |
+
</showmethod>
|
539 |
+
<specificerrmsg translate="label">
|
540 |
+
<label>Displayed Error Message</label>
|
541 |
+
<frontend_type>textarea</frontend_type>
|
542 |
+
<sort_order>130</sort_order>
|
543 |
+
<show_in_default>1</show_in_default>
|
544 |
+
<show_in_website>1</show_in_website>
|
545 |
+
<show_in_store>1</show_in_store>
|
546 |
+
</specificerrmsg>-->
|
547 |
+
<sort_order translate="label">
|
548 |
+
<label>Sort order</label>
|
549 |
+
<frontend_type>text</frontend_type>
|
550 |
+
<sort_order>140</sort_order>
|
551 |
+
<show_in_default>1</show_in_default>
|
552 |
+
<show_in_website>1</show_in_website>
|
553 |
+
<show_in_store>1</show_in_store>
|
554 |
+
</sort_order>
|
555 |
+
</fields>
|
556 |
+
</chronorelais>
|
557 |
+
|
558 |
+
<!-- C10 Livraison avant 10H -->
|
559 |
+
<chronopostc10 translate="label">
|
560 |
+
<label>Chronopost C10</label>
|
561 |
+
<frontend_type>text</frontend_type>
|
562 |
+
<sort_order>23</sort_order>
|
563 |
+
<show_in_default>1</show_in_default>
|
564 |
+
<show_in_website>1</show_in_website>
|
565 |
+
<show_in_store>1</show_in_store>
|
566 |
+
<fields>
|
567 |
+
<active translate="label">
|
568 |
+
<label>Enabled</label>
|
569 |
+
<frontend_type>select</frontend_type>
|
570 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
571 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
572 |
+
<sort_order>1</sort_order>
|
573 |
+
<show_in_default>1</show_in_default>
|
574 |
+
<show_in_website>1</show_in_website>
|
575 |
+
<show_in_store>1</show_in_store>
|
576 |
+
</active>
|
577 |
+
<title translate="label">
|
578 |
+
<label>Title</label>
|
579 |
+
<frontend_type>text</frontend_type>
|
580 |
+
<sort_order>2</sort_order>
|
581 |
+
<show_in_default>1</show_in_default>
|
582 |
+
<show_in_website>1</show_in_website>
|
583 |
+
<show_in_store>1</show_in_store>
|
584 |
+
</title>
|
585 |
+
<config translate="label">
|
586 |
+
<label>Configuration</label>
|
587 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
588 |
+
<comment>{configuration_syntax_help}</comment>
|
589 |
+
<frontend_type>textarea</frontend_type>
|
590 |
+
<sort_order>3</sort_order>
|
591 |
+
<show_in_default>1</show_in_default>
|
592 |
+
<show_in_website>1</show_in_website>
|
593 |
+
<show_in_store>1</show_in_store>
|
594 |
+
</config>
|
595 |
+
<weight_limit translate="label">
|
596 |
+
<label>Weight Limit</label>
|
597 |
+
<frontend_type>text</frontend_type>
|
598 |
+
<comment>in Kg</comment>
|
599 |
+
<sort_order>7</sort_order>
|
600 |
+
<show_in_default>1</show_in_default>
|
601 |
+
<show_in_website>1</show_in_website>
|
602 |
+
<show_in_store>1</show_in_store>
|
603 |
+
</weight_limit>
|
604 |
+
<quickcost translate="label">
|
605 |
+
<label>Quickcost</label>
|
606 |
+
<frontend_type>select</frontend_type>
|
607 |
+
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
608 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
609 |
+
<sort_order>10</sort_order>
|
610 |
+
<show_in_default>1</show_in_default>
|
611 |
+
<show_in_website>1</show_in_website>
|
612 |
+
<show_in_store>0</show_in_store>
|
613 |
+
</quickcost>
|
614 |
+
<quickcost_marge translate="label">
|
615 |
+
<label>Value to add to quickcost</label>
|
616 |
+
<frontend_type>text</frontend_type>
|
617 |
+
<sort_order>11</sort_order>
|
618 |
+
<show_in_default>1</show_in_default>
|
619 |
+
<show_in_website>1</show_in_website>
|
620 |
+
<show_in_store>1</show_in_store>
|
621 |
+
<validate>validate-number</validate>
|
622 |
+
</quickcost_marge>
|
623 |
+
<quickcost_marge_type translate="label">
|
624 |
+
<label>Type value to add</label>
|
625 |
+
<frontend_type>select</frontend_type>
|
626 |
+
<source_model>chronorelais/config_source_margetype</source_model>
|
627 |
+
<sort_order>12</sort_order>
|
628 |
+
<show_in_default>1</show_in_default>
|
629 |
+
<show_in_website>1</show_in_website>
|
630 |
+
<show_in_store>1</show_in_store>
|
631 |
+
</quickcost_marge_type>
|
632 |
+
<quickcost_url>
|
633 |
+
<label>Quickcost Url</label>
|
634 |
+
<frontend_type>text</frontend_type>
|
635 |
+
<sort_order>13</sort_order>
|
636 |
+
<show_in_default>1</show_in_default>
|
637 |
+
<show_in_website>1</show_in_website>
|
638 |
+
<show_in_store>0</show_in_store>
|
639 |
+
</quickcost_url>
|
640 |
+
<free_shipping_enable translate="label">
|
641 |
+
<label>Free Shipping on the Amount</label>
|
642 |
+
<frontend_type>select</frontend_type>
|
643 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
644 |
+
<sort_order>20</sort_order>
|
645 |
+
<show_in_default>1</show_in_default>
|
646 |
+
<show_in_website>1</show_in_website>
|
647 |
+
<show_in_store>1</show_in_store>
|
648 |
+
</free_shipping_enable>
|
649 |
+
<free_shipping_subtotal translate="label">
|
650 |
+
<label>Minimum Amount for Free Shipping</label>
|
651 |
+
<frontend_type>text</frontend_type>
|
652 |
+
<sort_order>30</sort_order>
|
653 |
+
<show_in_default>1</show_in_default>
|
654 |
+
<show_in_website>1</show_in_website>
|
655 |
+
<show_in_store>0</show_in_store>
|
656 |
+
</free_shipping_subtotal>
|
657 |
+
<application_fee translate="label">
|
658 |
+
<label>Application Fee</label>
|
659 |
+
<frontend_type>text</frontend_type>
|
660 |
+
<sort_order>40</sort_order>
|
661 |
+
<show_in_default>1</show_in_default>
|
662 |
+
<show_in_website>1</show_in_website>
|
663 |
+
<show_in_store>1</show_in_store>
|
664 |
+
</application_fee>
|
665 |
+
<handling_fee translate="label">
|
666 |
+
<label>Handling Fee</label>
|
667 |
+
<frontend_type>text</frontend_type>
|
668 |
+
<sort_order>50</sort_order>
|
669 |
+
<show_in_default>1</show_in_default>
|
670 |
+
<show_in_website>1</show_in_website>
|
671 |
+
<show_in_store>1</show_in_store>
|
672 |
+
</handling_fee>
|
673 |
+
<logo_url>
|
674 |
+
<label>Logo Url</label>
|
675 |
+
<frontend_type>text</frontend_type>
|
676 |
+
<comment>{logo_ulr_help}</comment>
|
677 |
+
<sort_order>60</sort_order>
|
678 |
+
<show_in_default>1</show_in_default>
|
679 |
+
<show_in_website>1</show_in_website>
|
680 |
+
<show_in_store>1</show_in_store>
|
681 |
+
</logo_url>
|
682 |
+
<debug>
|
683 |
+
<label>Debug</label>
|
684 |
+
<comment>{debug_help}</comment>
|
685 |
+
<frontend_type>text</frontend_type>
|
686 |
+
<sort_order>70</sort_order>
|
687 |
+
<show_in_default>1</show_in_default>
|
688 |
+
<show_in_website>1</show_in_website>
|
689 |
+
<show_in_store>1</show_in_store>
|
690 |
+
</debug>
|
691 |
+
<!--<stop_to_first_match translate="label">
|
692 |
+
<label>Stop to first match</label>
|
693 |
+
<frontend_type>select</frontend_type>
|
694 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
695 |
+
<sort_order>80</sort_order>
|
696 |
+
<show_in_default>1</show_in_default>
|
697 |
+
<show_in_website>1</show_in_website>
|
698 |
+
<show_in_store>1</show_in_store>
|
699 |
+
</stop_to_first_match>-->
|
700 |
+
<deliver_on_saturday translate="label comment">
|
701 |
+
<label>Livraison le Samedi</label>
|
702 |
+
<frontend_type>select</frontend_type>
|
703 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
704 |
+
<sort_order>90</sort_order>
|
705 |
+
<show_in_default>1</show_in_default>
|
706 |
+
<show_in_website>1</show_in_website>
|
707 |
+
<show_in_store>1</show_in_store>
|
708 |
+
</deliver_on_saturday>
|
709 |
+
<!--<showmethod translate="label">
|
710 |
+
<label>Show Method if Not Applicable</label>
|
711 |
+
<frontend_type>select</frontend_type>
|
712 |
+
<sort_order>100</sort_order>
|
713 |
+
<frontend_class>shipping-skip-hide</frontend_class>
|
714 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
715 |
+
<show_in_default>1</show_in_default>
|
716 |
+
<show_in_website>1</show_in_website>
|
717 |
+
<show_in_store>0</show_in_store>
|
718 |
+
</showmethod>
|
719 |
+
<specificerrmsg translate="label">
|
720 |
+
<label>Displayed Error Message</label>
|
721 |
+
<frontend_type>textarea</frontend_type>
|
722 |
+
<sort_order>110</sort_order>
|
723 |
+
<show_in_default>1</show_in_default>
|
724 |
+
<show_in_website>1</show_in_website>
|
725 |
+
<show_in_store>1</show_in_store>
|
726 |
+
</specificerrmsg>-->
|
727 |
+
<sort_order translate="label">
|
728 |
+
<label>Sort order</label>
|
729 |
+
<frontend_type>text</frontend_type>
|
730 |
+
<sort_order>120</sort_order>
|
731 |
+
<show_in_default>1</show_in_default>
|
732 |
+
<show_in_website>1</show_in_website>
|
733 |
+
<show_in_store>1</show_in_store>
|
734 |
+
</sort_order>
|
735 |
+
</fields>
|
736 |
+
</chronopostc10>
|
737 |
+
|
738 |
+
<!-- C18 Livraison avant 18H -->
|
739 |
+
<chronopostc18 translate="label">
|
740 |
+
<label>Chronopost C18</label>
|
741 |
+
<frontend_type>text</frontend_type>
|
742 |
+
<sort_order>24</sort_order>
|
743 |
+
<show_in_default>1</show_in_default>
|
744 |
+
<show_in_website>1</show_in_website>
|
745 |
+
<show_in_store>1</show_in_store>
|
746 |
+
<fields>
|
747 |
+
<active translate="label">
|
748 |
+
<label>Enabled</label>
|
749 |
+
<frontend_type>select</frontend_type>
|
750 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
751 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
752 |
+
<sort_order>1</sort_order>
|
753 |
+
<show_in_default>1</show_in_default>
|
754 |
+
<show_in_website>1</show_in_website>
|
755 |
+
<show_in_store>1</show_in_store>
|
756 |
+
</active>
|
757 |
+
<title translate="label">
|
758 |
+
<label>Title</label>
|
759 |
+
<frontend_type>text</frontend_type>
|
760 |
+
<sort_order>2</sort_order>
|
761 |
+
<show_in_default>1</show_in_default>
|
762 |
+
<show_in_website>1</show_in_website>
|
763 |
+
<show_in_store>1</show_in_store>
|
764 |
+
</title>
|
765 |
+
<config translate="label">
|
766 |
+
<label>Configuration</label>
|
767 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
768 |
+
<comment>{configuration_syntax_help}</comment>
|
769 |
+
<frontend_type>textarea</frontend_type>
|
770 |
+
<sort_order>3</sort_order>
|
771 |
+
<show_in_default>1</show_in_default>
|
772 |
+
<show_in_website>1</show_in_website>
|
773 |
+
<show_in_store>1</show_in_store>
|
774 |
+
</config>
|
775 |
+
<weight_limit translate="label">
|
776 |
+
<label>Weight Limit</label>
|
777 |
+
<frontend_type>text</frontend_type>
|
778 |
+
<comment>in Kg</comment>
|
779 |
+
<sort_order>7</sort_order>
|
780 |
+
<show_in_default>1</show_in_default>
|
781 |
+
<show_in_website>1</show_in_website>
|
782 |
+
<show_in_store>1</show_in_store>
|
783 |
+
</weight_limit>
|
784 |
+
<quickcost translate="label">
|
785 |
+
<label>Quickcost</label>
|
786 |
+
<frontend_type>select</frontend_type>
|
787 |
+
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
788 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
789 |
+
<sort_order>10</sort_order>
|
790 |
+
<show_in_default>0</show_in_default>
|
791 |
+
<show_in_website>0</show_in_website>
|
792 |
+
<show_in_store>0</show_in_store>
|
793 |
+
</quickcost>
|
794 |
+
<quickcost_marge translate="label">
|
795 |
+
<label>Value to add to quickcost</label>
|
796 |
+
<frontend_type>text</frontend_type>
|
797 |
+
<sort_order>11</sort_order>
|
798 |
+
<show_in_default>1</show_in_default>
|
799 |
+
<show_in_website>1</show_in_website>
|
800 |
+
<show_in_store>1</show_in_store>
|
801 |
+
<validate>validate-number</validate>
|
802 |
+
</quickcost_marge>
|
803 |
+
<quickcost_marge_type translate="label">
|
804 |
+
<label>Type value to add</label>
|
805 |
+
<frontend_type>select</frontend_type>
|
806 |
+
<source_model>chronorelais/config_source_margetype</source_model>
|
807 |
+
<sort_order>12</sort_order>
|
808 |
+
<show_in_default>1</show_in_default>
|
809 |
+
<show_in_website>1</show_in_website>
|
810 |
+
<show_in_store>1</show_in_store>
|
811 |
+
</quickcost_marge_type>
|
812 |
+
<quickcost_url>
|
813 |
+
<label>Quickcost Url</label>
|
814 |
+
<frontend_type>text</frontend_type>
|
815 |
+
<sort_order>13</sort_order>
|
816 |
+
<show_in_default>0</show_in_default>
|
817 |
+
<show_in_website>0</show_in_website>
|
818 |
+
<show_in_store>0</show_in_store>
|
819 |
+
</quickcost_url>
|
820 |
+
<free_shipping_enable translate="label">
|
821 |
+
<label>Free Shipping on the Amount</label>
|
822 |
+
<frontend_type>select</frontend_type>
|
823 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
824 |
+
<sort_order>20</sort_order>
|
825 |
+
<show_in_default>1</show_in_default>
|
826 |
+
<show_in_website>1</show_in_website>
|
827 |
+
<show_in_store>1</show_in_store>
|
828 |
+
</free_shipping_enable>
|
829 |
+
<free_shipping_subtotal translate="label">
|
830 |
+
<label>Minimum Amount for Free Shipping</label>
|
831 |
+
<frontend_type>text</frontend_type>
|
832 |
+
<sort_order>30</sort_order>
|
833 |
+
<show_in_default>1</show_in_default>
|
834 |
+
<show_in_website>1</show_in_website>
|
835 |
+
<show_in_store>0</show_in_store>
|
836 |
+
</free_shipping_subtotal>
|
837 |
+
<application_fee translate="label">
|
838 |
+
<label>Application Fee</label>
|
839 |
+
<frontend_type>text</frontend_type>
|
840 |
+
<sort_order>40</sort_order>
|
841 |
+
<show_in_default>1</show_in_default>
|
842 |
+
<show_in_website>1</show_in_website>
|
843 |
+
<show_in_store>1</show_in_store>
|
844 |
+
</application_fee>
|
845 |
+
<handling_fee translate="label">
|
846 |
+
<label>Handling Fee</label>
|
847 |
+
<frontend_type>text</frontend_type>
|
848 |
+
<sort_order>50</sort_order>
|
849 |
+
<show_in_default>1</show_in_default>
|
850 |
+
<show_in_website>1</show_in_website>
|
851 |
+
<show_in_store>1</show_in_store>
|
852 |
+
</handling_fee>
|
853 |
+
<logo_url>
|
854 |
+
<label>Logo Url</label>
|
855 |
+
<frontend_type>text</frontend_type>
|
856 |
+
<comment>{logo_ulr_help}</comment>
|
857 |
+
<sort_order>60</sort_order>
|
858 |
+
<show_in_default>1</show_in_default>
|
859 |
+
<show_in_website>1</show_in_website>
|
860 |
+
<show_in_store>1</show_in_store>
|
861 |
+
</logo_url>
|
862 |
+
<debug>
|
863 |
+
<label>Debug</label>
|
864 |
+
<comment>{debug_help}</comment>
|
865 |
+
<frontend_type>text</frontend_type>
|
866 |
+
<sort_order>70</sort_order>
|
867 |
+
<show_in_default>1</show_in_default>
|
868 |
+
<show_in_website>1</show_in_website>
|
869 |
+
<show_in_store>1</show_in_store>
|
870 |
+
</debug>
|
871 |
+
<!--<stop_to_first_match translate="label">
|
872 |
+
<label>Stop to first match</label>
|
873 |
+
<frontend_type>select</frontend_type>
|
874 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
875 |
+
<sort_order>80</sort_order>
|
876 |
+
<show_in_default>1</show_in_default>
|
877 |
+
<show_in_website>1</show_in_website>
|
878 |
+
<show_in_store>1</show_in_store>
|
879 |
+
</stop_to_first_match>-->
|
880 |
+
<deliver_on_saturday translate="label comment">
|
881 |
+
<label>Livraison le Samedi</label>
|
882 |
+
<frontend_type>select</frontend_type>
|
883 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
884 |
+
<sort_order>90</sort_order>
|
885 |
+
<show_in_default>1</show_in_default>
|
886 |
+
<show_in_website>1</show_in_website>
|
887 |
+
<show_in_store>1</show_in_store>
|
888 |
+
</deliver_on_saturday>
|
889 |
+
<!--<showmethod translate="label">
|
890 |
+
<label>Show Method if Not Applicable</label>
|
891 |
+
<frontend_type>select</frontend_type>
|
892 |
+
<sort_order>100</sort_order>
|
893 |
+
<frontend_class>shipping-skip-hide</frontend_class>
|
894 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
895 |
+
<show_in_default>1</show_in_default>
|
896 |
+
<show_in_website>1</show_in_website>
|
897 |
+
<show_in_store>0</show_in_store>
|
898 |
+
</showmethod>
|
899 |
+
<specificerrmsg translate="label">
|
900 |
+
<label>Displayed Error Message</label>
|
901 |
+
<frontend_type>textarea</frontend_type>
|
902 |
+
<sort_order>110</sort_order>
|
903 |
+
<show_in_default>1</show_in_default>
|
904 |
+
<show_in_website>1</show_in_website>
|
905 |
+
<show_in_store>1</show_in_store>
|
906 |
+
</specificerrmsg>-->
|
907 |
+
<sort_order translate="label">
|
908 |
+
<label>Sort order</label>
|
909 |
+
<frontend_type>text</frontend_type>
|
910 |
+
<sort_order>120</sort_order>
|
911 |
+
<show_in_default>1</show_in_default>
|
912 |
+
<show_in_website>1</show_in_website>
|
913 |
+
<show_in_store>1</show_in_store>
|
914 |
+
</sort_order>
|
915 |
+
</fields>
|
916 |
+
</chronopostc18>
|
917 |
+
|
918 |
+
<!-- CClassic Livraison dans certaines villes Européennes -->
|
919 |
+
<chronopostcclassic translate="label">
|
920 |
+
<label>Chronopost CClassic</label>
|
921 |
+
<frontend_type>text</frontend_type>
|
922 |
+
<sort_order>25</sort_order>
|
923 |
+
<show_in_default>1</show_in_default>
|
924 |
+
<show_in_website>1</show_in_website>
|
925 |
+
<show_in_store>1</show_in_store>
|
926 |
+
<fields>
|
927 |
+
<active translate="label">
|
928 |
+
<label>Enabled</label>
|
929 |
+
<frontend_type>select</frontend_type>
|
930 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
931 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
932 |
+
<sort_order>1</sort_order>
|
933 |
+
<show_in_default>1</show_in_default>
|
934 |
+
<show_in_website>1</show_in_website>
|
935 |
+
<show_in_store>1</show_in_store>
|
936 |
+
</active>
|
937 |
+
<title translate="label">
|
938 |
+
<label>Title</label>
|
939 |
+
<frontend_type>text</frontend_type>
|
940 |
+
<sort_order>2</sort_order>
|
941 |
+
<show_in_default>1</show_in_default>
|
942 |
+
<show_in_website>1</show_in_website>
|
943 |
+
<show_in_store>1</show_in_store>
|
944 |
+
</title>
|
945 |
+
<config translate="label">
|
946 |
+
<label>Configuration</label>
|
947 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
948 |
+
<comment>{configuration_syntax_help}</comment>
|
949 |
+
<frontend_type>textarea</frontend_type>
|
950 |
+
<sort_order>3</sort_order>
|
951 |
+
<show_in_default>1</show_in_default>
|
952 |
+
<show_in_website>1</show_in_website>
|
953 |
+
<show_in_store>1</show_in_store>
|
954 |
+
</config>
|
955 |
+
<weight_limit translate="label">
|
956 |
+
<label>Weight Limit</label>
|
957 |
+
<frontend_type>text</frontend_type>
|
958 |
+
<comment>in Kg</comment>
|
959 |
+
<sort_order>7</sort_order>
|
960 |
+
<show_in_default>1</show_in_default>
|
961 |
+
<show_in_website>1</show_in_website>
|
962 |
+
<show_in_store>1</show_in_store>
|
963 |
+
</weight_limit>
|
964 |
+
<quickcost translate="label">
|
965 |
+
<label>Quickcost</label>
|
966 |
+
<frontend_type>select</frontend_type>
|
967 |
+
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
968 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
969 |
+
<sort_order>10</sort_order>
|
970 |
+
<show_in_default>1</show_in_default>
|
971 |
+
<show_in_website>1</show_in_website>
|
972 |
+
<show_in_store>0</show_in_store>
|
973 |
+
</quickcost>
|
974 |
+
<quickcost_marge translate="label">
|
975 |
+
<label>Value to add to quickcost</label>
|
976 |
+
<frontend_type>text</frontend_type>
|
977 |
+
<sort_order>11</sort_order>
|
978 |
+
<show_in_default>1</show_in_default>
|
979 |
+
<show_in_website>1</show_in_website>
|
980 |
+
<show_in_store>1</show_in_store>
|
981 |
+
<validate>validate-number</validate>
|
982 |
+
</quickcost_marge>
|
983 |
+
<quickcost_marge_type translate="label">
|
984 |
+
<label>Type value to add</label>
|
985 |
+
<frontend_type>select</frontend_type>
|
986 |
+
<source_model>chronorelais/config_source_margetype</source_model>
|
987 |
+
<sort_order>12</sort_order>
|
988 |
+
<show_in_default>1</show_in_default>
|
989 |
+
<show_in_website>1</show_in_website>
|
990 |
+
<show_in_store>1</show_in_store>
|
991 |
+
</quickcost_marge_type>
|
992 |
+
<quickcost_url>
|
993 |
+
<label>Quickcost Url</label>
|
994 |
+
<frontend_type>text</frontend_type>
|
995 |
+
<sort_order>13</sort_order>
|
996 |
+
<show_in_default>1</show_in_default>
|
997 |
+
<show_in_website>1</show_in_website>
|
998 |
+
<show_in_store>0</show_in_store>
|
999 |
+
</quickcost_url>
|
1000 |
+
<free_shipping_enable translate="label">
|
1001 |
+
<label>Free Shipping on the Amount</label>
|
1002 |
+
<frontend_type>select</frontend_type>
|
1003 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
1004 |
+
<sort_order>20</sort_order>
|
1005 |
+
<show_in_default>1</show_in_default>
|
1006 |
+
<show_in_website>1</show_in_website>
|
1007 |
+
<show_in_store>1</show_in_store>
|
1008 |
+
</free_shipping_enable>
|
1009 |
+
<free_shipping_subtotal translate="label">
|
1010 |
+
<label>Minimum Amount for Free Shipping</label>
|
1011 |
+
<frontend_type>text</frontend_type>
|
1012 |
+
<sort_order>30</sort_order>
|
1013 |
+
<show_in_default>1</show_in_default>
|
1014 |
+
<show_in_website>1</show_in_website>
|
1015 |
+
<show_in_store>0</show_in_store>
|
1016 |
+
</free_shipping_subtotal>
|
1017 |
+
<application_fee translate="label">
|
1018 |
+
<label>Application Fee</label>
|
1019 |
+
<frontend_type>text</frontend_type>
|
1020 |
+
<sort_order>40</sort_order>
|
1021 |
+
<show_in_default>1</show_in_default>
|
1022 |
+
<show_in_website>1</show_in_website>
|
1023 |
+
<show_in_store>1</show_in_store>
|
1024 |
+
</application_fee>
|
1025 |
+
<handling_fee translate="label">
|
1026 |
+
<label>Handling Fee</label>
|
1027 |
+
<frontend_type>text</frontend_type>
|
1028 |
+
<sort_order>50</sort_order>
|
1029 |
+
<show_in_default>1</show_in_default>
|
1030 |
+
<show_in_website>1</show_in_website>
|
1031 |
+
<show_in_store>1</show_in_store>
|
1032 |
+
</handling_fee>
|
1033 |
+
<logo_url>
|
1034 |
+
<label>Logo Url</label>
|
1035 |
+
<frontend_type>text</frontend_type>
|
1036 |
+
<comment>{logo_ulr_help}</comment>
|
1037 |
+
<sort_order>60</sort_order>
|
1038 |
+
<show_in_default>1</show_in_default>
|
1039 |
+
<show_in_website>1</show_in_website>
|
1040 |
+
<show_in_store>1</show_in_store>
|
1041 |
+
</logo_url>
|
1042 |
+
<debug>
|
1043 |
+
<label>Debug</label>
|
1044 |
+
<comment>{debug_help}</comment>
|
1045 |
+
<frontend_type>text</frontend_type>
|
1046 |
+
<sort_order>70</sort_order>
|
1047 |
+
<show_in_default>1</show_in_default>
|
1048 |
+
<show_in_website>1</show_in_website>
|
1049 |
+
<show_in_store>1</show_in_store>
|
1050 |
+
</debug>
|
1051 |
+
<!--<stop_to_first_match translate="label">
|
1052 |
+
<label>Stop to first match</label>
|
1053 |
+
<frontend_type>select</frontend_type>
|
1054 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1055 |
+
<sort_order>80</sort_order>
|
1056 |
+
<show_in_default>1</show_in_default>
|
1057 |
+
<show_in_website>1</show_in_website>
|
1058 |
+
<show_in_store>1</show_in_store>
|
1059 |
+
</stop_to_first_match>-->
|
1060 |
+
<deliver_on_saturday translate="label comment">
|
1061 |
+
<label>Livraison le Samedi</label>
|
1062 |
+
<frontend_type>select</frontend_type>
|
1063 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1064 |
+
<sort_order>90</sort_order>
|
1065 |
+
<show_in_default>1</show_in_default>
|
1066 |
+
<show_in_website>1</show_in_website>
|
1067 |
+
<show_in_store>1</show_in_store>
|
1068 |
+
</deliver_on_saturday>
|
1069 |
+
<!--<showmethod translate="label">
|
1070 |
+
<label>Show Method if Not Applicable</label>
|
1071 |
+
<frontend_type>select</frontend_type>
|
1072 |
+
<sort_order>100</sort_order>
|
1073 |
+
<frontend_class>shipping-skip-hide</frontend_class>
|
1074 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1075 |
+
<show_in_default>1</show_in_default>
|
1076 |
+
<show_in_website>1</show_in_website>
|
1077 |
+
<show_in_store>0</show_in_store>
|
1078 |
+
</showmethod>
|
1079 |
+
<specificerrmsg translate="label">
|
1080 |
+
<label>Displayed Error Message</label>
|
1081 |
+
<frontend_type>textarea</frontend_type>
|
1082 |
+
<sort_order>110</sort_order>
|
1083 |
+
<show_in_default>1</show_in_default>
|
1084 |
+
<show_in_website>1</show_in_website>
|
1085 |
+
<show_in_store>1</show_in_store>
|
1086 |
+
</specificerrmsg>-->
|
1087 |
+
<sort_order translate="label">
|
1088 |
+
<label>Sort order</label>
|
1089 |
+
<frontend_type>text</frontend_type>
|
1090 |
+
<sort_order>120</sort_order>
|
1091 |
+
<show_in_default>1</show_in_default>
|
1092 |
+
<show_in_website>1</show_in_website>
|
1093 |
+
<show_in_store>1</show_in_store>
|
1094 |
+
</sort_order>
|
1095 |
+
</fields>
|
1096 |
+
</chronopostcclassic>
|
1097 |
+
|
1098 |
+
<chronorelaiseurope translate="label">
|
1099 |
+
<label>Chrono Relais Europe</label>
|
1100 |
+
<frontend_type>text</frontend_type>
|
1101 |
+
<sort_order>26</sort_order>
|
1102 |
+
<show_in_default>1</show_in_default>
|
1103 |
+
<show_in_website>1</show_in_website>
|
1104 |
+
<show_in_store>1</show_in_store>
|
1105 |
+
<fields>
|
1106 |
+
<active translate="label">
|
1107 |
+
<label>Enabled</label>
|
1108 |
+
<frontend_type>select</frontend_type>
|
1109 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
1110 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1111 |
+
<sort_order>1</sort_order>
|
1112 |
+
<show_in_default>1</show_in_default>
|
1113 |
+
<show_in_website>1</show_in_website>
|
1114 |
+
<show_in_store>1</show_in_store>
|
1115 |
+
</active>
|
1116 |
+
<title translate="label">
|
1117 |
+
<label>Title</label>
|
1118 |
+
<frontend_type>text</frontend_type>
|
1119 |
+
<sort_order>2</sort_order>
|
1120 |
+
<show_in_default>1</show_in_default>
|
1121 |
+
<show_in_website>1</show_in_website>
|
1122 |
+
<show_in_store>1</show_in_store>
|
1123 |
+
</title>
|
1124 |
+
<config translate="label">
|
1125 |
+
<label>Configuration</label>
|
1126 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
1127 |
+
<comment>{configuration_syntax_help}</comment>
|
1128 |
+
<frontend_type>textarea</frontend_type>
|
1129 |
+
<sort_order>3</sort_order>
|
1130 |
+
<show_in_default>1</show_in_default>
|
1131 |
+
<show_in_website>1</show_in_website>
|
1132 |
+
<show_in_store>1</show_in_store>
|
1133 |
+
</config>
|
1134 |
+
<weight_limit translate="label">
|
1135 |
+
<label>Weight Limit</label>
|
1136 |
+
<frontend_type>text</frontend_type>
|
1137 |
+
<comment>in Kg</comment>
|
1138 |
+
<sort_order>7</sort_order>
|
1139 |
+
<show_in_default>1</show_in_default>
|
1140 |
+
<show_in_website>1</show_in_website>
|
1141 |
+
<show_in_store>1</show_in_store>
|
1142 |
+
</weight_limit>
|
1143 |
+
<quickcost translate="label">
|
1144 |
+
<label>Quickcost</label>
|
1145 |
+
<frontend_type>select</frontend_type>
|
1146 |
+
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
1147 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1148 |
+
<sort_order>10</sort_order>
|
1149 |
+
<show_in_default>1</show_in_default>
|
1150 |
+
<show_in_website>1</show_in_website>
|
1151 |
+
<show_in_store>0</show_in_store>
|
1152 |
+
</quickcost>
|
1153 |
+
<quickcost_marge translate="label">
|
1154 |
+
<label>Value to add to quickcost</label>
|
1155 |
+
<frontend_type>text</frontend_type>
|
1156 |
+
<sort_order>11</sort_order>
|
1157 |
+
<show_in_default>1</show_in_default>
|
1158 |
+
<show_in_website>1</show_in_website>
|
1159 |
+
<show_in_store>1</show_in_store>
|
1160 |
+
<validate>validate-number</validate>
|
1161 |
+
</quickcost_marge>
|
1162 |
+
<quickcost_marge_type translate="label">
|
1163 |
+
<label>Type value to add</label>
|
1164 |
+
<frontend_type>select</frontend_type>
|
1165 |
+
<source_model>chronorelais/config_source_margetype</source_model>
|
1166 |
+
<sort_order>12</sort_order>
|
1167 |
+
<show_in_default>1</show_in_default>
|
1168 |
+
<show_in_website>1</show_in_website>
|
1169 |
+
<show_in_store>1</show_in_store>
|
1170 |
+
</quickcost_marge_type>
|
1171 |
+
<quickcost_url>
|
1172 |
+
<label>Quickcost Url</label>
|
1173 |
+
<frontend_type>text</frontend_type>
|
1174 |
+
<sort_order>13</sort_order>
|
1175 |
+
<show_in_default>1</show_in_default>
|
1176 |
+
<show_in_website>1</show_in_website>
|
1177 |
+
<show_in_store>0</show_in_store>
|
1178 |
+
</quickcost_url>
|
1179 |
+
<show_google_map translate="label">
|
1180 |
+
<label>Show Google Map</label>
|
1181 |
+
<frontend_type>select</frontend_type>
|
1182 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1183 |
+
<sort_order>20</sort_order>
|
1184 |
+
<show_in_default>1</show_in_default>
|
1185 |
+
<show_in_website>1</show_in_website>
|
1186 |
+
<show_in_store>1</show_in_store>
|
1187 |
+
</show_google_map>
|
1188 |
+
<max_distance_search translate="label">
|
1189 |
+
<label>Max distance search</label>
|
1190 |
+
<frontend_type>text</frontend_type>
|
1191 |
+
<sort_order>30</sort_order>
|
1192 |
+
<show_in_default>1</show_in_default>
|
1193 |
+
<show_in_website>1</show_in_website>
|
1194 |
+
<show_in_store>0</show_in_store>
|
1195 |
+
</max_distance_search>
|
1196 |
+
<free_shipping_enable translate="label">
|
1197 |
+
<label>Free Shipping with Minimum Order Amount</label>
|
1198 |
+
<frontend_type>select</frontend_type>
|
1199 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
1200 |
+
<sort_order>40</sort_order>
|
1201 |
+
<show_in_default>1</show_in_default>
|
1202 |
+
<show_in_website>1</show_in_website>
|
1203 |
+
<show_in_store>1</show_in_store>
|
1204 |
+
</free_shipping_enable>
|
1205 |
+
<free_shipping_subtotal translate="label">
|
1206 |
+
<label>Minimum Order Amount for Free Shipping</label>
|
1207 |
+
<frontend_type>text</frontend_type>
|
1208 |
+
<sort_order>50</sort_order>
|
1209 |
+
<show_in_default>1</show_in_default>
|
1210 |
+
<show_in_website>1</show_in_website>
|
1211 |
+
<show_in_store>1</show_in_store>
|
1212 |
+
</free_shipping_subtotal>
|
1213 |
+
<application_fee translate="label">
|
1214 |
+
<label>Application Fee</label>
|
1215 |
+
<frontend_type>text</frontend_type>
|
1216 |
+
<sort_order>60</sort_order>
|
1217 |
+
<show_in_default>1</show_in_default>
|
1218 |
+
<show_in_website>1</show_in_website>
|
1219 |
+
<show_in_store>1</show_in_store>
|
1220 |
+
</application_fee>
|
1221 |
+
<handling_fee translate="label">
|
1222 |
+
<label>Handling Fee</label>
|
1223 |
+
<frontend_type>text</frontend_type>
|
1224 |
+
<sort_order>70</sort_order>
|
1225 |
+
<show_in_default>1</show_in_default>
|
1226 |
+
<show_in_website>1</show_in_website>
|
1227 |
+
<show_in_store>1</show_in_store>
|
1228 |
+
</handling_fee>
|
1229 |
+
<logo_url>
|
1230 |
+
<label>Logo Url</label>
|
1231 |
+
<frontend_type>text</frontend_type>
|
1232 |
+
<comment>{logo_ulr_help}</comment>
|
1233 |
+
<sort_order>80</sort_order>
|
1234 |
+
<show_in_default>1</show_in_default>
|
1235 |
+
<show_in_website>1</show_in_website>
|
1236 |
+
<show_in_store>1</show_in_store>
|
1237 |
+
</logo_url>
|
1238 |
+
<debug>
|
1239 |
+
<label>Debug</label>
|
1240 |
+
<comment>{debug_help}</comment>
|
1241 |
+
<frontend_type>text</frontend_type>
|
1242 |
+
<sort_order>90</sort_order>
|
1243 |
+
<show_in_default>1</show_in_default>
|
1244 |
+
<show_in_website>1</show_in_website>
|
1245 |
+
<show_in_store>1</show_in_store>
|
1246 |
+
</debug>
|
1247 |
+
<sort_order translate="label">
|
1248 |
+
<label>Sort order</label>
|
1249 |
+
<frontend_type>text</frontend_type>
|
1250 |
+
<sort_order>100</sort_order>
|
1251 |
+
<show_in_default>1</show_in_default>
|
1252 |
+
<show_in_website>1</show_in_website>
|
1253 |
+
<show_in_store>1</show_in_store>
|
1254 |
+
</sort_order>
|
1255 |
+
</fields>
|
1256 |
+
</chronorelaiseurope>
|
1257 |
+
|
1258 |
+
<!--<chronorelaisdom translate="label">
|
1259 |
+
<label>Chrono Relais DOM</label>
|
1260 |
+
<frontend_type>text</frontend_type>
|
1261 |
+
<sort_order>27</sort_order>
|
1262 |
+
<show_in_default>1</show_in_default>
|
1263 |
+
<show_in_website>1</show_in_website>
|
1264 |
+
<show_in_store>1</show_in_store>
|
1265 |
+
<fields>
|
1266 |
+
<active translate="label">
|
1267 |
+
<label>Enabled</label>
|
1268 |
+
<frontend_type>select</frontend_type>
|
1269 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
1270 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1271 |
+
<sort_order>1</sort_order>
|
1272 |
+
<show_in_default>1</show_in_default>
|
1273 |
+
<show_in_website>1</show_in_website>
|
1274 |
+
<show_in_store>1</show_in_store>
|
1275 |
+
</active>
|
1276 |
+
<title translate="label">
|
1277 |
+
<label>Title</label>
|
1278 |
+
<frontend_type>text</frontend_type>
|
1279 |
+
<sort_order>2</sort_order>
|
1280 |
+
<show_in_default>1</show_in_default>
|
1281 |
+
<show_in_website>1</show_in_website>
|
1282 |
+
<show_in_store>1</show_in_store>
|
1283 |
+
</title>
|
1284 |
+
<config translate="label">
|
1285 |
+
<label>Configuration</label>
|
1286 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
1287 |
+
<comment>{configuration_syntax_help}</comment>
|
1288 |
+
<frontend_type>textarea</frontend_type>
|
1289 |
+
<sort_order>3</sort_order>
|
1290 |
+
<show_in_default>1</show_in_default>
|
1291 |
+
<show_in_website>1</show_in_website>
|
1292 |
+
<show_in_store>1</show_in_store>
|
1293 |
+
</config>
|
1294 |
+
<weight_limit translate="label">
|
1295 |
+
<label>Weight Limit</label>
|
1296 |
+
<frontend_type>text</frontend_type>
|
1297 |
+
<comment>in Kg</comment>
|
1298 |
+
<sort_order>7</sort_order>
|
1299 |
+
<show_in_default>1</show_in_default>
|
1300 |
+
<show_in_website>1</show_in_website>
|
1301 |
+
<show_in_store>1</show_in_store>
|
1302 |
+
</weight_limit>
|
1303 |
+
<quickcost translate="label">
|
1304 |
+
<label>Quickcost</label>
|
1305 |
+
<frontend_type>select</frontend_type>
|
1306 |
+
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
1307 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1308 |
+
<sort_order>10</sort_order>
|
1309 |
+
<show_in_default>1</show_in_default>
|
1310 |
+
<show_in_website>1</show_in_website>
|
1311 |
+
<show_in_store>0</show_in_store>
|
1312 |
+
</quickcost>
|
1313 |
+
<quickcost_marge translate="label">
|
1314 |
+
<label>Value to add to quickcost</label>
|
1315 |
+
<frontend_type>text</frontend_type>
|
1316 |
+
<sort_order>11</sort_order>
|
1317 |
+
<show_in_default>1</show_in_default>
|
1318 |
+
<show_in_website>1</show_in_website>
|
1319 |
+
<show_in_store>1</show_in_store>
|
1320 |
+
<validate>validate-number</validate>
|
1321 |
+
</quickcost_marge>
|
1322 |
+
<quickcost_marge_type translate="label">
|
1323 |
+
<label>Type value to add</label>
|
1324 |
+
<frontend_type>select</frontend_type>
|
1325 |
+
<source_model>chronorelais/config_source_margetype</source_model>
|
1326 |
+
<sort_order>12</sort_order>
|
1327 |
+
<show_in_default>1</show_in_default>
|
1328 |
+
<show_in_website>1</show_in_website>
|
1329 |
+
<show_in_store>1</show_in_store>
|
1330 |
+
</quickcost_marge_type>
|
1331 |
+
<quickcost_url>
|
1332 |
+
<label>Quickcost Url</label>
|
1333 |
+
<frontend_type>text</frontend_type>
|
1334 |
+
<sort_order>13</sort_order>
|
1335 |
+
<show_in_default>1</show_in_default>
|
1336 |
+
<show_in_website>1</show_in_website>
|
1337 |
+
<show_in_store>0</show_in_store>
|
1338 |
+
</quickcost_url>
|
1339 |
+
<show_google_map translate="label">
|
1340 |
+
<label>Show Google Map</label>
|
1341 |
+
<frontend_type>select</frontend_type>
|
1342 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1343 |
+
<sort_order>20</sort_order>
|
1344 |
+
<show_in_default>1</show_in_default>
|
1345 |
+
<show_in_website>1</show_in_website>
|
1346 |
+
<show_in_store>1</show_in_store>
|
1347 |
+
</show_google_map>
|
1348 |
+
<max_distance_search translate="label">
|
1349 |
+
<label>Max distance search</label>
|
1350 |
+
<frontend_type>text</frontend_type>
|
1351 |
+
<sort_order>30</sort_order>
|
1352 |
+
<show_in_default>1</show_in_default>
|
1353 |
+
<show_in_website>1</show_in_website>
|
1354 |
+
<show_in_store>0</show_in_store>
|
1355 |
+
</max_distance_search>
|
1356 |
+
<free_shipping_enable translate="label">
|
1357 |
+
<label>Free Shipping with Minimum Order Amount</label>
|
1358 |
+
<frontend_type>select</frontend_type>
|
1359 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
1360 |
+
<sort_order>40</sort_order>
|
1361 |
+
<show_in_default>1</show_in_default>
|
1362 |
+
<show_in_website>1</show_in_website>
|
1363 |
+
<show_in_store>1</show_in_store>
|
1364 |
+
</free_shipping_enable>
|
1365 |
+
<free_shipping_subtotal translate="label">
|
1366 |
+
<label>Minimum Order Amount for Free Shipping</label>
|
1367 |
+
<frontend_type>text</frontend_type>
|
1368 |
+
<sort_order>50</sort_order>
|
1369 |
+
<show_in_default>1</show_in_default>
|
1370 |
+
<show_in_website>1</show_in_website>
|
1371 |
+
<show_in_store>1</show_in_store>
|
1372 |
+
</free_shipping_subtotal>
|
1373 |
+
<application_fee translate="label">
|
1374 |
+
<label>Application Fee</label>
|
1375 |
+
<frontend_type>text</frontend_type>
|
1376 |
+
<sort_order>60</sort_order>
|
1377 |
+
<show_in_default>1</show_in_default>
|
1378 |
+
<show_in_website>1</show_in_website>
|
1379 |
+
<show_in_store>1</show_in_store>
|
1380 |
+
</application_fee>
|
1381 |
+
<handling_fee translate="label">
|
1382 |
+
<label>Handling Fee</label>
|
1383 |
+
<frontend_type>text</frontend_type>
|
1384 |
+
<sort_order>70</sort_order>
|
1385 |
+
<show_in_default>1</show_in_default>
|
1386 |
+
<show_in_website>1</show_in_website>
|
1387 |
+
<show_in_store>1</show_in_store>
|
1388 |
+
</handling_fee>
|
1389 |
+
<logo_url>
|
1390 |
+
<label>Logo Url</label>
|
1391 |
+
<frontend_type>text</frontend_type>
|
1392 |
+
<comment>{logo_ulr_help}</comment>
|
1393 |
+
<sort_order>80</sort_order>
|
1394 |
+
<show_in_default>1</show_in_default>
|
1395 |
+
<show_in_website>1</show_in_website>
|
1396 |
+
<show_in_store>1</show_in_store>
|
1397 |
+
</logo_url>
|
1398 |
+
<debug>
|
1399 |
+
<label>Debug</label>
|
1400 |
+
<comment>{debug_help}</comment>
|
1401 |
+
<frontend_type>text</frontend_type>
|
1402 |
+
<sort_order>90</sort_order>
|
1403 |
+
<show_in_default>1</show_in_default>
|
1404 |
+
<show_in_website>1</show_in_website>
|
1405 |
+
<show_in_store>1</show_in_store>
|
1406 |
+
</debug>
|
1407 |
+
<deliver_on_saturday translate="label comment">
|
1408 |
+
<label>Livraison le Samedi</label>
|
1409 |
+
<frontend_type>select</frontend_type>
|
1410 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1411 |
+
<sort_order>100</sort_order>
|
1412 |
+
<show_in_default>1</show_in_default>
|
1413 |
+
<show_in_website>1</show_in_website>
|
1414 |
+
<show_in_store>1</show_in_store>
|
1415 |
+
</deliver_on_saturday>
|
1416 |
+
<sort_order translate="label">
|
1417 |
+
<label>Sort order</label>
|
1418 |
+
<frontend_type>text</frontend_type>
|
1419 |
+
<sort_order>110</sort_order>
|
1420 |
+
<show_in_default>1</show_in_default>
|
1421 |
+
<show_in_website>1</show_in_website>
|
1422 |
+
<show_in_store>1</show_in_store>
|
1423 |
+
</sort_order>
|
1424 |
+
</fields>
|
1425 |
+
</chronorelaisdom>-->
|
1426 |
+
|
1427 |
+
<chronopostsameday translate="label">
|
1428 |
+
<label>Chronopost SAMEDAY</label>
|
1429 |
+
<frontend_type>text</frontend_type>
|
1430 |
+
<sort_order>28</sort_order>
|
1431 |
+
<show_in_default>1</show_in_default>
|
1432 |
+
<show_in_website>1</show_in_website>
|
1433 |
+
<show_in_store>1</show_in_store>
|
1434 |
+
<fields>
|
1435 |
+
<active translate="label">
|
1436 |
+
<label>Enabled</label>
|
1437 |
+
<frontend_type>select</frontend_type>
|
1438 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
1439 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1440 |
+
<sort_order>1</sort_order>
|
1441 |
+
<show_in_default>1</show_in_default>
|
1442 |
+
<show_in_website>1</show_in_website>
|
1443 |
+
<show_in_store>1</show_in_store>
|
1444 |
+
</active>
|
1445 |
+
<title translate="label">
|
1446 |
+
<label>Title</label>
|
1447 |
+
<frontend_type>text</frontend_type>
|
1448 |
+
<sort_order>2</sort_order>
|
1449 |
+
<show_in_default>1</show_in_default>
|
1450 |
+
<show_in_website>1</show_in_website>
|
1451 |
+
<show_in_store>1</show_in_store>
|
1452 |
+
</title>
|
1453 |
+
<config translate="label">
|
1454 |
+
<label>Configuration</label>
|
1455 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
1456 |
+
<comment>{configuration_syntax_help}</comment>
|
1457 |
+
<frontend_type>textarea</frontend_type>
|
1458 |
+
<sort_order>3</sort_order>
|
1459 |
+
<show_in_default>1</show_in_default>
|
1460 |
+
<show_in_website>1</show_in_website>
|
1461 |
+
<show_in_store>1</show_in_store>
|
1462 |
+
</config>
|
1463 |
+
<weight_limit translate="label">
|
1464 |
+
<label>Weight Limit</label>
|
1465 |
+
<frontend_type>text</frontend_type>
|
1466 |
+
<comment>in Kg</comment>
|
1467 |
+
<sort_order>7</sort_order>
|
1468 |
+
<show_in_default>1</show_in_default>
|
1469 |
+
<show_in_website>1</show_in_website>
|
1470 |
+
<show_in_store>1</show_in_store>
|
1471 |
+
</weight_limit>
|
1472 |
+
<quickcost translate="label">
|
1473 |
+
<label>Quickcost</label>
|
1474 |
+
<frontend_type>select</frontend_type>
|
1475 |
+
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
1476 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1477 |
+
<sort_order>10</sort_order>
|
1478 |
+
<show_in_default>1</show_in_default>
|
1479 |
+
<show_in_website>1</show_in_website>
|
1480 |
+
<show_in_store>0</show_in_store>
|
1481 |
+
</quickcost>
|
1482 |
+
<quickcost_marge translate="label">
|
1483 |
+
<label>Value to add to quickcost</label>
|
1484 |
+
<frontend_type>text</frontend_type>
|
1485 |
+
<sort_order>11</sort_order>
|
1486 |
+
<show_in_default>1</show_in_default>
|
1487 |
+
<show_in_website>1</show_in_website>
|
1488 |
+
<show_in_store>1</show_in_store>
|
1489 |
+
<validate>validate-number</validate>
|
1490 |
+
</quickcost_marge>
|
1491 |
+
<quickcost_marge_type translate="label">
|
1492 |
+
<label>Type value to add</label>
|
1493 |
+
<frontend_type>select</frontend_type>
|
1494 |
+
<source_model>chronorelais/config_source_margetype</source_model>
|
1495 |
+
<sort_order>12</sort_order>
|
1496 |
+
<show_in_default>1</show_in_default>
|
1497 |
+
<show_in_website>1</show_in_website>
|
1498 |
+
<show_in_store>1</show_in_store>
|
1499 |
+
</quickcost_marge_type>
|
1500 |
+
<quickcost_url>
|
1501 |
+
<label>Quickcost Url</label>
|
1502 |
+
<frontend_type>text</frontend_type>
|
1503 |
+
<sort_order>13</sort_order>
|
1504 |
+
<show_in_default>1</show_in_default>
|
1505 |
+
<show_in_website>1</show_in_website>
|
1506 |
+
<show_in_store>0</show_in_store>
|
1507 |
+
</quickcost_url>
|
1508 |
+
<free_shipping_enable translate="label">
|
1509 |
+
<label>Free Shipping on the Amount</label>
|
1510 |
+
<frontend_type>select</frontend_type>
|
1511 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
1512 |
+
<sort_order>20</sort_order>
|
1513 |
+
<show_in_default>1</show_in_default>
|
1514 |
+
<show_in_website>1</show_in_website>
|
1515 |
+
<show_in_store>1</show_in_store>
|
1516 |
+
</free_shipping_enable>
|
1517 |
+
<free_shipping_subtotal translate="label">
|
1518 |
+
<label>Minimum Amount for Free Shipping</label>
|
1519 |
+
<frontend_type>text</frontend_type>
|
1520 |
+
<sort_order>30</sort_order>
|
1521 |
+
<show_in_default>1</show_in_default>
|
1522 |
+
<show_in_website>1</show_in_website>
|
1523 |
+
<show_in_store>0</show_in_store>
|
1524 |
+
</free_shipping_subtotal>
|
1525 |
+
<application_fee translate="label">
|
1526 |
+
<label>Application Fee</label>
|
1527 |
+
<frontend_type>text</frontend_type>
|
1528 |
+
<sort_order>40</sort_order>
|
1529 |
+
<show_in_default>1</show_in_default>
|
1530 |
+
<show_in_website>1</show_in_website>
|
1531 |
+
<show_in_store>1</show_in_store>
|
1532 |
+
</application_fee>
|
1533 |
+
<handling_fee translate="label">
|
1534 |
+
<label>Handling Fee</label>
|
1535 |
+
<frontend_type>text</frontend_type>
|
1536 |
+
<sort_order>50</sort_order>
|
1537 |
+
<show_in_default>1</show_in_default>
|
1538 |
+
<show_in_website>1</show_in_website>
|
1539 |
+
<show_in_store>1</show_in_store>
|
1540 |
+
</handling_fee>
|
1541 |
+
<logo_url>
|
1542 |
+
<label>Logo Url</label>
|
1543 |
+
<frontend_type>text</frontend_type>
|
1544 |
+
<comment>{logo_ulr_help}</comment>
|
1545 |
+
<sort_order>60</sort_order>
|
1546 |
+
<show_in_default>1</show_in_default>
|
1547 |
+
<show_in_website>1</show_in_website>
|
1548 |
+
<show_in_store>1</show_in_store>
|
1549 |
+
</logo_url>
|
1550 |
+
<debug>
|
1551 |
+
<label>Debug</label>
|
1552 |
+
<comment>{debug_help}</comment>
|
1553 |
+
<frontend_type>text</frontend_type>
|
1554 |
+
<sort_order>70</sort_order>
|
1555 |
+
<show_in_default>1</show_in_default>
|
1556 |
+
<show_in_website>1</show_in_website>
|
1557 |
+
<show_in_store>1</show_in_store>
|
1558 |
+
</debug>
|
1559 |
+
<!--<stop_to_first_match translate="label">
|
1560 |
+
<label>Stop to first match</label>
|
1561 |
+
<frontend_type>select</frontend_type>
|
1562 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1563 |
+
<sort_order>80</sort_order>
|
1564 |
+
<show_in_default>1</show_in_default>
|
1565 |
+
<show_in_website>1</show_in_website>
|
1566 |
+
<show_in_store>1</show_in_store>
|
1567 |
+
</stop_to_first_match>-->
|
1568 |
+
<deliver_on_saturday translate="label comment">
|
1569 |
+
<label>Livraison le Samedi</label>
|
1570 |
+
<frontend_type>select</frontend_type>
|
1571 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1572 |
+
<sort_order>90</sort_order>
|
1573 |
+
<show_in_default>1</show_in_default>
|
1574 |
+
<show_in_website>1</show_in_website>
|
1575 |
+
<show_in_store>1</show_in_store>
|
1576 |
+
</deliver_on_saturday>
|
1577 |
+
<delivery_time_limit>
|
1578 |
+
<label>Disable after</label>
|
1579 |
+
<comment>The module will be disabled after the selected hour. If it is not working, check your timezone settings in General config.</comment>
|
1580 |
+
<frontend_type>select</frontend_type>
|
1581 |
+
<source_model>chronorelais/config_source_time</source_model>
|
1582 |
+
<sort_order>100</sort_order>
|
1583 |
+
<show_in_default>1</show_in_default>
|
1584 |
+
<show_in_website>1</show_in_website>
|
1585 |
+
<show_in_store>1</show_in_store>
|
1586 |
+
</delivery_time_limit>
|
1587 |
+
<!--<showmethod translate="label">
|
1588 |
+
<label>Show Method if Not Applicable</label>
|
1589 |
+
<frontend_type>select</frontend_type>
|
1590 |
+
<sort_order>100</sort_order>
|
1591 |
+
<frontend_class>shipping-skip-hide</frontend_class>
|
1592 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1593 |
+
<show_in_default>1</show_in_default>
|
1594 |
+
<show_in_website>1</show_in_website>
|
1595 |
+
<show_in_store>0</show_in_store>
|
1596 |
+
</showmethod>
|
1597 |
+
<specificerrmsg translate="label">
|
1598 |
+
<label>Displayed Error Message</label>
|
1599 |
+
<frontend_type>textarea</frontend_type>
|
1600 |
+
<sort_order>110</sort_order>
|
1601 |
+
<show_in_default>1</show_in_default>
|
1602 |
+
<show_in_website>1</show_in_website>
|
1603 |
+
<show_in_store>1</show_in_store>
|
1604 |
+
</specificerrmsg>-->
|
1605 |
+
<sort_order translate="label">
|
1606 |
+
<label>Sort order</label>
|
1607 |
+
<frontend_type>text</frontend_type>
|
1608 |
+
<sort_order>120</sort_order>
|
1609 |
+
<show_in_default>1</show_in_default>
|
1610 |
+
<show_in_website>1</show_in_website>
|
1611 |
+
<show_in_store>1</show_in_store>
|
1612 |
+
</sort_order>
|
1613 |
+
</fields>
|
1614 |
+
</chronopostsameday>
|
1615 |
+
|
1616 |
+
<chronopostsrdv translate="label">
|
1617 |
+
<label>Chronopost Sur Rendez-vous</label>
|
1618 |
+
<frontend_type>text</frontend_type>
|
1619 |
+
<sort_order>30</sort_order>
|
1620 |
+
<show_in_default>1</show_in_default>
|
1621 |
+
<show_in_website>1</show_in_website>
|
1622 |
+
<show_in_store>1</show_in_store>
|
1623 |
+
<fields>
|
1624 |
+
<active translate="label">
|
1625 |
+
<label>Enabled</label>
|
1626 |
+
<frontend_type>select</frontend_type>
|
1627 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_enabled</frontend_model>
|
1628 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1629 |
+
<sort_order>1</sort_order>
|
1630 |
+
<show_in_default>1</show_in_default>
|
1631 |
+
<show_in_website>1</show_in_website>
|
1632 |
+
<show_in_store>1</show_in_store>
|
1633 |
+
</active>
|
1634 |
+
<title translate="label">
|
1635 |
+
<label>Title</label>
|
1636 |
+
<frontend_type>text</frontend_type>
|
1637 |
+
<sort_order>2</sort_order>
|
1638 |
+
<show_in_default>1</show_in_default>
|
1639 |
+
<show_in_website>1</show_in_website>
|
1640 |
+
<show_in_store>1</show_in_store>
|
1641 |
+
</title>
|
1642 |
+
<config translate="label">
|
1643 |
+
<label>Configuration</label>
|
1644 |
+
<frontend_model>chronorelais/adminhtml_system_config_form_field_config</frontend_model>
|
1645 |
+
<comment>{configuration_syntax_help}</comment>
|
1646 |
+
<frontend_type>textarea</frontend_type>
|
1647 |
+
<sort_order>3</sort_order>
|
1648 |
+
<show_in_default>1</show_in_default>
|
1649 |
+
<show_in_website>1</show_in_website>
|
1650 |
+
<show_in_store>1</show_in_store>
|
1651 |
+
</config>
|
1652 |
+
<weight_limit translate="label">
|
1653 |
+
<label>Weight Limit</label>
|
1654 |
+
<frontend_type>text</frontend_type>
|
1655 |
+
<comment>in Kg</comment>
|
1656 |
+
<sort_order>7</sort_order>
|
1657 |
+
<show_in_default>1</show_in_default>
|
1658 |
+
<show_in_website>1</show_in_website>
|
1659 |
+
<show_in_store>1</show_in_store>
|
1660 |
+
</weight_limit>
|
1661 |
+
<quickcost translate="label">
|
1662 |
+
<label>Quickcost</label>
|
1663 |
+
<frontend_type>select</frontend_type>
|
1664 |
+
<comment>No : cost is obtained from your rate grid ; Yes : cost is fetched from URL below</comment>
|
1665 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1666 |
+
<sort_order>10</sort_order>
|
1667 |
+
<show_in_default>1</show_in_default>
|
1668 |
+
<show_in_website>1</show_in_website>
|
1669 |
+
<show_in_store>0</show_in_store>
|
1670 |
+
</quickcost>
|
1671 |
+
<quickcost_marge translate="label">
|
1672 |
+
<label>Value to add to quickcost</label>
|
1673 |
+
<frontend_type>text</frontend_type>
|
1674 |
+
<sort_order>11</sort_order>
|
1675 |
+
<show_in_default>1</show_in_default>
|
1676 |
+
<show_in_website>1</show_in_website>
|
1677 |
+
<show_in_store>1</show_in_store>
|
1678 |
+
<validate>validate-number</validate>
|
1679 |
+
</quickcost_marge>
|
1680 |
+
<quickcost_marge_type translate="label">
|
1681 |
+
<label>Type value to add</label>
|
1682 |
+
<frontend_type>select</frontend_type>
|
1683 |
+
<source_model>chronorelais/config_source_margetype</source_model>
|
1684 |
+
<sort_order>12</sort_order>
|
1685 |
+
<show_in_default>1</show_in_default>
|
1686 |
+
<show_in_website>1</show_in_website>
|
1687 |
+
<show_in_store>1</show_in_store>
|
1688 |
+
</quickcost_marge_type>
|
1689 |
+
<quickcost_url>
|
1690 |
+
<label>Quickcost Url</label>
|
1691 |
+
<frontend_type>text</frontend_type>
|
1692 |
+
<sort_order>13</sort_order>
|
1693 |
+
<show_in_default>1</show_in_default>
|
1694 |
+
<show_in_website>1</show_in_website>
|
1695 |
+
<show_in_store>0</show_in_store>
|
1696 |
+
</quickcost_url>
|
1697 |
+
<free_shipping_enable translate="label">
|
1698 |
+
<label>Free Shipping on the Amount</label>
|
1699 |
+
<frontend_type>select</frontend_type>
|
1700 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
1701 |
+
<sort_order>20</sort_order>
|
1702 |
+
<show_in_default>1</show_in_default>
|
1703 |
+
<show_in_website>1</show_in_website>
|
1704 |
+
<show_in_store>1</show_in_store>
|
1705 |
+
</free_shipping_enable>
|
1706 |
+
<free_shipping_subtotal translate="label">
|
1707 |
+
<label>Minimum Amount for Free Shipping</label>
|
1708 |
+
<frontend_type>text</frontend_type>
|
1709 |
+
<sort_order>30</sort_order>
|
1710 |
+
<show_in_default>1</show_in_default>
|
1711 |
+
<show_in_website>1</show_in_website>
|
1712 |
+
<show_in_store>0</show_in_store>
|
1713 |
+
</free_shipping_subtotal>
|
1714 |
+
<application_fee translate="label">
|
1715 |
+
<label>Application Fee</label>
|
1716 |
+
<frontend_type>text</frontend_type>
|
1717 |
+
<sort_order>40</sort_order>
|
1718 |
+
<show_in_default>1</show_in_default>
|
1719 |
+
<show_in_website>1</show_in_website>
|
1720 |
+
<show_in_store>1</show_in_store>
|
1721 |
+
</application_fee>
|
1722 |
+
<handling_fee translate="label">
|
1723 |
+
<label>Handling Fee</label>
|
1724 |
+
<frontend_type>text</frontend_type>
|
1725 |
+
<sort_order>50</sort_order>
|
1726 |
+
<show_in_default>1</show_in_default>
|
1727 |
+
<show_in_website>1</show_in_website>
|
1728 |
+
<show_in_store>1</show_in_store>
|
1729 |
+
</handling_fee>
|
1730 |
+
<rdv_config translate="label">
|
1731 |
+
<label>Configuration RDV</label>
|
1732 |
+
<frontend_type>text</frontend_type>
|
1733 |
+
<frontend_model>chronorelais/adminhtml_system_config_rdvconfig</frontend_model>
|
1734 |
+
<sort_order>55</sort_order>
|
1735 |
+
<show_in_default>1</show_in_default>
|
1736 |
+
<show_in_website>1</show_in_website>
|
1737 |
+
<show_in_store>1</show_in_store>
|
1738 |
+
</rdv_config>
|
1739 |
+
<logo_url>
|
1740 |
+
<label>Logo Url</label>
|
1741 |
+
<frontend_type>text</frontend_type>
|
1742 |
+
<comment>{logo_ulr_help}</comment>
|
1743 |
+
<sort_order>60</sort_order>
|
1744 |
+
<show_in_default>1</show_in_default>
|
1745 |
+
<show_in_website>1</show_in_website>
|
1746 |
+
<show_in_store>1</show_in_store>
|
1747 |
+
</logo_url>
|
1748 |
+
<debug>
|
1749 |
+
<label>Debug</label>
|
1750 |
+
<comment>{debug_help}</comment>
|
1751 |
+
<frontend_type>text</frontend_type>
|
1752 |
+
<sort_order>70</sort_order>
|
1753 |
+
<show_in_default>1</show_in_default>
|
1754 |
+
<show_in_website>1</show_in_website>
|
1755 |
+
<show_in_store>1</show_in_store>
|
1756 |
+
</debug>
|
1757 |
+
<!--<stop_to_first_match translate="label">
|
1758 |
+
<label>Stop to first match</label>
|
1759 |
+
<frontend_type>select</frontend_type>
|
1760 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1761 |
+
<sort_order>80</sort_order>
|
1762 |
+
<show_in_default>1</show_in_default>
|
1763 |
+
<show_in_website>1</show_in_website>
|
1764 |
+
<show_in_store>1</show_in_store>
|
1765 |
+
</stop_to_first_match>-->
|
1766 |
+
<deliver_on_saturday translate="label comment">
|
1767 |
+
<label>Livraison le Samedi</label>
|
1768 |
+
<frontend_type>select</frontend_type>
|
1769 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1770 |
+
<sort_order>90</sort_order>
|
1771 |
+
<show_in_default>1</show_in_default>
|
1772 |
+
<show_in_website>1</show_in_website>
|
1773 |
+
<show_in_store>1</show_in_store>
|
1774 |
+
</deliver_on_saturday>
|
1775 |
+
<!--<showmethod translate="label">
|
1776 |
+
<label>Show Method if Not Applicable</label>
|
1777 |
+
<frontend_type>select</frontend_type>
|
1778 |
+
<sort_order>100</sort_order>
|
1779 |
+
<frontend_class>shipping-skip-hide</frontend_class>
|
1780 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1781 |
+
<show_in_default>1</show_in_default>
|
1782 |
+
<show_in_website>1</show_in_website>
|
1783 |
+
<show_in_store>0</show_in_store>
|
1784 |
+
</showmethod>
|
1785 |
+
<specificerrmsg translate="label">
|
1786 |
+
<label>Displayed Error Message</label>
|
1787 |
+
<frontend_type>textarea</frontend_type>
|
1788 |
+
<sort_order>110</sort_order>
|
1789 |
+
<show_in_default>1</show_in_default>
|
1790 |
+
<show_in_website>1</show_in_website>
|
1791 |
+
<show_in_store>1</show_in_store>
|
1792 |
+
</specificerrmsg>-->
|
1793 |
+
<sort_order translate="label">
|
1794 |
+
<label>Sort order</label>
|
1795 |
+
<frontend_type>text</frontend_type>
|
1796 |
+
<sort_order>120</sort_order>
|
1797 |
+
<show_in_default>1</show_in_default>
|
1798 |
+
<show_in_website>1</show_in_website>
|
1799 |
+
<show_in_store>1</show_in_store>
|
1800 |
+
</sort_order>
|
1801 |
+
</fields>
|
1802 |
+
</chronopostsrdv>
|
1803 |
+
|
1804 |
+
</groups>
|
1805 |
+
</carriers>
|
1806 |
+
</sections>
|
1807 |
+
|
1808 |
+
<sections>
|
1809 |
+
<chronorelais>
|
1810 |
+
<label>Configuration</label>
|
1811 |
+
<tab>chronopost</tab>
|
1812 |
+
<frontend_type>text</frontend_type>
|
1813 |
+
<sort_order>2000</sort_order>
|
1814 |
+
<show_in_default>1</show_in_default>
|
1815 |
+
<show_in_website>1</show_in_website>
|
1816 |
+
<show_in_store>1</show_in_store>
|
1817 |
+
<groups>
|
1818 |
+
<shipping translate="label">
|
1819 |
+
<label>General</label>
|
1820 |
+
<frontend_type>text</frontend_type>
|
1821 |
+
<sort_order>10</sort_order>
|
1822 |
+
<show_in_default>1</show_in_default>
|
1823 |
+
<show_in_website>1</show_in_website>
|
1824 |
+
<show_in_store>1</show_in_store>
|
1825 |
+
<fields>
|
1826 |
+
<account_number translate="label">
|
1827 |
+
<label>N° de compte Chronopost</label>
|
1828 |
+
<frontend_type>text</frontend_type>
|
1829 |
+
<sort_order>7</sort_order>
|
1830 |
+
<show_in_default>1</show_in_default>
|
1831 |
+
<show_in_website>1</show_in_website>
|
1832 |
+
<show_in_store>1</show_in_store>
|
1833 |
+
</account_number>
|
1834 |
+
<sub_account_number translate="label">
|
1835 |
+
<label>N° de sous-compte</label>
|
1836 |
+
<comment>must be 3 digits or empty</comment>
|
1837 |
+
<frontend_type>text</frontend_type>
|
1838 |
+
<sort_order>8</sort_order>
|
1839 |
+
<show_in_default>1</show_in_default>
|
1840 |
+
<show_in_website>1</show_in_website>
|
1841 |
+
<show_in_store>1</show_in_store>
|
1842 |
+
</sub_account_number>
|
1843 |
+
<account_pass translate="label">
|
1844 |
+
<label>Mot de passe Chronopost</label>
|
1845 |
+
<frontend_type>text</frontend_type>
|
1846 |
+
<button_label>Vérifier mes identifiants</button_label>
|
1847 |
+
<frontend_model>chronorelais/adminhtml_system_config_checklogin</frontend_model>
|
1848 |
+
<sort_order>9</sort_order>
|
1849 |
+
<show_in_default>1</show_in_default>
|
1850 |
+
<show_in_website>1</show_in_website>
|
1851 |
+
<show_in_store>1</show_in_store>
|
1852 |
+
</account_pass>
|
1853 |
+
<google_map_api translate="label">
|
1854 |
+
<label>Google Map v3 API Key</label>
|
1855 |
+
<comment>The Google Maps JavaScript API Version 2 has been officially deprecated. Please use v3 API now. Get your key at https://code.google.com/apis/console/.</comment>
|
1856 |
+
<frontend_type>text</frontend_type>
|
1857 |
+
<sort_order>10</sort_order>
|
1858 |
+
<show_in_default>1</show_in_default>
|
1859 |
+
<show_in_website>1</show_in_website>
|
1860 |
+
<show_in_store>1</show_in_store>
|
1861 |
+
</google_map_api>
|
1862 |
+
<tracking_view_url translate="label">
|
1863 |
+
<label>Tracking URL</label>
|
1864 |
+
<comment>For English language, replace fr_FR with en_GB in the above url</comment>
|
1865 |
+
<frontend_type>text</frontend_type>
|
1866 |
+
<sort_order>20</sort_order>
|
1867 |
+
<show_in_default>1</show_in_default>
|
1868 |
+
<show_in_website>1</show_in_website>
|
1869 |
+
<show_in_store>1</show_in_store>
|
1870 |
+
</tracking_view_url>
|
1871 |
+
<gs_path translate="label">
|
1872 |
+
<label>Chemin GS</label>
|
1873 |
+
<comment>Chemin d'accès à la commande gs (Ghostscript)</comment>
|
1874 |
+
<frontend_type>text</frontend_type>
|
1875 |
+
<sort_order>21</sort_order>
|
1876 |
+
<show_in_default>1</show_in_default>
|
1877 |
+
<show_in_website>0</show_in_website>
|
1878 |
+
<show_in_store>0</show_in_store>
|
1879 |
+
</gs_path>
|
1880 |
+
|
1881 |
+
</fields>
|
1882 |
+
</shipping>
|
1883 |
+
<export_css translate="label">
|
1884 |
+
<label>Export Configuration CSS</label>
|
1885 |
+
<frontend_type>text</frontend_type>
|
1886 |
+
<sort_order>20</sort_order>
|
1887 |
+
<show_in_default>1</show_in_default>
|
1888 |
+
<show_in_website>1</show_in_website>
|
1889 |
+
<show_in_store>1</show_in_store>
|
1890 |
+
<fields>
|
1891 |
+
<file_extension translate="label">
|
1892 |
+
<label>File Extension</label>
|
1893 |
+
<frontend_type>select</frontend_type>
|
1894 |
+
<source_model>chronorelais/config_source_fileExtension</source_model>
|
1895 |
+
<sort_order>10</sort_order>
|
1896 |
+
<show_in_default>1</show_in_default>
|
1897 |
+
<show_in_website>1</show_in_website>
|
1898 |
+
<show_in_store>1</show_in_store>
|
1899 |
+
</file_extension>
|
1900 |
+
<file_charset translate="label">
|
1901 |
+
<label>File Charset</label>
|
1902 |
+
<frontend_type>select</frontend_type>
|
1903 |
+
<source_model>chronorelais/config_source_fileCharset</source_model>
|
1904 |
+
<sort_order>20</sort_order>
|
1905 |
+
<show_in_default>1</show_in_default>
|
1906 |
+
<show_in_website>1</show_in_website>
|
1907 |
+
<show_in_store>1</show_in_store>
|
1908 |
+
</file_charset>
|
1909 |
+
<endofline_character translate="label">
|
1910 |
+
<label>End Of Line Character</label>
|
1911 |
+
<frontend_type>select</frontend_type>
|
1912 |
+
<source_model>chronorelais/config_source_endOfLineCharacter</source_model>
|
1913 |
+
<sort_order>30</sort_order>
|
1914 |
+
<show_in_default>1</show_in_default>
|
1915 |
+
<show_in_website>1</show_in_website>
|
1916 |
+
<show_in_store>1</show_in_store>
|
1917 |
+
</endofline_character>
|
1918 |
+
<field_delimiter translate="label">
|
1919 |
+
<label>Field Delimiter</label>
|
1920 |
+
<frontend_type>select</frontend_type>
|
1921 |
+
<source_model>chronorelais/config_source_fieldDelimiter</source_model>
|
1922 |
+
<sort_order>40</sort_order>
|
1923 |
+
<show_in_default>1</show_in_default>
|
1924 |
+
<show_in_website>1</show_in_website>
|
1925 |
+
<show_in_store>1</show_in_store>
|
1926 |
+
</field_delimiter>
|
1927 |
+
<field_separator translate="label">
|
1928 |
+
<label>Field Separator</label>
|
1929 |
+
<frontend_type>select</frontend_type>
|
1930 |
+
<source_model>chronorelais/config_source_fieldSeparator</source_model>
|
1931 |
+
<sort_order>50</sort_order>
|
1932 |
+
<show_in_default>1</show_in_default>
|
1933 |
+
<show_in_website>1</show_in_website>
|
1934 |
+
<show_in_store>1</show_in_store>
|
1935 |
+
</field_separator>
|
1936 |
+
</fields>
|
1937 |
+
</export_css>
|
1938 |
+
<export_cso translate="label">
|
1939 |
+
<label>Export Configuration CSO</label>
|
1940 |
+
<frontend_type>text</frontend_type>
|
1941 |
+
<sort_order>21</sort_order>
|
1942 |
+
<show_in_default>1</show_in_default>
|
1943 |
+
<show_in_website>1</show_in_website>
|
1944 |
+
<show_in_store>1</show_in_store>
|
1945 |
+
<fields>
|
1946 |
+
<file_extension translate="label">
|
1947 |
+
<label>File Extension</label>
|
1948 |
+
<frontend_type>select</frontend_type>
|
1949 |
+
<source_model>chronorelais/config_source_fileExtension</source_model>
|
1950 |
+
<sort_order>10</sort_order>
|
1951 |
+
<show_in_default>1</show_in_default>
|
1952 |
+
<show_in_website>1</show_in_website>
|
1953 |
+
<show_in_store>1</show_in_store>
|
1954 |
+
</file_extension>
|
1955 |
+
<file_charset tran
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|