<?php

final class DModelwsceopedidowspedido extends Model {

    public function getPedido($pedidoId){
        return $this->wsceo->getConsultaFromSqlSemCache(
                      "SELECT * from PEDIDO where ID = " . $pedidoId);
    }

    public function getIdsPedidosEcommerce($quantity = 0, $ped_log_at = 0 , $pedit_log_at = 0){
        if($ped_log_at == null){
            $ped_log_at = 0;
        }

        if($pedit_log_at == null){
            $pedit_log_at = 0;
        }

        return $this->wsceo->getConsultaFromSqlSemCache(
            "with PEDIDOS_ALTERADOS as ("
          . "  SELECT DISTINCT p.ID,  '0' as TipoDado, p.ECM_LOG ECM_LOG from PEDIDO p"
          . "  where (p.ID_ECOMMERCE is not null)"
          . "  and (p.ECM_LOG > " . $ped_log_at . ")"
          . "  union "
          . "  SELECT DISTINCT pi.FK_PEDIDO as ID, '1' as TipoDado, max(pi.ECM_LOG) ECM_LOG from PEDIDO_ITEM pi"
          . "  where (pi.ID_ECOMMERCE is not null)"
          . "  and (pi.ECM_LOG > " . $pedit_log_at . ")"
          . "  group by 1"
          . "  order by 2, 3"
          . ") "
          . "select " . (($quantity > 0) ? " first " . $quantity : "") . " * from PEDIDOS_ALTERADOS"
        );
    }

    /**
     * Formato: ['id_ecommerce' => $valor, 'id_futura' => $id_futura]
     */
    public function updateIdEcommercePedidoItem(array $items){
        $sqls = array();
        foreach($items as $item){
            $sqls[] = 'UPDATE PEDIDO_ITEM set ID_ECOMMERCE = ' . $item['id_ecommerce'] . ' where ID = ' . $item['id_futura'];
        }
        $retorno = $this->wsceo->executeSql($sqls);
        if(!$retorno['result']){
            throw new exception($retorno['msg']);
        }else{
            return $retorno['result'];
        }
    }

    public function getPedidoItem($pedidoId){
        return $this->wsceo->getConsultaFromSqlSemCache(
              " SELECT"
            . " coalesce(P.ID_ECOMMERCE, 0)  as id_ecommerce_produto,"
            . " (Pi.ID_ECOMMERCE) as id_ecommerce_item,"
            . " P.REFERENCIA,"
            . " coalesce(Pia.DESCRICAO_EFUTURA, p.DESCRICAO) as DESCRICAO_EFUTURA,"
            . " Pi.*"
            . " from PEDIDO_ITEM Pi"
            . " left join PRODUTO_INFO_ADICIONAIS Pia on (Pia.FK_PRODUTO = Pi.FK_PRODUTO)"
            . " inner join PRODUTO P on (p.ID = Pi.FK_PRODUTO)"
            . " where Pi.FK_PEDIDO = " . $pedidoId
        );
    }

}