<?php
class ModelShippingFlat extends Model {
	function getQuote($address, $product = Array()) {
		$this->language->load('shipping/flat');
		$this->load->type('tipocomum');

    //feito a principio para skyhub Frete, mais pode ser utilizado para qualquer frete que
    //não tenha informações do estado...
    if((!$address['zone_id']) && ($address['layout_id'] == Type_SendPostcode::Tp_Product)){
      $status = true;
    }else {
      $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('flat_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')");

      if (!$this->config->get('flat_geo_zone_id')) {
        $status = true;
      } elseif ($query->num_rows) {
        $status = true;
      } else {
        $status = false;
      }
    }

    if ($this->config->get('flat_total_minimo') && (float)$this->cart->getTotalSemFrete() < (float)$this->config->get('flat_total_minimo')) {
      $status = false;
    }


		$method_data = array();
	
		if ($status) {
			$quote_data = array();
			
      		$quote_data['flat'] = array(
        		'code'         => 'flat.flat',
        		'title'        => $this->language->get('text_description'),
        		'cost'         => round((float)$this->config->get('flat_cost'), 2, PHP_ROUND_HALF_UP),
				'text'         => $this->currency->format($this->config->get('flat_cost'))
      		);

      		$method_data = array(
        		'code'       => 'flat',
        		'title'      => $this->language->get('text_title'),
        		'quote'      => $quote_data,
				'sort_order' => $this->config->get('flat_sort_order'),
        		'error'      => false
      		);
		}
	
		return $method_data;
	}
}
