* needs please refer to http://www.prestashop.com for more information.
 *
 *  @author PrestaShop SA <*****@*****.**>
 *  @author Quadra Informatique <*****@*****.**>
 *  @copyright  2007-2013 PrestaShop SA / 1997-2013 Quadra Informatique
 *  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 *  International Registered Trademark & Property of PrestaShop SA
 */
include '../../config/config.inc.php';
include '../../init.php';
require_once _PS_MODULE_DIR_ . 'socolissimo/classes/SCFields.php';
/* Init the Context (inherit Socolissimo and handle error) */
if (!Tools::getValue('DELIVERYMODE')) {
    $so = new SCFields(Tools::getValue('deliveryMode'));
} else {
    $so = new SCFields(Tools::getValue('DELIVERYMODE'));
}
/* api 4.0 */
/* Init the Display */
$display = new BWDisplay();
$display->setTemplate(dirname(__FILE__) . '/views/templates/front/error.tpl');
$errors_list = array();
$redirect = __PS_BASE_URI__ . (version_compare(_PS_VERSION_, '1.5', '<') ? 'order.php?' : 'index.php?controller=order&');
$so->context->smarty->assign('so_url_back', $redirect);
$return = array();
/* If error code not defined or empty / null */
$errors_codes = ($tab = Tools::getValue('ERRORCODE')) ? explode(' ', trim($tab)) : array();
/* If no required error code, start to get the POST data */
if (!$so->checkErrors($errors_codes, SCError::REQUIRED)) {
    foreach ($_POST as $key => $val) {
        if ($so->isAvailableFields($key)) {
 * @copyright 1997-2013 Quadra Informatique
 * @version Release: $Revision: 1.0 $
 * @license http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 *
 * ---------------------------------------------------------------------------------
 */
include '../../config/config.inc.php';
include '../../init.php';
include '../../header.php';
require_once _PS_MODULE_DIR_ . 'socolissimo/socolissimo.php';
require_once _PS_MODULE_DIR_ . 'socolissimo/classes/SCFields.php';
$validReturn = array('PUDOFOID', 'CECIVILITY', 'CENAME', 'CEFIRSTNAME', 'CECOMPANYNAME', 'CEEMAIL', 'CEPHONENUMBER', 'DELIVERYMODE', 'CEADRESS1', 'CEADRESS2', 'CEADRESS3', 'CEADRESS4', 'CEZIPCODE', 'CEDOORCODE1', 'CEDOORCODE2', 'CEENTRYPHONE', 'DYPREPARATIONTIME', 'DYFORWARDINGCHARGES', 'ORDERID', 'SIGNATURE', 'ERRORCODE', 'TRPARAMPLUS', 'TRCLIENTNUMBER', 'PRID', 'PRNAME', 'PRCOMPLADRESS', 'PRADRESS1', 'PRADRESS2', 'PRZIPCODE', 'PRTOWN', 'CETOWN', 'TRADERCOMPANYNAME', 'CEDELIVERYINFORMATION', 'CEDOORCODE1', 'CEDOORCODE2');
//list of non-blocking error
$nonBlockingError = array(133, 131, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501);
$so = new Socolissimo();
$so_fields = new SCFields(Tools::getValue('DELIVERYMODE'));
$return = array();
foreach ($_POST as $key => $val) {
    if ($so_fields->isAvailableFields($key)) {
        $return[strtoupper($key)] = stripslashes($val);
    }
}
$return['TRRETURNURLKO'] = Tools::getValue('TRRETURNURLKO');
if (isset($return['SIGNATURE']) and isset($return['CENAME']) and isset($return['DYPREPARATIONTIME']) and isset($return['DYFORWARDINGCHARGES']) and isset($return['TRCLIENTNUMBER']) and isset($return['ORDERID']) and isset($return['TRCLIENTNUMBER'])) {
    if (!isset($return['ERRORCODE']) or $return['ERRORCODE'] == NULL or in_array($return['ERRORCODE'], $nonBlockingError)) {
        if ($so_fields->isCorrectSignKey($return['SIGNATURE'], $return)) {
            global $cookie;
            if (isset($cookie) or is_object($cookie)) {
                if (saveOrderShippingDetails(intval($cookie->id_cart), intval($return['TRCLIENTNUMBER']), $return, $so_fields)) {
                    $TRPARAMPLUS = explode('|', $return['TRPARAMPLUS']);
                    if (count($TRPARAMPLUS) > 1) {