<?php
require ("progressbar.php");
date_default_timezone_set('America/Bogota');

$bd = new mysqli("localhost", "root", "", "sistemageneral");
mysqli_query($bd, "SET NAMES 'utf8'");

error_reporting(0);

function mysqli_result($res, $row, $field = 0) {
    $res->data_seek($row);
    $datarow = $res->fetch_array();
    return $datarow[$field];
}

function isXML($xml) {
    libxml_use_internal_errors(true);

    $doc = new DOMDocument('1.0', 'utf-8');
    $doc->loadXML($xml);

    $errors = libxml_get_errors();

    if (empty($errors)) {
        return true;
    }

    $error = $errors[0];
    if ($error->level < 3) {
        return true;
    }

    $explodedxml = explode("r", $xml);
    $badxml = $explodedxml[($error->line) - 1];

    $message = $error->message . ' at line ' . $error->line . '. Bad XML: ' . htmlentities($badxml);
    return $message;
}

// Inicio Precios Específicos
mysqli_query($bd, 'delete from temporalespecificosboton where 1;');
mysqli_query($bd, 'ALTER TABLE temporalespecificosboton AUTO_INCREMENT=1');

$xml1 = new SimpleXMLElement(file_get_contents("https://6QW5T3HTWPMREMYZQ8TW8FH3JY45YGGZ@esferos.com/site/api/specific_prices"));

// get product line with xpath for example
$specificprices1 = $xml1->xpath("/prestashop/specific_prices/specific_price");
$totalregistros2 = count($specificprices1);

echo "Precios Específicos Boton Promo //";
$HoraInicio = date('h:i:s') . " - ";
echo $HoraInicio;
$i2 = 0;
if ($specificprices1) {
    // loop over each product node
    foreach ($specificprices1 as $specificprice1) {
        $i2 = $i2 + 1;
        $porcentaje1 = $i2 * 100 / $totalregistros2;
        echo "<script>callprogress(" . round($porcentaje1) . ")</script>";
        flush();
        ob_flush();

        $idspecificprice1 = $specificprice1["id"];
        $xmlprecio = new SimpleXMLElement(file_get_contents("https://6QW5T3HTWPMREMYZQ8TW8FH3JY45YGGZ@esferos.com/site/api/specific_prices/" . $idspecificprice1));
        $id = $xmlprecio->specific_price->id;
        $id_product = $xmlprecio->specific_price->id_product;
        $id_product_attribute = $xmlprecio->specific_price->id_product_attribute;
        $price = $xmlprecio->specific_price->price;
        $from_quantity = $xmlprecio->specific_price->from_quantity;
        $reduction = $xmlprecio->specific_price->reduction;
        $reduction_type = $xmlprecio->specific_price->reduction_type;
        $from_date = $xmlprecio->specific_price->from;
        $to_date = $xmlprecio->specific_price->to;

        $sql = "INSERT INTO `temporalespecificosboton` (id, id_product,id_product_attribute, price,from_quantity, reduction,reduction_type, from_date, to_date) VALUES ('$id','$id_product','$id_product_attribute','$price','$from_quantity','$reduction','$reduction_type','$from_date','$$to_date')";
        mysqli_query($bd, $sql);
    }
}
$HoraFin = date('h:i:s') . "\n";
echo $HoraFin;

// Fin Precios Específicos

mysqli_query($bd, 'delete from tempinvprebotonpromo where 1;');
mysqli_query($bd, 'ALTER TABLE tempinvprebotonpromo AUTO_INCREMENT=1');

$xml = new SimpleXMLElement(file_get_contents("https://6QW5T3HTWPMREMYZQ8TW8FH3JY45YGGZ@esferos.com/site/api/products"));
// get product line with xpath for example
$idlistaproductos = $xml->xpath("/prestashop/products/product");

$totalregistros = count($idlistaproductos);
echo "Codificación Boton Promo //";
$HoraInicio = date('h:i:s') . " - ";
echo $HoraInicio;
$i = 0;

