<?php

session_start();
$getPost = filter_input_array(INPUT_POST, FILTER_DEFAULT);

require ('../../_app/Config.inc.php');
$ship = new Shipment();

if (!empty($getPost)): //testar se foi enviado pelo formulario
    $setPost = array_map("strip_tags", $getPost);
    $post = array_map("trim", $setPost);

    if ($post['cep'] == ''):
        $arrDados['error'][0] = "Informe um CEP!";
        $arrDados['error'][1] = WS_ALERT;

        echo json_encode($arrDados);
        exit();
    else:
        $arrDados['error'][0] = "Sucesso CEP!";
        $arrDados['error'][1] = WS_ACCEPT;
    endif;
    if (!empty($post['produto_id'])): // enviado da pagina produto
        $Read = new Read;
        $Read->FullRead("SELECT produto_peso, produto_largura, produto_altura, produto_comprimento FROM tp_produtos WHERE produto_id = :id", "id={$post['produto_id']}");
        $peso = $Read->getResult()[0]['produto_peso'];
        $comprimento = $Read->getResult()[0]['produto_comprimento'];
        $altura = $Read->getResult()[0]['produto_altura'];
        $largura = $Read->getResult()[0]['produto_largura'];

        $format = $ship->quote($post['cep'], $peso, $comprimento, $altura, $largura);

        $arrDados['frete'] = '';
        foreach ($format as $formatship):
            if ($formatship->Codigo == '04014' || $formatship->Codigo == '4014'):
                $Tipo = 'Rápida';
            else:
                $Tipo = 'Econômica';
            endif;

            $arrDados['frete'] .= "<tr>";
            $arrDados['frete'] .= "<td>{$Tipo}</td>";
            $arrDados['frete'] .= "<td>R$ {$formatship->Valor}</td>";
            $arrDados['frete'] .= "<td>{$formatship->PrazoEntrega} dias úteis</td>";
            $arrDados['frete'] .= "</tr>";
        endforeach;
    else: // enviado da pagina do carrinho
        $_SESSION['storecart']['entrega']['cep'] = $post['cep'];
        $arrDados['cep'] = $post['cep'];
        unset($_COOKIE['storecart']); // apagar o cookie caso exista
        setcookie('storecart', serialize($_SESSION['storecart']), time() + 3600); //cria o novo cookie

        $arrProdutoId = array_keys($_SESSION['storecart']['produto']);
        $arrId = "" . implode(",", $arrProdutoId) . "";

        $Read = new Read;
        $Read->FullRead("SELECT produto_id, produto_peso, produto_largura, produto_altura, produto_comprimento, produto_preco FROM tp_produtos WHERE produto_id in ({$arrId})");
        $i = 0; //indice
        foreach ($Read->getResult() as $produtos):
            extract($produtos);
            $volume = ($produto_comprimento * $produto_altura * $produto_largura);
            $cubico[$i] = $volume * $_SESSION['storecart']['produto'][$produto_id]['qtd'];
            $peso[$i] = $produto_peso;
            $i++;

            //Testar se existe promoção e aplicar se houver  
            $ReadProd = new Read;
            $ReadProd->FullRead("SELECT * FROM tp_produto_promocoes WHERE produto_id = :prodid AND produto_promo_status = 1 AND produto_promo_data_ini <= NOW() AND produto_promo_data_fim >= NOW()", "prodid={$produto_id}");
            if ($ReadProd->getRowCount() > 0):
                $produto_preco = $ReadProd->getResult()[0]['produto_promo_preco'];
            endif;

            $qtd = $_SESSION['storecart']['produto'][$produto_id]['qtd'];

            $produto_total = $produto_preco * $qtd;
            $subtotal[$produto_id] = $produto_total;
        endforeach;

        $volume_total = array_sum($cubico);
        $raiz = pow($volume_total, 1 / 3);
        $peso = array_sum($peso);
        $format = $ship->quote($post['cep'], $peso, $raiz, $raiz, $raiz);

        $arrDados['frete'] = '';
        foreach ($format as $formatship):
            $arrValor = explode(',', $formatship->Valor);
            $valor = $arrValor[0] . '.' . $arrValor[1];

            if ($formatship->Codigo == '04014' || $formatship->Codigo == '4014'):
                $Tipo = 'Rápida';
                $checked = '';
            else:
                $Tipo = 'Econômica';
                $checked = 'checked';

                // seta o frete economico como padrão
                $_SESSION['storecart']['entrega']['codigo'] = $formatship->Codigo;
                $_SESSION['storecart']['entrega']['tipo'] = $Tipo;
                $_SESSION['storecart']['entrega']['prazo'] = $formatship->PrazoEntrega;
                $_SESSION['storecart']['entrega']['valor'] = $valor;

                $total = $valor + array_sum($subtotal);

                $arrDados['frete_valor'] = "R$ " . number_format($_SESSION['storecart']['entrega']['valor'], 2, ',', '.');
                $arrDados['total'] = "R$ " . number_format($total, 2, ',', '.');

            endif;

            $arrDados['frete'] .= "<div class=\"main_cart_abstract_delivery_option\">";
            $arrDados['frete'] .= "<input {$checked} type=\"radio\" id=\"{$formatship->Codigo}\" name=\"frete\" value=\"{$formatship->Codigo}\" onclick=\"frete_add({$formatship->Codigo},'{$Tipo}','{$formatship->PrazoEntrega}','{$valor}')\"> {$Tipo} - {$formatship->PrazoEntrega} dias úteis - <b>R$ {$formatship->Valor}</b>";
            $arrDados['frete'] .= "</div>";

        endforeach;
    endif;

