require_once dirname(__FILE__) . '/../../../init.php';
if (class_exists('SeurLib') == false) {
    include_once _PS_MODULE_DIR_ . 'seur/classes/SeurLib.php';
}
$token = Tools::getValue('token');
$admin_token = Tools::getAdminToken('AdminSeur' . (int) Tab::getIdFromClassName('AdminSeur') . (int) Tools::getValue('id_employee'));
if ($token != $admin_token) {
    exit;
}
$current_expedition_number = Tools::getValue('expedition_number');
$current_expedition_number = preg_replace('#[^0-9]#', '', $current_expedition_number);
try {
    $sc_options = array('connection_timeout' => 30);
    $soap_client = new SoapClient((string) Configuration::get('SEUR_URLWS_A'), $sc_options);
    $data_delivery_note = array('in0' => '', 'in1' => $current_expedition_number ? $current_expedition_number : '', 'in2' => '', 'in3' => '', 'in4' => '', 'in5' => Configuration::get('SEUR_WS_USERNAME'), 'in6' => Configuration::get('SEUR_WS_PASSWORD'), 'in7' => 'S');
    $response = $soap_client->consultaAlbaranes($data_delivery_note);
    $string_xml = htmlspecialchars_decode($response->out);
    $xml = simplexml_load_string($string_xml);
    if ($xml->DESCRIPCION) {
        $url = urlencode(Tools::getValue('back')) . '&token=' . urlencode(Tools::getValue('token')) . '&codigo=' . urlencode($xml->CODIGO) . '&error=' . urlencode((string) $xml->DESCRIPCION);
        die(Tools::redirect($url));
    }
    if ($current_expedition_number) {
        $image = strip_tags($string_xml);
        $image = base64_decode($image);
        header('Content-type: application/octet-stream');
        header("Content-Disposition: attachment; filename=\"{$current_expedition_number}.png\"\n");
        ob_end_clean();
        echo $image;
        file_put_contents('../files/deliveries_notes/' . $current_expedition_number . '.png', $image);
    }