if ($idlistaproductos) {
    // loop over each product node
    foreach ($idlistaproductos as $idlistaproducto) {
        $i = $i + 1;
        $porcentaje = $i * 100 / $totalregistros;
        echo "<script>callprogress(" . round($porcentaje) . ")</script>";
        flush();
        ob_flush();

        $idlista = $idlistaproducto["id"];
        libxml_use_internal_errors(TRUE);

        try {
            $xmlproducto = new SimpleXMLElement(file_get_contents("https://6QW5T3HTWPMREMYZQ8TW8FH3JY45YGGZ@esferos.com/site/api/products/" . $idlista));

            $raiz = $xmlproducto->product->id;
            $codigo = $raiz . '-' . $xmlproducto->product->reference;

            $sqlprecioespecifico = mysqli_result(mysqli_query($bd, "SELECT price FROM temporalespecificosboton WHERE id_product='$raiz' AND id=(SELECT MAX(id) FROM temporalespecificosboton WHERE id_product='$raiz')"), 0);
            $sqltipoespecifico = mysqli_result(mysqli_query($bd, "SELECT reduction FROM temporalespecificosboton WHERE id_product='$raiz' AND id=(SELECT MAX(id) FROM temporalespecificosboton WHERE id_product='$raiz')"), 0);
            $sqltextoespecifico = mysqli_result(mysqli_query($bd, "SELECT reduction_type FROM temporalespecificosboton WHERE id_product='$raiz' AND id=(SELECT MAX(id) FROM temporalespecificosboton WHERE id_product='$raiz')"), 0);
            $preciolista = $xmlproducto->product->price;

            if ($sqltextoespecifico == 'amount') {
                $precio = $preciolista - $sqltipoespecifico;
                $descuento = 0;
                $preciounitario = $preciolista - $sqltipoespecifico;
            } else if ($sqltextoespecifico == 'percentage') {
                $precio = $preciolista;
                $descuento = $sqltipoespecifico;
                $preciounitario = $preciolista;
            } else {
                $precio = $preciolista;
                $descuento = 0;
                $preciounitario = $preciolista;
            }

            $haycombinaciones = "No";
            $variacion = "";
            $stock = "";
            $proveedor = 'BotonPromo';

            foreach ($xmlproducto->product->associations->combinations->combination as $combinacion) {
                $haycombinaciones = "Si";
                $idcombinacion = $combinacion->id;
                $xmlcombinacion = new SimpleXMLElement(file_get_contents("https://6QW5T3HTWPMREMYZQ8TW8FH3JY45YGGZ@esferos.com/site/api/combinations/" . $combinacion->id));

                $raiz = $xmlproducto->product->id;
                $codigo = $raiz . '-' . $xmlcombinacion->combination->reference;
                $titulo = $xmlproducto->product->name->language;

                $valoropcion = $xmlcombinacion->combination->associations->product_option_values->product_option_value->id;
                $xmlopcion = new SimpleXMLElement(file_get_contents("https://6QW5T3HTWPMREMYZQ8TW8FH3JY45YGGZ@esferos.com/site/api/product_option_values/" . $valoropcion));
                $variacion = $xmlopcion->product_option_value->name->language;

                foreach ($xmlproducto->product->associations->stock_availables->stock_available as $tablastocks) {
                    $atributostock = $tablastocks->id_product_attribute;

                    if ((string)$idcombinacion == (string)$atributostock) {
                        $stockavailable = 0;
                        $xmlstock = new SimpleXMLElement(file_get_contents("https://6QW5T3HTWPMREMYZQ8TW8FH3JY45YGGZ@esferos.com/site/api/stock_availables/" . $tablastocks->id));
                        $stockavailable = $xmlstock->stock_available->quantity;
                    }
                }

                $stock = $stockavailable;

                $transitos = "";

                $idraiz = $raiz . "_01";
                $idatributo = $codigo . "_01";
                $sql = "INSERT INTO `tempinvprebotonpromo` (codigo, raiz, variacion, proveedor, stock, precio, preciounitario, descuento, idraiz, idatributo, fechatransito) VALUES ('$codigo', '$raiz', '$variacion', '$proveedor', '$stock', '$precio', '$preciounitario', '$descuento', '$idraiz', '$idatributo', '$transitos')";
                mysqli_query($bd, $sql);
            }

            if ($haycombinaciones == "No") {
                $variacion = "N/R";
                $idstock = $xmlproducto->product->associations->stock_availables->stock_available->id;
                $stockavailable = 0;
                $xmlstock = new SimpleXMLElement(file_get_contents("https://6QW5T3HTWPMREMYZQ8TW8FH3JY45YGGZ@esferos.com/site/api/stock_availables/" . $idstock));
                $stock = $xmlstock->stock_available->quantity;

                $transitos = "";
                $idraiz = $raiz . "_01";
                $idatributo = $codigo . "_01";
                $sql = "INSERT INTO `tempinvprebotonpromo` (codigo, raiz, variacion, proveedor, stock, precio, preciounitario, descuento, idraiz, idatributo, fechatransito) VALUES ('$codigo', '$raiz', '$variacion', '$proveedor', '$stock', '$precio', '$preciounitario', '$descuento', '$idraiz', '$idatributo', '$transitos')";
                mysqli_query($bd, $sql);
            }
        } catch (Exception $e) {
        }
    }
}

mysqli_query($bd, 'delete from invprebotonpromo where 1;');
mysqli_query($bd, 'ALTER TABLE invprebotonpromo AUTO_INCREMENT=1');
$sql = "INSERT INTO `invprebotonpromo` (codigo, raiz, variacion, proveedor, stock, precio, preciounitario, descuento, idraiz, idatributo, fechatransito) SELECT codigo, raiz, variacion, proveedor, stock, precio, preciounitario, descuento, idraiz, idatributo, fechatransito FROM tempinvprebotonpromo WHERE 1";
mysqli_query($bd, $sql);

$HoraFin = date('h:i:s') . "\n";
echo $HoraFin;
?>