<?php
class Producao
{

	private $sql;
	public $qry;
	public $qry_ver;
	private $id_empresa;

	public function __construct()
	{
		ob_start();
		session_start();
		$this->id_empresa = $_SESSION["fild_id_empresa"];
	}

	private function execulta()
	{
		$this->qry = mysqli_query($mysqlCom->connect(), $this->sql);
	}



	public function Historico($NumMensagem)
	{
		$Mensagem = array(
			1 => 'Fotos do Evento disponíveis',
			2 => 'Cliente Finalizou a Escolha das fotos',
			3 => 'Iniciou a Edição',
			4 => 'Edição Finalizada',
			5 => 'Upload Confirmado - E-mail enviado para o cliente',
			6 => 'Cliente Confirmou entrando no X9',
			7 => 'Contato via telefone',
			8 => 'Cliente Finalizou o álbum como Aprovado',
			9 => 'Cliente Finalizou o álbum como Não Aprovado',
			10 => 'Encamidado E-mail para ',
			11 => 'Enviado para Encadernação',
			12 => 'Álbum com Problema',
			13 => 'Álbum recebido da Encadernadora',
			14 => 'Álbum com problema. Obs.: ',
			15 => 'Cliente Recebeu o Álbum'
		);

		return $Mensagem[$NumMensagem];
	}

	public function Statos($NumStatos)
	{
		$Statos = array(
			1 => 'Escolhendo',
			2 => 'Aguardando Edição',
			3 => 'Editando',
			4 => 'UpLoad',
			5 => 'Contato Cliente',
			6 => 'Aguardando Aprovação',
			7 => 'Aprovado',
			8 => 'Não Aprovado',
			9 => 'Na Encadernadora',
			10 => 'Recebido da Encadernadora',
			11 => 'Entregue ao Cliente'
		);
		return $Statos[$NumStatos];
	}

	public function Icones($NumMensagem)
	{
		$ClassIcones = array(
			1 => 'ui-icon-pin-s',
			2 => 'ui-icon-image',
			3 => 'ui-icon-image',
			4 => 'ui-icon-image',
			5 => 'ui-icon-mail-closed',
			6 => 'ui-icon-clipboard',
			7 => 'ui-icon-person',
			8 => 'ui-icon-check',
			9 => 'ui-icon-closethick',
			10 => 'ui-icon-mail-closed',
			11 => 'ui-icon-extlink',
			12 => '',
			13 => 'ui-icon-note',
			14 => 'ui-icon-alert',
			15 => 'ui-icon-power'
		);
		return $ClassIcones[$NumMensagem];
	}


	public function SelectProducao($statos, $id_evento_nb = '')
	{
		/***
		 * Quando id_evento não informado ele traz todos os registros refente ao statos
		 * Quando for informado traz so o especifico.
		 **/
		// nb = Não Obrigatorio
		$this->sql = "select a.id_producao, a.id_evento, a.tipo_edicao, a.statos, a.data_inicio, a.data_fim, 
							b.nome, b.data_evento, c.descricao as tipo_evento
							from evento_producao a, evento b, tipo_evento c
							where a.id_evento = b.id_evento
							and c.id_tipo_evento = b.id_tipo_evento
							and a.id_empresa = $this->id_empresa";
		if ($id_evento_nb != '')
			$this->sql .= " and a.id_evento = $id_evento_nb ORDER by  DATEDIFF(CURDATE(), a.data_inicio) desc";
		else
			$this->sql .= " and a.statos = $statos ORDER by  DATEDIFF(CURDATE(), a.data_inicio) desc";

		//echo $this->sql;  

		$this->execulta();
	}

	public function getVerDuplicidadeProducao($id_evento)
	{
		$this->sql = "select id_producao from evento_producao
						where id_evento = $id_evento
						and id_empresa = $this->id_empresa";
		$this->execulta();

		while ($row = mysqli_fetch_object($this->qry))
			return $row->id_producao;
	}



	/*** Valida se um usuário existe
	 *
	 * @param string $usuario - O usuário que será validado
	 * @param string $senha - A senha que será validada
	 * @return boolean - Se o usuário existe ou não
	 */
	public function SelectHistorico($id_producao)
	{
		$this->sql = "select id_evento_producao_historico, data, hora, funcionario, statos, historico
							  from evento_producao_historico
							  where id_producao = $id_producao
							  order by id_evento_producao_historico";

		$this->qry_ver = mysqli_query($mysqlCom->connect(), $this->sql);
	}



	public function InsertProducao($id_evento, $tipo_edicao)
	{
		$data = date('Y/m/d');
		$this->sql = "insert into evento_producao
								(id_evento, id_empresa, tipo_edicao, statos, data_inicio)
								value
								($id_evento,$this->id_empresa,'$tipo_edicao',1,'$data')";
		$this->execulta();

		return mysqli_insert_id();
	}


	public function getStatosAtual($id_evento)
	{
		$this->sql = "select statos from evento_producao
					where id_evento = $id_evento";
		$this->execulta();

		while ($row = mysqli_fetch_object($this->qry))
			return $row->statos;
	}



	// nb = Não Obrigatorio
	public function InsertHistorico($NumMensagem, $id_producao, $funcionario, $obs_nb = '')
	{
		$data = date('Y/m/d');
		$hora = date("H:i");
		$forHistorico = trim($this->Historico($NumMensagem) . '. ' . addslashes($obs_nb));

		$this->sql = "insert into evento_producao_historico
						 (id_producao, data, hora, funcionario, statos, historico)
						 values
						 ($id_producao,'$data','$hora', '$funcionario', $NumMensagem, '$forHistorico')";
		$this->execulta();
	}



