<?php
class Presente {
	private $config;
    private $customer;
    private $futuratipo;
    private $session;
	private $db;
    private $load;
	private $data = [];

		  	public function __construct($registry) {
				$this->config = $registry->get('config');
				$this->customer = $registry->get('customer');
			    $this->futuratipo = $registry->get('futuratipo');
				$this->session = $registry->get('session');
				$this->db = $registry->get('db');
				$this->load = $registry->get('load');

			    $this->DadosLista();
					if (!isset($this->session->data['listapresente']) || !is_array($this->session->data['listapresente'])) {
			              $this->session->data['listapresente'] = array();
			      }
			  }

  			public function DadosLista() {

						$this->load->type('tipocomum');
            if($this->config->get('listapresente_status')){
                $query = $this->db->query('SELECT (fl.id_lista) AS id_lista, (fl.status_lista) AS status_lista FROM futura_listas fl WHERE fl.lista_id_cliente = ' . (int)$this->customer->getId(). ' AND fl.status_lista = '.Type_Status::Tp_Habilitado.' AND fl.data_valid_lista >= "'.date('Y-m-d').'" ') ;

								if ($query->rows) {
                     $this->session->data['listapresente']['id'] = $query->row['id_lista'];
                     $this->session->data['listapresente']['status'] = $query->row['status_lista'];
                }else{
                    $this->session->data['listapresente']['id'] = '';
                    $this->session->data['listapresente']['status'] = '';
                }
            }
        }

        public function getProductsList(){
            if (!$this->data && $this->session->data['listapresente']['status']!="") {
								$query = $this->db->query('SELECT fil.* FROM futura_listas fl inner join futura_itens_lista fil on fl.id_lista = fil.listas_id_lista  WHERE fl.id_lista = '.$this->session->data['listapresente']['id'].'' );
                if($query->rows){
                    $this->data = $query->rows;
                }
            }
            return $this->data;
        }

		  	public function countProductsList() {
					$product_list_total = 0;

					$products_list = $this->getProductsList();
					foreach ($products_list as $product_list) {
						$product_list_total += 1;
					}
					return $product_list_total;
				}

        public function getIdListabyProduct($id_produto){

            $query = $this->db->query('SELECT (f.listas_id_lista)as id_lista FROM futura_itens_lista f INNER JOIN futura_listas fl ON(f.listas_id_lista = fl.id_lista) WHERE f.item_id_produto = '.$id_produto.' AND fl.lista_id_cliente = '.$this->session->data['cartxitem']['cliente'].' AND fl.status_lista = '.Type_Status::Tp_Habilitado);
            if($query->rows){
                return $query->row['id_lista'];
            }
            return false;
        }


        public function remove($remove){

                $id_lista = $this->getIdListabyProduct($remove);

                foreach($this->session->data['cartxitem'][$id_lista] as $keyLista => $arrayLista){
                    if($arrayLista['produto']==$remove){
                        unset($this->session->data['cartxitem'][$id_lista][$keyLista]);
                    }

                }

                if(!$this->session->data['cartxitem'][$id_lista]){
                    unset($this->session->data['cartxitem']);
                }
        }

}