else: //chamada automatica via sessão
    $cep = $_SESSION['storecart']['entrega']['cep'];
    $arrProdutoId = array_keys($_SESSION['storecart']['produto']);
    $arrId = "" . implode(",", $arrProdutoId) . "";

    $Read = new Read;
    $Read->FullRead("SELECT produto_id, produto_peso, produto_largura, produto_altura, produto_comprimento FROM tp_produtos WHERE produto_id in ({$arrId})");
    $c = 0; //indice
    foreach ($Read->getResult() as $produtos):
        extract($produtos);
        $volume = ($produto_comprimento * $produto_altura * $produto_largura);
        $cubico[$c] = $volume * $_SESSION['storecart']['produto'][$produto_id]['qtd'];
        $peso[$c] = $produto_peso;
        $c++;
    endforeach;

    $volume_total = array_sum($cubico);
    $raiz = pow($volume_total, 1 / 3);
    $peso = array_sum($peso);
    $format = $ship->quote($cep, $peso, $raiz, $raiz, $raiz);

    $arrDados['cep'] = $_SESSION['storecart']['entrega']['cep'];
    $arrDados['frete'] = '';
    foreach ($format as $formatship):
        $arrValor = explode(',', $formatship->Valor);
        $valor = $arrValor[0] . '.' . $arrValor[1];
        if ($formatship->Codigo == '04014' || $formatship->Codigo == '4014'):
            $Tipo = 'Rápida';
        else:
            $Tipo = 'Econômica';
        endif;
        $checked = '';

        if (!empty($_SESSION['storecart']['entrega']['codigo']) && $formatship->Codigo == $_SESSION['storecart']['entrega']['codigo']):
            $checked = 'checked';

            $_SESSION['storecart']['entrega']['prazo'] = $formatship->PrazoEntrega;
            $_SESSION['storecart']['entrega']['valor'] = $valor;

        endif;

        $arrDados['frete'] .= "<div class=\"main_cart_abstract_delivery_option\">";
        $arrDados['frete'] .= "<input type=\"radio\" {$checked} id=\"{$formatship->Codigo}\" name=\"frete\" value=\"{$formatship->Codigo}\" onclick=\"frete_add({$formatship->Codigo},'{$Tipo}','{$formatship->PrazoEntrega}','{$valor}')\"> {$Tipo} - {$formatship->PrazoEntrega} dias úteis - <b>R$ {$formatship->Valor}</b>";
        $arrDados['frete'] .= "</div>";

    endforeach;
endif;


echo json_encode($arrDados);
?>