	public function UpdateProduto($id_evento, $NumStatos)
	{

		//verica a data de inicio ante de fazer update
		$sql = "select id_producao, data_inicio from evento_producao
						where id_evento = $id_evento
						and id_empresa = $this->id_empresa";
		$qry = mysqli_query($mysqlCom->connect(), $sql);

		$DadosJson = array();
		while ($row = mysqli_fetch_object($qry)) {
			$DadosJson['id_producao'] = $row->id_producao;
			$DadosJson['data_inicio'] = $row->data_inicio;
		}



		$this->sql = "update evento_producao
						  set statos = $NumStatos
						  where id_evento = $id_evento
						  and id_empresa = $this->id_empresa";
		$this->execulta();

		if ($NumStatos == 11) {
			$this->FinalizarProcesso($id_evento);
		}

		//quando o cliente aprovar a escolha das fotos ele muda a data do processo
		if ($NumStatos == 2) {
			$this->UpdateDataProcesso($id_evento);
		}


		return json_encode($DadosJson);
	}




	public function FinalizarProcesso($id_evento)
	{
		$data = date('Y/m/d');
		$this->sql = "update evento_producao
						  set data_fim = '$data'
						  where id_evento = $id_evento
						  and id_empresa = $this->id_empresa";
		$this->execulta();
	}



	public function UpdateDataProcesso($id_evento)
	{
		$data = date('Y/m/d');
		$this->sql = "update evento_producao
						  set data_inicio = '$data'
						  where id_evento = $id_evento
						  and id_empresa = $this->id_empresa";
		$this->execulta();
	}


	public function getVerificarFinalizacao($id_evento)
	{
		$this->sql = "select data 
							from evento_producao_historico
							where statos = 15
							and id_producao = (select id_producao from evento_producao where id_evento = $id_evento)
							limit 1";
		$this->execulta();

		while ($row = mysqli_fetch_object($this->qry))
			return $data = $row->data;
	}



	public function ListaFotoNaoEscolhida($id_evento)
	{
		$this->sql = "select a.nome_foto, b.descricao
						from x9_foto_escolhida a, x9_desc_pg_reprovada b
						where b.id_foto_escolhida = a.id_foto_escolhida
						and a.id_evento = $id_evento
						and a.for_album = 1";
		$this->execulta();
	}


	public function getQtoLayout($id_evento, $for_album)
	{
		$this->sql = "select COUNT(nome_foto) as quantidade from x9_foto_escolhida 
						where id_evento = $id_evento
						and id_x9_local = 10
						and for_album = $for_album";
		$this->execulta();

		while ($row = mysqli_fetch_object($this->qry))
			return $row->quantidade;
	}



	public function getQtoLayoutGeral($id_evento)
	{
		$this->sql = "select qto_fotos FROM album_picasa
						where id_x9_local = 10
						and id_evento = $id_evento";

		$this->execulta();

		while ($row = mysqli_fetch_object($this->qry))
			return $row->qto_fotos;
	}



	public function QtoProcesso()
	{
		$this->sql = "select DISTINCT($this->id_empresa),
					 (select count(*) from evento_producao where statos = 1 and id_empresa = $this->id_empresa) as statos1,
					 (select count(*) from evento_producao where statos = 2 and id_empresa = $this->id_empresa) as statos2,
					 (select count(*) from evento_producao where statos = 3 and id_empresa = $this->id_empresa) as statos3,
					 (select count(*) from evento_producao where statos = 4 and id_empresa = $this->id_empresa) as statos4,
					 (select count(*) from evento_producao where statos = 5 and id_empresa = $this->id_empresa) as statos5,
					 (select count(*) from evento_producao where statos = 6 and id_empresa = $this->id_empresa) as statos6,
					 (select count(*) from evento_producao where statos = 7 and id_empresa = $this->id_empresa) as statos7,
					 (select count(*) from evento_producao where statos = 8 and id_empresa = $this->id_empresa) as statos8,
					 (select count(*) from evento_producao where statos = 9 and id_empresa = $this->id_empresa) as statos9,
					 (select count(*) from evento_producao where statos = 10 and id_empresa = $this->id_empresa) as statos10,
					 (select count(*) from evento_producao where statos = 11 and id_empresa = $this->id_empresa) as statos11
					from evento_producao
					where id_empresa = $this->id_empresa";
		$this->execulta();
	}


	public function QtoFotosEscolhidas($id_evento)
	{
		$this->sql = "SELECT DISTINCT(id_evento),
						(select count(*) from x9_foto_escolhida where id_evento = $id_evento and id_x9_local = 7) as ampliacao,
						(select count(*) from x9_foto_escolhida where id_evento = $id_evento and id_x9_local = 8) as bioombo,
						(select count(*) from x9_foto_escolhida where id_evento = $id_evento and id_x9_local = 9) as outros,
						(select count(*) from x9_foto_escolhida where id_evento = $id_evento and id_x9_local = 5) as album,
						(select count(*) from x9_foto_escolhida where id_evento = $id_evento and id_x9_local = 6) as capa
						FROM x9_foto_escolhida
						where id_evento = $id_evento
						and id_empresa = $this->id_empresa";
		$this->execulta();
	}
}
