<?php

class EmailPedidoMercadoLivre extends Pedido
{
  private $registry;

  public function __construct($registry)
  {
    parent::__construct($registry);
    $this->registry = $registry;
  }

  public function sendTask($typeemail, $order_id, $attribute_value)
  {

    try {

      if (!$this->config->get('mercadolivre_status')) {
        throw new exception('O modulo mercado livre esta desabilitado. E-mail referente ao pedido: ' . $order_id . ' não enviado!');
      }

      $this->sendMessageMercadoLivre($order_id, $attribute_value);

      $this->load->dmodel('sale/order');
      $history_total = $this->dmodel_sale_order->getTotalOrderHistories($order_id);

      $processo_venda_status = $this->config->get('processo_venda_status');

      if ($history_total == 1 || ($processo_venda_status && $history_total == 2)) {

        //mensagem para ser enviada sempre que um novo pedido for feito
        $this->load->dmodel('mercadolivre/melimensagem');
        $this->dmodel_mercadolivre_melimensagem->sendMessageAccount($this->order_info['customer_id'], $order_id);

      }

    } catch (Exception $e) {
      throw $e;
    }

  }

  public function sendMessageMercadoLivre($order_id, $attribute_value)
  {

    parent::getInfosTemplateOrder($order_id);

    $attribute_value = json_decode($attribute_value);

    if ($this->order_info['customer_id']) {
      $customer_info = $this->db->query("SELECT email, origem_cadastro, cadastro_atualizado_ml, mkt_integracao_tipo  FROM " . DB_PREFIX . "customer WHERE customer_id = '" . (int)$this->order_info['customer_id'] . "'")->row;
    } else {
      $customer_info = false;
    }

    if ($customer_info && $this->order_info) {

      if (($customer_info['mkt_integracao_tipo'] == Type_MarketPlace::Tp_Mercadolivre) && ($customer_info['cadastro_atualizado_ml'] == Type_DsimDnao::Tp_Nao)) {
        if ($this->config->get('mercadolivre_automatic_message_status') && (!$this->order_info['mercadolivre_stopsync'])) {
          $this->load->dmodel('mercadolivre/melimensagem');
          $this->dmodel_mercadolivre_melimensagem->setMessageOrder($order_id, $attribute_value->order_status_id);
        }
      }

    }

  }

  public function getMessagStatusMercadoLivre($attribute_value)
  {
    if ($this->config->get('mercadolivre_automatic_message_status') && (!$this->order_info['mercadolivre_stopsync'])) {
      $messagemStatus = ftr_geral::isIsset($this->config->get('mercadolivre_automatic_message')) ? array_filter($this->config->get('mercadolivre_automatic_message')) : false;
      if (($messagemStatus) && (isset($messagemStatus[$attribute_value->order_status_id]))) {
        return $messagemStatus;
      }
    }
  }

}