<?php
/**
 * NOTICE OF LICENSE
 *
 * This source file is subject to a commercial license from Common-Services Co., Ltd.
 * Use, copy, modification or distribution of this source file without written
 * license agreement from the SARL SMC is strictly forbidden.
 * In order to obtain a license, please contact us: contact@common-services.com
 * ...........................................................................
 * INFORMATION SUR LA LICENCE D'UTILISATION
 *
 * L'utilisation de ce fichier source est soumise a une licence commerciale
 * concedee par la societe Common-Services Co., Ltd.
 * Toute utilisation, reproduction, modification ou distribution du present
 * fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
 * expressement interdite.
 * Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
 * ...........................................................................
 *
 * @package   mondialrelayadvanced
 * @author    ${MY_NAME}
 * @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
 * @license   Commercial license
 * Support by mail  :  support.mondialrelayadvanced@common-services.com
 */

if (isset($_SERVER['DropBox']) && $_SERVER['DropBox']) {
    require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../config/config.inc.php'));
} else {
    require_once(dirname(__FILE__).'/../../../config/config.inc.php');
}

require_once _PS_MODULE_DIR_.'mondialrelayadvanced/mondialrelayadvanced.php';
require_once _PS_MODULE_DIR_.'mondialrelayadvanced/tools/PDFMerger.php';
require_once _PS_MODULE_DIR_.'mondialrelayadvanced/classes/MondialRelayTools.php';

$mondial_relay = new MondialRelayAdvanced();

if (!Tools::getValue('token') || Tools::getValue('token') != Configuration::get('MRA_TOKEN')) {
    die($mondial_relay->l('No token or wrong one.', basename(__FILE__, '.php')));
}

MondialRelayTools::cleanup();

$orders = Tools::getValue('orders');
$errors = array();

if (!$orders) {
    die('No id_order received');
}

$pdfs = new PDFMerger();
$label_directory = _PS_MODULE_DIR_.'mondialrelayadvanced/download/';
$parcel_numbers = MondialRelayTools::arrayColumn(Db::getInstance()->executeS(
    'SELECT `exp_number`
    FROM `'._DB_PREFIX_.'mr_selected`
    WHERE `id_order` IN ('.pSQL(implode(', ', $orders)).')
    ORDER BY FIELD (`id_order`, '.pSQL(implode(', ', $orders)).')'
), 'exp_number');

$count = 0;

foreach ($parcel_numbers as $parcel_number) {
    if (!file_exists($label_directory.$parcel_number.'.pdf')) {
        $errors[] = 'Could not locate PDF on '.$label_directory.$parcel_number.'.pdf';
        continue;
    }

    $count += 1;

    $pdfs->addPDF($label_directory.$parcel_number.'.pdf');
}

$pdf_file_name = 'merged_pdf_'.time().'.pdf';

if ($count && $pdfs->merge('file', $label_directory.$pdf_file_name)) {
    die(Tools::getValue('callback').'('.Tools::jsonEncode(array(
        'url' => __PS_BASE_URI__.basename(_PS_MODULE_DIR_).'/mondialrelayadvanced/download/'.$pdf_file_name,
        'errors' => $errors
    )).')');
}

die(Tools::getValue('callback').'('.Tools::jsonEncode(array('url' => false)).')');
