<?php
class ModelMercadolivreMeasureManufacturer extends Model{


    public function getMeasured($data = array(), $page = 1){

        $sql = "SELECT 	MLG.`measure_GRID_id`,
                        MLG.`manufacturer_id`,
                        MLG.`GENDER`,
                        MLG.`SIZE_GRID_ID`,
                        MLG.`domain_id`,
                        MLG.`manufacturer_description`,
                        M.`name`,
                        M.`image`
                FROM 	".DB_PREFIX."mercadolivre_measure_GRID MLG
        INNER JOIN  ".DB_PREFIX."manufacturer M ON M.manufacturer_id = MLG.manufacturer_id";

        $filters = array();
        if(isset($data['description']) and trim($data['description']) != ''){
            $datasql = trim($data['description']);
            array_push($filters," `manufacturer_description`	like  '%{$datasql}%' ");
        }
        if(isset($data['gender']) AND trim($data['gender']) != ''){
            $datasql = trim($data['gender']);
            array_push($filters," GENDER like  '%{$datasql}%' ");
        }

        if($filters){
            $sql .= " WHERE ". implode(' AND ', $filters);
        }

        $limit = $this->config->get('config_admin_limit');
        $ini = (($page * $limit) - ($limit));

        $sql .=  " LIMIT $ini , $limit";

        $query	= $this->db->query($sql);

        return $query->rows;
    }

    public function getChartSize($size, $grid){

        $sql = "  SELECT
	  				     R.SIZE_GRID_ROW_ID,
                        R.BR_SIZE
                    FROM oc_mercadolivre_measure_grid G
              INNER JOIN oc_mercadolivre_measure_row R ON G.measure_GRID_id = R.measure_GRID_id
              INNER JOIN oc_product_size P ON R.productsize_id = P.productsize_id
                  WHERE SIZE_GRID_ID = '{$grid}'
                    AND P.`description` = '{$size}'";


        $query	= $this->db->query($sql);

        return $query->row;
    }

    public function getMeasuredTotal($data = array()){

        $sql = "SELECT 	count(*) qtd
                FROM 	".DB_PREFIX."mercadolivre_measure_GRID MLG
        INNER JOIN  ".DB_PREFIX."manufacturer M ON M.manufacturer_id = MLG.manufacturer_id";

        $filters = array();
        if(isset($data['description']) and trim($data['description']) != ''){
            $datasql = trim($data['description']);
            array_push($filters," `manufacturer_description`	like  '%{$datasql}%' ");
        }
        if(isset($data['gender']) AND trim($data['gender']) != ''){
            $datasql = trim($data['gender']);
            array_push($filters," GENDER like  '%{$datasql}%' ");
        }

        if($filters){
            $sql .= " WHERE ". implode(' AND ', $filters);
        }

        $query	= $this->db->query($sql);

        return $query->row['qtd'];
    }


    public function deleteMeasured($list = []){

        $list = implode(',',$list);
        $sql = "DELETE FROM oc_mercadolivre_measure_grid WHERE measure_grid_id IN ({$list});";

        $query	= $this->db->query($sql);

        return $query;

    }

    public function getChartsProduct(){
        $sql = "SELECT `measure_GRID_id`,
                       `manufacturer_id`,
                       `manufacturer_description`,
                       `GENDER`,
                       `domain_id`,
                       `SIZE_GRID_ID`,
                       `type`
                  FROM oc_mercadolivre_measure_grid";

        $query	= $this->db->query($sql);

        return $query->rows;
    }

    public function getCharts($data){

        $sql = "SELECT   MLG.`measure_GRID_id`,
                         MLG.`manufacturer_id`,
                         MLG.`manufacturer_description`,
                         MAR.`name`,
                         MLG.`type`,
                         MLG.`GENDER`,
                         MLG.`domain_id`,
                         MLG.`SIZE_GRID_ID`,
                         MLR.`measure_ROW_id`,
                         MLR.`measure_GRID_id`,
                         MLR.`SIZE_GRID_ROW_ID`,
                         SIZE.`description`,
                         MLR.`BR_SIZE`,
                         MLR.`US_SIZE`,
                         MLR.`EU_SIZE`,
                         MLR.`UK_SIZE`,
                         MLR.`FOOT_LENGTH`,
                         MLR.`productsize_id`,
                         MLR.`product_grid_template_id`
                   FROM  oc_mercadolivre_measure_grid MLG
             INNER JOIN  oc_mercadolivre_measure_row  MLR
                     ON  MLG.`measure_GRID_id` = MLR.`measure_GRID_id`
             INNER JOIN  oc_product_size SIZE
                     ON  MLR.`productsize_id` = SIZE.`productsize_id`
             INNER JOIN  oc_manufacturer MAR
                     ON  MLG.`manufacturer_id` = MAR.`manufacturer_id`
                  WHERE  MLG.domain_id = '{$data['domain_id']}'";

        if(isset($data['chart']) AND $data['chart']){
            $sql .= " AND  MLG.SIZE_GRID_ID  = {$data['chart']}";
        }

        if($data['gender']){
            $sql .= " AND  MLG.GENDER    = '{$data['gender']}'";
        }

        if($data['gender']){
            $sql .= " AND  MLG.manufacturer_id = {$data['brand']}";
        }


        $query	= $this->db->query($sql);

        return $query->rows;

    }

    public function setCharts(){

        extract($this->request->post);

        $description = '';
        if(isset($list['names'])) {
            foreach ($list['names'] as $value) {

                if ($value['id'] == $selected) {
                    $description = $value['name'];
                    break;
                }
            }
        }

        if(isset($info['insert']) AND $info['insert']){
            $description = $info['name'];
        }

        $sql = "INSERT INTO oc_mercadolivre_measure_grid( measure_GRID_id,
						manufacturer_id,
						manufacturer_description,
						GENDER,
						domain_id,
						SIZE_GRID_ID,
                        type)
	            VALUES (NULL,
	            '{$info['brand']}',
	            '{$description}',
	            '{$info['gender']}',
	            '{$info['domain_id']}',
	            '{$selected}',
	            '{$type}')";

        $query	= $this->db->query($sql);

        $idGrid =  $this->db->getLastId();

        foreach ($rows as $row){
            $sql = "INSERT INTO oc_mercadolivre_measure_row(`measure_ROW_id`,
                            `measure_GRID_id`,
                            `SIZE_GRID_ROW_ID`,
                            `BR_SIZE`,
                            `US_SIZE`,
                            `EU_SIZE`,
                            `UK_SIZE`,
                            `FOOT_LENGTH`,
                            `productsize_id`,
                            `product_grid_template_id`)
                      VALUES (NULL,
                            '{$idGrid}',
                            '{$row['id']}',
                            '{$row['size']}',
                            '{$row['us']}',
                            '{$row['eu']}',
                            '{$row['uk']}',
                            '{$row['length']}',
                            '{$row['tamanho']}',
                            null)";

            $query	= $this->db->query($sql);

        }

        return $query;
    }

    public function getSystemSize(){

        $sql = "SELECT `productsize_id`,
                       `description`,
                       `id_futura`
                  FROM oc_product_size";

        $query	= $this->db->query($sql);

        return $query->rows;
    }

}