<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Panel_control extends Admin_Controller {

	public function __construct()
	{
		parent::__construct();

		$this->load->model('monitoreo/panel_control/panel_control_model');
		$this->lang->load('monitoreo/control_operador_lang');
		$this->lang->load('monitoreo/empate_lang');

		$this->load->library('Classes/PHPExcel.php');

		//guarda el último módulo
		$_SESSION['id_modulo_ant'] = $_SESSION['id_modulo'];

		//verificación de módulo para el reset de las variables de sessión utilizadas en la misma
		if ($_SESSION['id_modulo'] != 'PANEL_CONTROL') {

			$_SESSION['arraywhere_control_operador'] = NULL;
			$_SESSION['arraywhere_control_operador_busq'] = NULL;
			$_SESSION['arraywhere_control_supervisor'] = NULL;

			//si el módulo es distinto a ENCUESTAS
			if ($_SESSION['id_modulo'] 	!= 'ENCUESTAS') {
				$_SESSION['ordenar'] 	= NULL;	//variable de session que guarda los campos de orden
				$_SESSION['orden'] 		= NULL;		//variable de session que guarda la ordinalidad
				$_SESSION['ck_ordenar'] = NULL;	//variable de session que guarda los checkbox's seleccionados
				$_SESSION['num_pag_v'] 	= NULL;	//variable de session que guarda la página actual del panel de verificador
				$_SESSION['num_pag_s'] 	= NULL;	//variable de session que guarda la página actual del panel de supervisor
				$_SESSION['arraywhereempate'] 		= NULL;
			}

			//Define nuevo id_modulo
			$_SESSION['id_modulo'] = 'PANEL_CONTROL';
			$_SESSION['dptodistritocoloniaemp'] = NULL;
			$_SESSION['dptodistritocoloniainf'] = NULL;

			$_SESSION['arraywhereinforme'] 		= NULL;
			$_SESSION['arraywhereinforme_busq'] = NULL;
		}
		
	}
	/**********************************			CONTROL - OPERADOR		********************************/
	public function control_operador()
	{
		$this->page_title->push(lang('menu_control_operador'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_control_operador'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			/******** Mantener la última página visitada **********/
			//si el segmento 5 del url tiene valor y el módulo anterior es distinto a ENCUESTAS, entonces guarda la nueva página
			if ($this->uri->segment(5) AND $_SESSION['id_modulo_ant'] != 'ENCUESTAS') {
				$_SESSION['num_pag_v'] = $this->uri->segment(5);

			}elseif ($_SESSION['id_modulo_ant'] != 'ENCUESTAS') {
			
				$_SESSION['num_pag_v'] = NULL;
			}

			if ($_SESSION['id_modulo_ant'] == 'ENCUESTAS') {
				redirect('monitoreo/panel_control/panel_control/control_operador/'.$_SESSION['num_pag_v']);
			}
			/******** Mantener la última página visitada **********/

			if ($_POST) {
				
				//*************** campos para el orden
				if (isset($_POST['ck_dpto'])) 
				{
					$arrayordenar['ck_dpto'] = $_POST['ck_dpto'];
					$orderby = $_POST['ck_dpto'];
				}

				if (isset($_POST['ck_distrito'])) 
				{
					$arrayordenar['ck_distrito'] = $_POST['ck_distrito'];
					if (isset($orderby)) {
						$orderby = $orderby.','.$_POST['ck_distrito'];
					}else{
						$orderby = $orderby.$_POST['ck_distrito'];
					}
				}

				if (isset($_POST['ck_colonia'])) 
				{
					$arrayordenar['ck_colonia'] = $_POST['ck_colonia'];
					if (isset($orderby)) {
						$orderby = $orderby.','.$_POST['ck_colonia'];
					}else{
						$orderby = $orderby.$_POST['ck_colonia'];
					}
				}

				if (isset($_POST['ck_manzana'])) 
				{
					$arrayordenar['ck_manzana'] = $_POST['ck_manzana'];
					if (isset($orderby)) {
						$orderby = $orderby.','.$_POST['ck_manzana'];
					}else{
						$orderby = $orderby.$_POST['ck_manzana'];
					}
				}

				if (isset($_POST['ck_lote_a'])) 
				{
					$arrayordenar['ck_lote_a'] = $_POST['ck_lote_a'];
					if (isset($orderby)) {
						$orderby = $orderby.','.$_POST['ck_lote_a'];
					}else{
						$orderby = $orderby.$_POST['ck_lote_a'];
					}
				}

				if (isset($_POST['ck_lote_b'])) 
				{
					$arrayordenar['ck_lote_b'] = $_POST['ck_lote_b'];
					if (isset($orderby)) {
						$orderby = $orderby.','.$_POST['ck_lote_b'];
					}else{
						$orderby = $orderby.$_POST['ck_lote_b'];
					}
				}

				if (isset($_POST['ck_cuest'])) 
				{
					$arrayordenar['ck_cuest'] = $_POST['ck_cuest'];
					if (isset($orderby)) {
						$orderby = $orderby.','.$_POST['ck_cuest'];
					}else{
						$orderby = $orderby.$_POST['ck_cuest'];
					}
				}

				if (isset($_POST['ck_situacion_lote'])) 
				{
					$arrayordenar['ck_situacion_lote'] = $_POST['ck_situacion_lote'];
					if (isset($orderby)) {
						$orderby = $orderby.','.$_POST['ck_situacion_lote'];
					}else{
						$orderby = $orderby.$_POST['ck_situacion_lote'];
					}
				}

				if (isset($_POST['ck_condicion_lote'])) 
				{
					$arrayordenar['ck_condicion_lote'] = $_POST['ck_condicion_lote'];
					if (isset($orderby)) {
						$orderby = $orderby.','.$_POST['ck_condicion_lote'];
					}else{
						$orderby = $orderby.$_POST['ck_condicion_lote'];
					}
				}

				if (isset($_POST['ck_ocupante_actual'])) 
				{
					$arrayordenar['ck_ocupante_actual'] = $_POST['ck_ocupante_actual'];
					if (isset($orderby)) {
						$orderby = $orderby.','.$_POST['ck_ocupante_actual'];
					}else{
						$orderby = $orderby.$_POST['ck_ocupante_actual'];
					}
				}

				if (isset($_POST['ck_nombre_proceso'])) 
				{
					$arrayordenar['ck_nombre_proceso'] = $_POST['ck_nombre_proceso'];
					if (isset($orderby)) {
						$orderby = $orderby.','.$_POST['ck_nombre_proceso'];
					}else{
						$orderby = $orderby.$_POST['ck_nombre_proceso'];
					}
				}

				if (isset($_POST['ordinalidad'])) 
				{
					$ordinalidad = $_POST['ordinalidad'];
				}

				$_SESSION['ordenar'] 	= $arrayordenar;

				$_SESSION['orden'] 		= $ordinalidad;

				$_SESSION['ck_ordenar'] = $orderby;
				//*************** FIN campos para el orden

				redirect('monitoreo/panel_control/panel_control/control_operador/'.$_SESSION['num_pag_v']);
			}

			//condiciona que se vean solo los registros correspondientes al verificador logueado
			if (!isset($_SESSION['arraywhere_control_operador_busq'])) {
				$usuario['usuario_verificador'] 		 		= $this->session->userdata('user_id');
				$_SESSION['arraywhere_control_operador_busq'] 	= $usuario;
			}

			 // ----- Paginacion Generica 
			$mi_paginacion = $this->ion_auth->paginacion_generica(
				12, 										// resultados por por_pagina, 
				5, 											// segmento uri a leer, 
				5, 											// cantidad_enlaces,
				base_url().'monitoreo/panel_control/panel_control/control_operador/',  // url completa de la pagina paginada
				'monitoreo_verificador',					// scheme y nombre de la tabla, para la consulta
				$_SESSION['arraywhere_control_operador_busq'],	//el where condicionante
				$_SESSION['ck_ordenar'],					//los campos por el cual se ordenarán
				$_SESSION['orden']							//Se define si es de orden ASC(ascendente) o DESC(descendente)
				);

			$this->data['pagination'] 				= $mi_paginacion['pagination'];

			$this->data['control_operador']	  		= $this->ion_auth_model->segmentador_paginas(
 				$mi_paginacion['per_page'], 				// resultados por pagina
 				5,											// segmento uri a leer
 				'monitoreo_verificador',					// el nombre de la tabla a consultar $nombre_tabla
 				$_SESSION['arraywhere_control_operador_busq'],	//el where condicionante
 				$_SESSION['ck_ordenar'],					//los campos por el cual se ordenarán
				$_SESSION['orden']							//Se define si es de orden ASC(ascendente) o DESC(descendente)
 				)->result();
			// ----- Fin paginacion

			$this->data['estadistica_registros'] = $this->panel_control_model->estadistica_registros($this->session->userdata('user_id'))->result();

			$this->data['message'] = (validation_errors() ? validation_errors() : ($this->ion_auth->errors() ? $this->ion_auth->errors() : $this->session->flashdata('message')));

			$dptodistritocoloniamz = $this->panel_control_model->view_all('dpto,distrito,colonia,manzana','monitoreo_verificador', array('usuario_verificador' => $this->session->userdata('user_id')),array('dpto','distrito','colonia','manzana'))->result_array();

			foreach ($dptodistritocoloniamz as $ddc) {

				$keyconcat = $ddc['dpto'].$ddc['distrito'].$ddc['colonia'].$ddc['manzana'];

				$dptodistritocoloniamzs[$keyconcat] = 'Dpto: '.$ddc['dpto'].' - Dist.: '.$ddc['distrito'].' - Colonia: '.$ddc['colonia'].' - Manzana: '.$ddc['manzana'];
			}
			
			if ($dptodistritocoloniamz) {
				$this->data['dptodistritocoloniamz'] = $dptodistritocoloniamzs;
			}else{
				$this->data['dptodistritocoloniamz'] = 'NO QUEDAN COLONIAS';
			}

			$dptodistritocolonia = $this->panel_control_model->view_all('dpto,distrito,colonia','monitoreo_verificador', array('usuario_verificador' => $this->session->userdata('user_id')),array('dpto','distrito','colonia'))->result_array();

			foreach ($dptodistritocolonia as $ddc) {

				$keyconcat = $ddc['dpto'].$ddc['distrito'].$ddc['colonia'];

				$dptodistritocolonias[$keyconcat] = 'Dpto: '.$ddc['dpto'].' - Dist.: '.$ddc['distrito'].' - Colonia: '.$ddc['colonia'];
			}
			
			if ($dptodistritocolonia) {
				$this->data['dptodistritocolonia'] = $dptodistritocolonias;
			}else{
				$this->data['dptodistritocolonia'] = 'NO QUEDAN COLONIAS';
			}
			//********* FIN COMBOBOX's **********

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/index_operador', $this->data);
		}
	}

	public function busqueda_control_operador ()
	{
		if ($_POST) {

			if ($_POST['dpto']) {
				$arraywhere['dpto'] 							= $_POST['dpto'];
				$arraywherebusq['dpto like '] 					= '%'.$_POST['dpto'].'%';
			}

			if ($_POST['distrito']) {
				$arraywhere['distrito'] 						= $_POST['distrito'];
				$arraywherebusq['distrito like '] 				= '%'.$_POST['distrito'].'%';
			}

			if ($_POST['colonia']) {
				$arraywhere['colonia'] 							= $_POST['colonia'];
				$arraywherebusq['colonia like '] 				= '%'.$_POST['colonia'].'%';
			}

			if ($_POST['colonia_desc']) {
				$arraywhere['colonia_desc'] 					= $_POST['colonia_desc'];
				$arraywherebusq['lower(col_desc) like '] 		= strtolower('%'.$_POST['colonia_desc'].'%');
			}

			if ($_POST['manzana']) {
				$arraywhere['manzana'] 							= $_POST['manzana'];
				$arraywherebusq['lower(manzana) like '] 		= '%'.strtolower($_POST['manzana']).'%';
			}

			if ($_POST['lote_a']) {
				$arraywhere['lote_a'] 							= $_POST['lote_a'];
				$arraywherebusq['lower(lote_a) like '] 			= '%'.strtolower($_POST['lote_a']).'%';
			}

			if ($_POST['lote_b']) {
				$arraywhere['lote_b'] 							= $_POST['lote_b'];
				$arraywherebusq['lower(lote_b) like '] 			= '%'.strtolower($_POST['lote_b']).'%'; 
			}

			if ($_POST['cuest']) {
				$arraywhere['cuest'] 							= $_POST['cuest'];
				$arraywherebusq['cuest like '] 					= '%'.$_POST['cuest'].'%';
			}

			if ($_POST['situacion_lote']) {
				$arraywhere['situacion_lote'] 					= $_POST['situacion_lote'];
				$arraywherebusq['situacion_lote'] 				= $_POST['situacion_lote'];
			}

			if ($_POST['condicion_lote']) {
				$arraywhere['condicion_lote'] 					= $_POST['condicion_lote'];
				$arraywherebusq['condicion_lote'] 				= $_POST['condicion_lote'];
			}

			if ($_POST['ocupante_actual']) {
				$arraywhere['ocupante_actual'] 					= $_POST['ocupante_actual'];
				$arraywherebusq['lower(ocupante_actual) like '] = '%'.strtolower($_POST['ocupante_actual']).'%';
			}

			if ($_POST['cultivo']) {
				$arraywhere['cultivo'] 							= $_POST['cultivo'];
				$arraywherebusq['cultivo'] 						= $_POST['cultivo'];
			}

			if ($_POST['produccion_ganadera']) {
				$arraywhere['produccion_ganadera'] 				= $_POST['produccion_ganadera'];
				$arraywherebusq['produccion_ganadera'] 			= $_POST['produccion_ganadera'];
			}

			if ($_POST['asistencia_crediticia']) {
				$arraywhere['asistencia_crediticia'] 			= $_POST['asistencia_crediticia'];
				$arraywherebusq['asistencia_crediticia'] 		= $_POST['asistencia_crediticia'];
			}

			if ($_POST['asistencia_tecnica']) {
				$arraywhere['asistencia_tecnica']				= $_POST['asistencia_tecnica'];
				$arraywherebusq['asistencia_tecnica']			= $_POST['asistencia_tecnica'];
			}

			if ($_POST['organizacion']) {
				$arraywhere['organizacion'] 					= $_POST['organizacion'];
				$arraywherebusq['organizacion'] 				= $_POST['organizacion'];
			}

			if ($_POST['nombre_proceso']) {
				$arraywhere['nombre_proceso'] 					= $_POST['nombre_proceso'];
				$arraywherebusq['lower(nombre_proceso) like '] 	= '%'.strtolower($_POST['nombre_proceso']).'%';
			}


			//cargada por defecto para mostrar datos correspondientes al verificador
			$arraywherebusq['usuario_verificador'] 		 	= $this->session->userdata('user_id');

			$_SESSION['arraywhere_control_operador_busq'] 	= $arraywherebusq;
			$_SESSION['arraywhere_control_operador'] 		= $arraywhere;
				
		}

		redirect('monitoreo/panel_control/panel_control/control_operador/'.$_SESSION['num_pag_v']);
	}


	public function terminar_operador ($id_registro_lote)
	{
		//consulta a la tabla MONITOREO
		$monitoreo  = $this->panel_control_model->view('monitoreo', array('id_registro_lote' => $id_registro_lote))->row();
		$reg02 		= $this->panel_control_model->view('reg02', array('id_registro_lote' => $id_registro_lote))->row();

		//condiciona que el registro no haya sido analizado y sea distinto a rechazado para proceder a los siguientes procesos
		if ($monitoreo->registro_analizado == 0 AND $monitoreo->proceso != 'A04') 
		{
			if ($monitoreo->proceso != 'A03') {
				$this->session->set_flashdata('message', 'PRIMERO DEBE PROCESAR EL CUESTIONARIO LOTE <b>'.$monitoreo->cuest. '</b> DEL LOTE <b>'.$monitoreo->lote_a. '</b> DE LA MANZANA <b>'.$monitoreo->manzana.'</b>');
				redirect('monitoreo/panel_control/panel_control/control_operador/'.$_SESSION['num_pag_v']);
			}else{

				//if ($reg02->mapear == 0 OR $reg02->mapear == '' OR $reg02->adjudicar == '' OR $reg02->nacionalidad == 0 OR $reg02->nacionalidad == '' ) {
				if ($reg02->mapear == 0 OR $reg02->mapear == '') {
					$this->session->set_flashdata('message', 'EL CAMPO <b>MAPEAR</b> O <b>ADJUDICAR</b> O <b>NACIONALIDAD</b> FALTA COMPLETAR');
					redirect('monitoreo/panel_control/panel_control/control_operador');
				}

				$str = date_default_timezone_get();
				$fecha = date("d/m/Y", strtotime($str));

				$arraycampos_m = array(
								'mapear'				=> $reg02->mapear,	//actualiza la última versión del campo mapear
								'registro_analizado'	=> 1,		//el estado de registro pasar a ser ANALIZADO
								'proceso'				=> 'A04',	//el proceso pasa a ser TERMINADO
								'fecha_reg_analizado'	=> $fecha	//el proceso pasa a ser TERMINADO
								);

				$this->panel_control_model->actualizar_registro('monitoreo',$arraycampos_m,array('id_registro_lote' => $id_registro_lote));

				//consulta a tabla ASIGNACIONLOTES
				$asignacionlotes = $this->panel_control_model->view('asignacionlotes', array('lote' => $monitoreo->lote))->row();

				//suma 1 a la cantidad de registros analizados
				$arraycampos_a = array('cantidad_reg_analizado' => $asignacionlotes->cantidad_reg_analizado+1);

				$this->panel_control_model->actualizar_registro('asignacionlotes',$arraycampos_a,array('lote' => $monitoreo->lote));

				$this->session->set_flashdata('message', 'HA TERMINADO EL LOTE <b>'.$monitoreo->lote_a. '</b> DE LA MANZANA <b>'.$monitoreo->manzana.'</b>');

				redirect('monitoreo/panel_control/panel_control/control_operador/'.$_SESSION['num_pag_v']);	
			}

		}else{
			$this->session->set_flashdata('message', 'YA HA TERMINADO EL LOTE <b>'.$monitoreo->lote_a. '</b> DE LA MANZANA <b>'.$monitoreo->manzana.'</b>');
			redirect('monitoreo/panel_control/panel_control/control_operador/'.$_SESSION['num_pag_v']);
		}
	}

	/**
	 * generar_excel_poblacion
	 *	Generar documento excel a partir de la colonia electa
	 * @return bool
	 * @author Diego Ferreira 
	 **/
	public function generar_excel_poblacion () {

		if (!$_POST['dptodistritocolonia']) {
			redirect('monitoreo/panel_control/panel_control/control_operador');
		}
		$ddcm 		= $_POST['dptodistritocolonia'];
		$dpto 		= substr($ddcm, 0,2);
		$distrito 	= substr($ddcm, 2,2);
		$colonia 	= substr($ddcm, 4,3);


		/************* PESTAÑA 1 ***************/
		
		$poblacion = $this->panel_control_model->dropdown_data('reg02', array('dpto' => $dpto, 'distrito' => $distrito, 'colonia' => $colonia))->result_array();
		
		//GENERA ENCABEZADO
		$columnas = $this->panel_control_model->dropdown_data('columnas_tabla', array('table_schema' => 'public', 
																				 'table_name' => 'reg02'
																				)
														)->result();
		$f = 1;
		$c = 0;
	    foreach ($columnas as $value) 
	    {
	    	if ($value->column_name != 'l20_1_1' AND
  				$value->column_name != 'l20_total_hectareas' AND
  				$value->column_name != 'l21_1' AND
  				$value->column_name != 'l21_2' AND
  				$value->column_name != 'l21_3' AND
  				$value->column_name != 'l21_4' AND
  				$value->column_name != 'l21_5' AND
  				$value->column_name != 'l21_6' AND
  				$value->column_name != 'l21_7' AND
  				$value->column_name != 'l21_8' AND
  				$value->column_name != 'l21_9' AND
  				$value->column_name != 'l21_10' AND
  				$value->column_name != 'l21_11' AND
  				$value->column_name != 'l21_12' AND
  				$value->column_name != 'l21_12_esp' AND
  				$value->column_name != 'l21_13' AND
  				$value->column_name != 'l22' AND
  				$value->column_name != 'l23' AND
  				$value->column_name != 'l24' AND
  				$value->column_name != 'l25' AND
  				$value->column_name != 'l26') 
  			{
	    		$this->phpexcel->setActiveSheetIndex(0)->getCellByColumnAndRow($c, $f)->setValue($value->column_name);
	    		$c = $c + 1;
	    	}
	    }

	    $f = 2;
		$c = $c;

		foreach ($poblacion as $value) {
			$c = 0;
	    	foreach ($columnas as $columns) 
	    	{
	    		if ($columns->column_name != 'l20_1_1' AND
	  				$columns->column_name != 'l20_total_hectareas' AND
	  				$columns->column_name != 'l21_1' AND
	  				$columns->column_name != 'l21_2' AND
	  				$columns->column_name != 'l21_3' AND
	  				$columns->column_name != 'l21_4' AND
	  				$columns->column_name != 'l21_5' AND
	  				$columns->column_name != 'l21_6' AND
	  				$columns->column_name != 'l21_7' AND
	  				$columns->column_name != 'l21_8' AND
	  				$columns->column_name != 'l21_9' AND
	  				$columns->column_name != 'l21_10' AND
	  				$columns->column_name != 'l21_11' AND
	  				$columns->column_name != 'l21_12' AND
	  				$columns->column_name != 'l21_12_esp' AND
	  				$columns->column_name != 'l21_13' AND
	  				$columns->column_name != 'l22' AND
	  				$columns->column_name != 'l23' AND
	  				$columns->column_name != 'l24' AND
	  				$columns->column_name != 'l25' AND
	  				$columns->column_name != 'l26') 
	  			{
					$this->phpexcel->setActiveSheetIndex(0)->getCellByColumnAndRow($c, $f)->setValue($value[$columns->column_name]);
	    			$c = $c + 1;
	    		}
	    	}

			$f = $f + 1;
		}

		$styleArray = array(
							'borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN,
																  'color' => array('argb' => '343b36'),
																  ),
											   ),
							);
		$this->phpexcel->getActiveSheet()->getStyle('A1:GJ1')->applyFromArray($styleArray);
		$this->phpexcel->getActiveSheet()->getStyle('A1:GJ1')->getAlignment()->setWrapText(true);	                
	    $this->phpexcel->getActiveSheet()->getStyle('A1:GJ1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('d2d2d2');
	    
	    // Renombramos la hoja de trabajo
	    $this->phpexcel->getActiveSheet()->setTitle('Ocupantes');
	    /************* FIN PESTAÑA 1 ***************/

	    /************* PESTAÑA 2 ***************/
	    $myWorkSheet = new PHPExcel_Worksheet($this->phpexcel, 'Poblacion Censo');

		$this->phpexcel->addSheet($myWorkSheet, 1);

		$poblacion = $this->panel_control_model->dropdown_data('reg10', array('dpto' => $dpto, 'distrito' => $distrito, 'colonia' => $colonia))->result_array();
		
		//GENERA ENCABEZADO
		$columnas = $this->panel_control_model->dropdown_data('columnas_tabla', array('table_schema' => 'public', 
																				 'table_name' => 'reg10'
																				)
														)->result();
	    
		$f = 1;
		$c = 0;
	    foreach ($columnas as $value) 
	    {
	    	$this->phpexcel->setActiveSheetIndex(1)->getCellByColumnAndRow($c, $f)->setValue($value->column_name);
	    	$c = $c + 1;
	    }

	    $f = 2;
		$c = $c;

		foreach ($poblacion as $value) {
			$c = 0;
	    	foreach ($columnas as $columns) 
	    	{
	    		$this->phpexcel->setActiveSheetIndex(1)->getCellByColumnAndRow($c, $f)->setValue($value[$columns->column_name]);
	    		$c = $c + 1;
	    	}

			$f = $f + 1;
		}

		$styleArray = array(
							'borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN,
																  'color' => array('argb' => '343b36'),
																  ),
											   ),
							);
		$this->phpexcel->getActiveSheet()->getStyle('A1:AH1')->applyFromArray($styleArray);
		$this->phpexcel->getActiveSheet()->getStyle('A1:AH1')->getAlignment()->setWrapText(true);	                
	    $this->phpexcel->getActiveSheet()->getStyle('A1:AH1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('d2d2d2');

	    /************* FIN PESTAÑA 2 ***************/

	    /************* PESTAÑA 3 ***************/
	    $myWorkSheet = new PHPExcel_Worksheet($this->phpexcel, 'Poblacion Actual');

		$this->phpexcel->addSheet($myWorkSheet, 3);

		$poblacion = $this->panel_control_model->dropdown_data('reg12', array('dpto' => $dpto, 'distrito' => $distrito, 'colonia' => $colonia))->result_array();
		
		//GENERA ENCABEZADO
		$columnas = $this->panel_control_model->dropdown_data('columnas_tabla', array('table_schema' => 'public', 
																				 'table_name' => 'reg12'
																				)
														)->result();
	    
		$f = 1;
		$c = 0;
	    foreach ($columnas as $value) 
	    {
	    	$this->phpexcel->setActiveSheetIndex(2)->getCellByColumnAndRow($c, $f)->setValue($value->column_name);
	    	$c = $c + 1;
	    }

	    $f = 2;
		$c = $c;

		foreach ($poblacion as $value) {
			$c = 0;
	    	foreach ($columnas as $columns) 
	    	{
				$this->phpexcel->setActiveSheetIndex(2)->getCellByColumnAndRow($c, $f)->setValue($value[$columns->column_name]);
	    		
	    		$c = $c + 1;
	    	}


			$f = $f + 1;
		}

		$styleArray = array(
							'borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN,
																  'color' => array('argb' => '343b36'),
																  ),
											   ),
							);
		$this->phpexcel->getActiveSheet()->getStyle('A1:AH1')->applyFromArray($styleArray);
		$this->phpexcel->getActiveSheet()->getStyle('A1:AH1')->getAlignment()->setWrapText(true);	                
	    $this->phpexcel->getActiveSheet()->getStyle('A1:AH1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('d2d2d2');

	    /************* FIN PESTAÑA 3 ***************/

		// configuramos el documento para que la hoja
	    // de trabajo número 0 sera la primera en mostrarse
	    // al abrir el documento
	    $this->phpexcel->setActiveSheetIndex(0);

	    // redireccionamos la salida al navegador del cliente (Excel2007)
	    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
	    header('Content-Disposition: attachment;filename="poblacion_'.$dpto.'_'.$distrito.'_'.$colonia.'.xlsx"');
	    header('Cache-Control: max-age=0');
	     
	    $objWriter = PHPExcel_IOFactory::createWriter($this->phpexcel, 'Excel2007');
	    $objWriter->save('php://output');	    
	}

	public function liberar_operador ()
	{
		if (!$_POST['dptodistritocoloniamz']) {
			redirect('monitoreo/panel_control/panel_control/control_operador');
		}
		$ddcm 		= $_POST['dptodistritocoloniamz'];
		$dpto 		= substr($ddcm, 0,2);
		$distrito 	= substr($ddcm, 2,2);
		$colonia 	= substr($ddcm, 4,3);
		$manzana 	= substr($ddcm, 7);

		//consulta a monitoreo segun usuario logueado, dpto, distrito, colonia y manzana elegida
		$dptodistritocoloniamz = $this->panel_control_model->view_all('*',
																	  'monitoreo_verificador', 
																	  array('usuario_verificador'	=> $this->session->userdata('user_id'),
																	  		'dpto' 					=> $dpto,
																	  		'distrito' 				=> $distrito,
																	  		'colonia' 				=> $colonia,
																	  		'manzana' 				=> $manzana),
																	  NULL,
																	  NULL
																	  )->result_array();

		foreach ($dptodistritocoloniamz as $value) {
			//si algun registro aún no está terminado
			if ($value['registro_analizado'] == 0) 
			{
				$this->session->set_flashdata('message', 'FALTA TERMINAR EL LOTE <b>'.$value['lote_a']. '</b> DE LA MANZANA <b>'.$value['manzana'].'</b>');
				
				redirect('monitoreo/panel_control/panel_control/control_operador/'.$_SESSION['num_pag_v']);
			}else
			{
				$arraycampos_m = array(
							'liberado_reg_analizado'	=> 1,					//actualiza la última versión del campo mapear
							'mapear'					=> $value['mapear'],	//el estado de registro pasar a ser ANALIZADO
							'proceso'					=> 'A05'				//el proceso pasa a ser TERMINADO
							);

				$this->panel_control_model->actualizar_registro('monitoreo',$arraycampos_m,array('dpto' => $dpto, 'distrito' => $distrito, 'colonia' => $colonia, 'manzana' => $manzana));

				$this->session->set_flashdata('message', 'MANZANA <b>'.$value['manzana'].'</b> LIBERADA CORRECTAMENTE');
			}
		}
		redirect('monitoreo/panel_control/panel_control/control_operador/'.$_SESSION['num_pag_v']);
	}

	public function liberar_operador_indiv ($id_registro_lote)
	{
		//consulta a monitoreo segun usuario logueado, dpto, distrito, colonia y manzana elegida
		$cuest = $this->panel_control_model->view_all('*',
													  'monitoreo_verificador', 
													  array('usuario_verificador'	=> $this->session->userdata('user_id'),
													  		'id_registro_lote' 		=> $id_registro_lote),
													  NULL,
													  NULL
													  )->row();
		//si el registro aún no está terminado
		if ($cuest->registro_analizado == 0) 
		{
			$this->session->set_flashdata('message', 'FALTA TERMINAR EL LOTE <b>'.$cuest->lote_a. '</b> DE LA MANZANA <b>'.$cuest->manzana.'</b>');
			
			redirect('monitoreo/panel_control/panel_control/control_operador/'.$_SESSION['num_pag_v']);
		}else
		{
			$arraycampos_m = array(
						'liberado_reg_analizado'	=> 1,					//actualiza el campo liberado_reg_analizado
						'mapear'					=> $cuest->r_mapear,	//actualiza la última versión del campo mapear
						'proceso'					=> 'A05'				//el proceso pasa a ser LIBERADO
						);

			$this->panel_control_model->actualizar_registro('monitoreo',$arraycampos_m,array('id_registro_lote' => $id_registro_lote));

			$this->session->set_flashdata('message', 'LOTE <b>'.$cuest->lote_a.'</b> de la MANZANA <b>'.$cuest->manzana.'</b> LIBERADO CORRECTAMENTE');
		}

		redirect('monitoreo/panel_control/panel_control/control_operador/'.$_SESSION['num_pag_v']);
	}

	/**********************************			CONTROL - SUPERVISOR		********************************/
	public function control_supervisor()
	{
		$this->page_title->push(lang('menu_control_supervisor'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_control_supervisor'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			/******** Mantener la última página visitada **********/
			if ($this->uri->segment(5) AND $_SESSION['id_modulo_ant'] != 'ENCUESTAS') {
				$_SESSION['num_pag_s'] = $this->uri->segment(5);

			}elseif ($_SESSION['id_modulo_ant'] != 'ENCUESTAS') {
			
				$_SESSION['num_pag_s'] = NULL;
			}

			if ($_SESSION['id_modulo_ant'] == 'ENCUESTAS') {
				redirect('monitoreo/panel_control/panel_control/control_supervisor/'.$_SESSION['num_pag_s']);
			}
			/******** Mantener la última página visitada **********/

			if ($_POST) {

				/*
				if ($_POST['estado']) 
				{
					$arraywhere['estado'] 		= $_POST['estado'];
				}
				if ($_POST['l06']) 
				{
					$arraywhere['l06'] 		= $_POST['l06'];
				}
				if ($_POST['l07']) 
				{
					$arraywhere['l07'] 			= $_POST['l07'];
				}
				if ($_POST['mapear']) 
				{
					$arraywhere['mapear'] 		= $_POST['mapear'];
				}
				*/
				$_SESSION['arraywhere_control_supervisor'] = $arraywhere;

				redirect('monitoreo/panel_control/panel_control/control_supervisor/');			
			}

			$usuario['usuario_responsable_colonia'] 	= $this->session->userdata('user_id');
			$_SESSION['arraywhere_control_supervisor'] 	= $usuario;

			 // ----- Paginacion Generica 
			$mi_paginacion = $this->ion_auth->paginacion_generica(
				12, 						// resultados por por_pagina, 
				5, 							// segmento uri a leer, 
				5, 							// cantidad_enlaces,
				base_url().'monitoreo/panel_control/panel_control/control_supervisor/',  // url completa de la pagina paginada
				'monitoreo_supervisor',					// scheme y nombre de la tabla, para la consulta
				$_SESSION['arraywhere_control_supervisor']
				);

			$this->data['pagination'] 		= $mi_paginacion['pagination'];

			$this->data['control_supervisor']	  	= $this->ion_auth_model->segmentador_paginas(
 				$mi_paginacion['per_page'], 	// resultados por pagina
 				5,								// segmento uri a leer
 				'monitoreo_supervisor',			// el nombre de la tabla a consultar $nombre_tabla
 				$_SESSION['arraywhere_control_supervisor']
 				)->result();
			// ----- Fin paginacion


			$this->data['message'] = (validation_errors() ? validation_errors() : ($this->ion_auth->errors() ? $this->ion_auth->errors() : $this->session->flashdata('message')));
			//l06
	        $l06 = $this->ion_auth_model->traer_concepto('L06','concepto')->result_array();
			//inserta en un array asociativo para poder utilizarlo en el form_dropdown
			foreach ($l06 as $l6) {
				$l06s[$l6['concepto']] = $l6['concepto'].' - '.$l6['nombre'];
			}
			$this->data['l06'] = $l06s;
			//$this->data['l06_sel'] = intval($reg02_datos_del_lote->l06);

			//l07
	        $l07 = $this->ion_auth_model->traer_concepto('L07','concepto')->result_array();
			//inserta en un array asociativo para poder utilizarlo en el form_dropdown
			foreach ($l07 as $l7) {
				$l07s[$l7['concepto']] = $l7['concepto'].' - '.$l7['nombre'];
			}
			$this->data['l07'] = $l07s;
			//$this->data['l07_sel'] = intval($reg02_datos_del_lote->l07);

			//Estado
	        $estado = $this->ion_auth_model->traer_concepto('PROCESOS','concepto')->result_array();
			//inserta en un array asociativo para poder utilizarlo en el form_dropdown
			foreach ($estado as $est) {
				$estados[$est['concepto']] = $est['concepto'].' - '.$est['nombre'];
			}
			$this->data['estado'] = $estados;
			//$this->data['estado_sel'] = intval($reg01_caratula->estado);

			//mapear
	        $mapear = $this->ion_auth_model->traer_concepto('MAPEAR','concepto')->result_array();
			//inserta en un array asociativo para poder utilizarlo en el form_dropdown
			foreach ($mapear as $map) {
				$mapears[$map['concepto']] = $map['concepto'].' - '.$map['nombre'];
			}
			$this->data['mapear'] = $mapears;
			//$this->data['mapear_sel'] = intval($reg02_ocup_iii->mapear);

			$dptodistritocolonia = $this->panel_control_model->view_all('dpto,distrito,colonia',
																		'monitoreo_supervisor', 
																		array('usuario_responsable_colonia' => $this->session->userdata('user_id')),
																		array('dpto','distrito','colonia'),
																		NULL
																	    )->result_array();

			foreach ($dptodistritocolonia as $ddc) {

				$keyconcat = $ddc['dpto'].$ddc['distrito'].$ddc['colonia'];

				$dptodistritocolonias[$keyconcat] = 'Dpto: '.$ddc['dpto'].' - Dist.: '.$ddc['distrito'].' - Colonia: '.$ddc['colonia'];
			}

			if ($dptodistritocolonia) {
				$this->data['dptodistritocolonia'] = $dptodistritocolonias;
			}else{
				$this->data['dptodistritocolonia'] = '';
			}
			//********* FIN COMBOBOX's **********

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/index_control', $this->data);
		}
	}

	public function confirmar_supervisor ($id_registro_lote)
	{
		$monitoreo 		 = $this->panel_control_model->view('monitoreo', 	   array('id_registro_lote' => $id_registro_lote))->row();

		if ($monitoreo->proceso != 'A06') {

			$reg02 = $this->panel_control_model->view('reg02', array('id_registro_lote' => $id_registro_lote))->row();

			$str = date_default_timezone_get();
			$fecha = date("d/m/Y", strtotime($str));

			$arraycampos_m = array(
									'mapear'								=> $reg02->mapear,		//actualiza la última versión del campo mapear
									'reg_verificado_responsable_colonia'	=> 1,					//el estado de registro pasar a ser ANALIZADO
									'fecha_verificacion_responsable'		=> $fecha,				//el proceso pasa a ser TERMINADO
									'proceso'								=> 'A06'				//el proceso pasa a ser TERMINADO
								   );

			$this->panel_control_model->actualizar_registro('monitoreo',$arraycampos_m,array('id_registro_lote' => $id_registro_lote));

			redirect('monitoreo/panel_control/panel_control/control_supervisor/'.$_SESSION['num_pag_s']);
		}else{
			redirect('monitoreo/panel_control/panel_control/control_supervisor/'.$_SESSION['num_pag_s']);
		}
	}

	public function rechazar_supervisor ($id_registro_lote)
	{
		$reg02 			 = $this->panel_control_model->view('reg02', 		   array('id_registro_lote' => $id_registro_lote))->row();
		$monitoreo 		 = $this->panel_control_model->view('monitoreo', 	   array('id_registro_lote' => $id_registro_lote))->row();

		$dptodistritocolonia = $this->panel_control_model->view_all('dpto,distrito,colonia,manzana','monitoreo_verificador', 
																	array('usuario_verificador' => $this->session->userdata('user_id'),
																		  'manzana' => $monitoreo->lote
																		  ),
																	array('dpto','distrito','colonia','manzana'),
																	NULL
																	)->result_array();

		$asignacionlotes = $this->panel_control_model->view('asignacionlotes', array('lote' 			=> $monitoreo->lote ))->row();
		//actualiza los demás lotes con la misma manzana del lote rechazado *******************************************************************************
		$arraycampos1 = array('liberado_reg_analizado'		 			=> 0,
							  'registro_analizado'						=> 1,
							  'reg_verificado_responsable_colonia'		=> 0,
        					  'fecha_verificacion_responsable' 		    => NULL,
        					  'mapear' 			   						=> $reg02->mapear,
        					  'proceso'			   						=> 'A04'
        					  );

        $update_monitoreo = $this->panel_control_model->actualizar_registro('monitoreo',
        																	$arraycampos1,
        																	array('lote' => $monitoreo->lote)
        												  					);
        //*****************************************************************************************************************
		
		//actualiza el lote rechazado ************************************************************************************
		$arraycampos1 = array('liberado_reg_analizado'		 			=> 0,
							  'registro_analizado'						=> 0,
							  'reg_verificado_responsable_colonia'		=> 0,
        					  'fecha_verificacion_responsable' 		    => NULL,
        					  'reasignado_a_verificador' 			    => $monitoreo->reasignado_a_verificador + 1,
        					  'mapear' 			   						=> $reg02->mapear,
        					  'proceso'			   						=> 'A07'
        					  );

		$update_monitoreo = $this->panel_control_model->actualizar_registro('monitoreo',
        																	$arraycampos1,
        																	array('id_registro_lote' => $id_registro_lote)
        												  					);

        $cantidad_reg_analizado = $asignacionlotes->cantidad_reg_analizado - 1;

        $arraycampos2 = array('cantidad_reg_analizado' => $cantidad_reg_analizado);
        $update_asignacion = $this->panel_control_model->actualizar_registro('asignacionlotes',
        												  			 $arraycampos2,
        												  			 array('lote' => $asignacionlotes->lote)
        												  		     );
        //*****************************************************************************************************************
        redirect('monitoreo/panel_control/panel_control/control_supervisor/'.$_SESSION['num_pag_s']);
	}

	public function liberar_supervisor ()
	{
		$ddcm 		= $_POST['dptodistritocolonia'];
		$dpto 		= substr($ddcm, 0,2);
		$distrito 	= substr($ddcm, 2,2);
		$colonia 	= substr($ddcm, 4,3);
		
		//consulta a monitoreo segun usuario logueado, dpto, distrito, colonia elegida
		$dptodistritocolonia = $this->panel_control_model->view_all('*',
																	'monitoreo_verificador', 
																	array('usuario_verificador'	=> $this->session->userdata('user_id'),
																	      'dpto'				=> $dpto,
																	  	  'distrito'			=> $distrito,
																	  	  'colonia' 			=> $colonia
																	  	  ),
																	NULL,
																	NULL
																	)->result_array();

		foreach ($dptodistritocolonia as $value) {
			//si algun registro aún no está terminado
			if ($value['registro_analizado'] == 0) 
			{
				$this->session->set_flashdata('message', 'FALTA CONFIRMAR EL LOTE <b>'.$value['lote_a']. '</b> DE LA MANZANA <b>'.$value['manzana'].'</b> DE LA COLONIA <b>'.$value['colonia'].'</b>');
				
				redirect('monitoreo/panel_control/panel_control/control_supervisor/'.$_SESSION['num_pag_s']);
			}else
			{
				$arraycampos_m = array(
							'liberado_responsable_colonia'	=> 1,					//actualiza el campo liberado_responsable_colonia
							'verificado_coordinador'		=> 1,					//actualiza el campo verificado_coordinador
							'mapear'						=> $value['mapear'],	//actualiza la última versión del campo mapear
							'proceso'						=> 'A08'				//el proceso pasa a ser LIBERADO
							);

				$this->panel_control_model->actualizar_registro('monitoreo',$arraycampos_m,array('dpto' => $dpto, 'distrito' => $distrito, 'colonia' => $colonia));

				$this->session->set_flashdata('message', 'COLONIA <b>'.$value['colonia'].'</b> LIBERADA CORRECTAMENTE');
			}
		}
		redirect('monitoreo/panel_control/panel_control/control_supervisor/'.$_SESSION['num_pag_s']);
	}

	public function liberar_supervisor_indiv ($id_registro_lote)
	{
		
		/*
		if (!$_POST['dptodistritocolonia']) {
			redirect('monitoreo/panel_control/panel_control/control_operador');
		}
		$ddcm 		= $_POST['dptodistritocolonia'];
		$dpto 		= substr($ddcm, 0,2);
		$distrito 	= substr($ddcm, 2,2);
		$colonia 	= substr($ddcm, 4,3);
		$manzana 	= substr($ddcm, 7,7);
		*/

		

		//consulta a monitoreo segun usuario logueado, dpto, distrito, colonia y manzana elegida
		//$dptodistritocoloniamz = $this->panel_control_model->view('monitoreo_verificador', 
		//														   array('usuario_verificador'	=> $this->session->userdata('user_id'),
		//														   		 'dpto' 				=> $dpto,
		//															  	 'distrito' 			=> $distrito,
		//															  	 'colonia' 				=> $colonia,
		//															  	 'manzana' 				=> $manzana)
		//															  )->result_array();
		$monitoreo = $this->panel_control_model->view('monitoreo_supervisor', array('id_registro_lote' => $id_registro_lote))->row();

		/*echo '<pre>';
		print_r($monitoreo);
		echo '</pre>';
		show_error(1);*/


		//foreach ($dptodistritocoloniamz as $value) {
			//si algun registro aún no está terminado
			if ($monitoreo->reg_verificado_responsable_colonia == 0) 
			{
				$this->session->set_flashdata('message', 'FALTA CONFIRMAR EL LOTE <b>'.$monitoreo->lote_a. '</b> DE LA MANZANA <b>'.$monitoreo->manzana.'</b> DE LA COLONIA '.$monitoreo->colonia);
				
				redirect('monitoreo/panel_control/panel_control/control_supervisor');
			}else
			{
				$arraycampos_m = array(
							'liberado_responsable_colonia'	=> 1,					//actualiza la última versión del campo mapear
							'mapear'						=> $monitoreo->mapear,	//el estado de registro pasar a ser ANALIZADO
							'proceso'						=> 'A08'				//el proceso pasa a ser TERMINADO
							);

				$this->panel_control_model->actualizar_registro('monitoreo',$arraycampos_m,array('id_registro_lote' => $id_registro_lote));

				$this->session->set_flashdata('message', 'LOTE <b>'.$monitoreo->lote_a.'</b> LIBERADO CORRECTAMENTE');
				
			}
		//}
		redirect('monitoreo/panel_control/panel_control/control_supervisor');
	}

	/**********************************			CONTROL - COORDINADOR o EMPATE		********************************/
	public function empate_principal()
	{
		$this->page_title->push(lang('menu_empate'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_empate'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			if ($_POST) {

				if ($_POST['dptodistritocolonia']) 
				{
					$_SESSION['dptodistritocoloniaemp'] 	 = $_POST['dptodistritocolonia'];

					$arraywhereempate['dpto'] 				 = str_pad(substr($_POST['dptodistritocolonia'], 0,2), 2,"0", STR_PAD_LEFT);
					$arraywhereempate['distrito'] 			 = str_pad(substr($_POST['dptodistritocolonia'], 2,2), 2,"0", STR_PAD_LEFT);
					$arraywhereempate['colonia']			 = str_pad(substr($_POST['dptodistritocolonia'], 4), 3,"0", STR_PAD_LEFT);


					$_SESSION['arraywhereempate']			 = $arraywhereempate;
				}else{
					$_SESSION['arraywhereempate']			 = NULL;
				}
			}

			if (array_key_exists('arraywhereempate', $_SESSION)) {

				if ($_SESSION['arraywhereempate'] != NULL) {
					$dpto 		= $_SESSION['arraywhereempate']['dpto'];
					$distrito 	= $_SESSION['arraywhereempate']['distrito'];
					$colonia 	= $_SESSION['arraywhereempate']['colonia'];

					$result_empate['empatados']     = $this->panel_control_model->contador_registros('v_empate_1', array('dpto' => $dpto, 'distrito' => $distrito, 'colonia' => $colonia));

					$result_empate['no_en_reg01']	= $this->panel_control_model->contador_registros('v_empate_2', array('dpto' => $dpto, 'distrito' => $distrito, 'colonia' => $colonia));

					$result_empate['no_en_in_temp'] = $this->panel_control_model->contador_registros('v_empate_3', array('dpto' => $dpto, 'distrito' => $distrito, 'colonia' => $colonia));

					$this->data['result_empate'] = $result_empate;
				}
	        }

			
			$this->data['message'] = (validation_errors() ? validation_errors() : ($this->ion_auth->errors() ? $this->ion_auth->errors() : $this->session->flashdata('message')));
			
			//********* COMBOBOX's **********
			$dptodistritocolonia = $this->panel_control_model->view_all('dpto_cod, dpto_desc, dist_cod, dist_desc, col_cod, col_desc','colonias', NULL,NULL, 'col_desc')->result_array();

			foreach ($dptodistritocolonia as $ddc) {

				$keyconcat = $ddc['dpto_cod'].$ddc['dist_cod'].$ddc['col_cod'];

				$dptodistritocolonias[$keyconcat] = 'Dpto: ('.$ddc['dpto_cod'].') ' .$ddc['dpto_desc']. ' - Distrito: ('.$ddc['dist_cod'].') ' .$ddc['dist_desc']. ' - Colonia: ('.$ddc['col_cod'].') ' .$ddc['col_desc'];
			}

			if ($dptodistritocolonia) {
				$this->data['dptodistritocolonia'] = $dptodistritocolonias;
			}else{
				$this->data['dptodistritocolonia'] = '';
			}

			if (array_key_exists('dptodistritocoloniaemp', $_SESSION)) {
				$this->data['dptodistritocolonia_sel'] = $_SESSION['dptodistritocoloniaemp'];
			}else{
				$this->data['dptodistritocolonia_sel'] = '';
			}
			
			//********* FIN COMBOBOX's **********

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/empate/empate_general', $this->data);
		}
	}

	public function empate_empatados()
	{
		$this->page_title->push(lang('menu_empate'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_empate'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			// ----- Paginacion Generica 
			$mi_paginacion = $this->ion_auth->paginacion_generica(
				12, 						// resultados por por_pagina, 
				5, 							// segmento uri a leer, 
				5, 							// cantidad_enlaces,
				base_url().'monitoreo/panel_control/panel_control/empate_empatados/',  // url completa de la pagina paginada
				'v_empate_1',					// scheme y nombre de la tabla, para la consulta
				$_SESSION['arraywhereempate']
				);

			$this->data['pagination'] 		= $mi_paginacion['pagination'];

			$this->data['v_empate_1']	  	= $this->ion_auth_model->segmentador_paginas(
 				$mi_paginacion['per_page'], 	// resultados por pagina
 				5,								// segmento uri a leer
 				'v_empate_1',			// el nombre de la tabla a consultar $nombre_tabla
 				$_SESSION['arraywhereempate']
 				)->result();

			/*echo '<pre>';
			print_r($this->data['v_empate_1']);
			echo '</pre>';
			show_error(1);*/
			// ----- Fin paginacion

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/empate/v_empate_1', $this->data);
		}
	}

	public function empate_sin_parcelas()
	{
		$this->page_title->push(lang('menu_empate'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_empate'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			// ----- Paginacion Generica 
			$mi_paginacion = $this->ion_auth->paginacion_generica(
				12, 						// resultados por por_pagina, 
				5, 							// segmento uri a leer, 
				5, 							// cantidad_enlaces,
				base_url().'monitoreo/panel_control/panel_control/empate_sin_parcelas/',  // url completa de la pagina paginada
				'v_empate_2',				// scheme y nombre de la tabla, para la consulta
				$_SESSION['arraywhereempate']
				);

			$this->data['pagination'] 		= $mi_paginacion['pagination'];

			$this->data['v_empate_2']	  	= $this->ion_auth_model->segmentador_paginas(
 				$mi_paginacion['per_page'], // resultados por pagina
 				5,							// segmento uri a leer
 				'v_empate_2',				// el nombre de la tabla a consultar $nombre_tabla
 				$_SESSION['arraywhereempate']
 				)->result();
			// ----- Fin paginacion

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/empate/v_empate_2', $this->data);
		}
	}

	public function empate_sin_cuestionarios()
	{
		$this->page_title->push(lang('menu_empate'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_empate'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			// ----- Paginacion Generica 
			$mi_paginacion = $this->ion_auth->paginacion_generica(
				12, 						// resultados por por_pagina, 
				5, 							// segmento uri a leer, 
				5, 							// cantidad_enlaces,
				base_url().'monitoreo/panel_control/panel_control/empate_sin_parcelas/',  // url completa de la pagina paginada
				'v_empate_3',					// scheme y nombre de la tabla, para la consulta
				$_SESSION['arraywhereempate']
				);

			$this->data['pagination'] 		= $mi_paginacion['pagination'];

			$this->data['v_empate_3']	  	= $this->ion_auth_model->segmentador_paginas(
 				$mi_paginacion['per_page'], 	// resultados por pagina
 				5,								// segmento uri a leer
 				'v_empate_3',			// el nombre de la tabla a consultar $nombre_tabla
 				$_SESSION['arraywhereempate']
 				)->result();
			// ----- Fin paginacion

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/empate/v_empate_3', $this->data);
		}
	}

	/**********************************			INFORMES FINALES		********************************/
	public function informe_principal()
	{
		$this->page_title->push(lang('menu_informes'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_informes'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			//elimina el valor mapear del array de busqueda
			unset($_SESSION['arraywhereinforme_busq']['mapear']);
			if ($_POST) {

				if ($_POST['dptodistritocolonia']) 
				{
					$_SESSION['dptodistritocoloniainf'] 	 = $_POST['dptodistritocolonia'];

					$arraywhereinforme_busq['dpto'] 		 = substr($_POST['dptodistritocolonia'], 0,2);
					$arraywhereinforme_busq['distrito'] 	 = substr($_POST['dptodistritocolonia'], 2,2);
					$arraywhereinforme_busq['colonia']		 = substr($_POST['dptodistritocolonia'], 4);

					$_SESSION['arraywhereinforme_busq']		 = $arraywhereinforme_busq;
				}else{
					$_SESSION['arraywhereinforme_busq']		 = NULL;
				}
			}

			if (array_key_exists('arraywhereinforme_busq', $_SESSION)) {
				if ($_SESSION['arraywhereinforme_busq'] != NULL) {
					$dpto 		= $_SESSION['arraywhereinforme_busq']['dpto'];
					$distrito 	= $_SESSION['arraywhereinforme_busq']['distrito'];
					$colonia 	= $_SESSION['arraywhereinforme_busq']['colonia'];

					$result_empate['empatados']     = $this->panel_control_model->contador_registros('v_empate_1', array('dpto' => $dpto, 'distrito' => $distrito, 'colonia' => $colonia));

					$result_empate['no_en_reg01']	= $this->panel_control_model->contador_registros('v_empate_2', array('dpto' => $dpto, 'distrito' => $distrito, 'colonia' => $colonia));

					$result_empate['no_en_in_temp'] = $this->panel_control_model->contador_registros('v_empate_3', array('dpto' => $dpto, 'distrito' => $distrito, 'colonia' => $colonia));

					$this->data['result_empate'] = $result_empate;
				}
	        }

			$this->data['message'] = (validation_errors() ? validation_errors() : ($this->ion_auth->errors() ? $this->ion_auth->errors() : $this->session->flashdata('message')));
			
			//********* COMBOBOX's **********
			$dptodistritocolonia = $this->panel_control_model->view_all('dpto_cod, dpto_desc, dist_cod, dist_desc, col_cod, col_desc','colonias', NULL,NULL, 'col_desc')->result_array();

			foreach ($dptodistritocolonia as $ddc) {

				$keyconcat = $ddc['dpto_cod'].$ddc['dist_cod'].$ddc['col_cod'];

				$dptodistritocolonias[$keyconcat] = 'Dpto: ('.$ddc['dpto_cod'].') ' .$ddc['dpto_desc']. ' - Distrito: ('.$ddc['dist_cod'].') ' .$ddc['dist_desc']. ' - Colonia: ('.$ddc['col_cod'].') ' .$ddc['col_desc'];
			}

			if ($dptodistritocolonia) {
				$this->data['dptodistritocolonia'] = $dptodistritocolonias;
			}else{
				$this->data['dptodistritocolonia'] = '';
			}

			if (array_key_exists('dptodistritocoloniainf', $_SESSION)) {
				$this->data['dptodistritocolonia_sel'] = $_SESSION['dptodistritocoloniainf'];
			}else{
				$this->data['dptodistritocolonia_sel'] = '';
			}
			//********* FIN COMBOBOX's **********

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/informe/informe_general', $this->data);
		}
	}

	public function informe_finiquitados()
	{
		$this->page_title->push(lang('menu_informes'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_informes'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			if ($_POST) {

				/*if ($_POST['dpto']) 
				{
					$arraywhere['dpto'] 			= $_POST['dpto'];
					$arraywherebusq['dpto'] 			= '14';
				}
				if ($_POST['dpto_desc']) 
				{
					$arraywhere['dpto_desc'] 		= $_POST['dpto_desc'];
					$arraywherebusq[' lower(dpto_desc) like'] 			= '%'.strtolower($_POST['dpto_desc']).'%';
				}
				if ($_POST['distrito']) 
				{
					$arraywhere['distrito'] 		= $_POST['distrito'];
					$arraywherebusq['distrito'] 		= $_POST['distrito'];
				}
				if ($_POST['dist_desc']) 
				{
					$arraywhere['dist_desc'] 		= $_POST['dist_desc'];
					$arraywherebusq[' lower(dist_desc) like'] 			= '%'.strtolower($_POST['dist_desc']).'%';
				}
				if ($_POST['colonia']) 
				{
					$arraywhere['colonia'] 			= $_POST['colonia'];
					$arraywherebusq['colonia'] 			= intval($_POST['colonia']);
				}
				if ($_POST['col_desc']) 
				{
					$arraywhere['col_desc'] 		= $_POST['col_desc'];
					$arraywherebusq[' lower(col_desc) like'] 			= '%'.strtolower($_POST['col_desc']).'%';
				}
				if ($_POST['mz_agr']) 
				{
					$arraywhere['mz_agr'] 			= $_POST['mz_agr'];
					$arraywherebusq[' lower(mz_agr) like'] 			= '%'.strtolower($_POST['mz_agr']).'%';
				}
				if ($_POST['lote_agr']) 
				{
					$arraywhere['lote_agr'] 		= $_POST['lote_agr'];
					$arraywherebusq[' lower(lote_agr) like'] 			= '%'.strtolower($_POST['lote_agr']).'%';
				}

				$_SESSION['arraywhereinforme'] 		= $arraywhere;
				$_SESSION['arraywhereinforme_busq']	= $arraywherebusq;

				redirect('man_espacial/in_temp/in_temp/index');*/				
			}

			$_SESSION['arraywhereinforme_busq']['mapear'] = '1';
			// ----- Paginacion Generica 
			$mi_paginacion = $this->ion_auth->paginacion_generica(
				12, 						// resultados por por_pagina, 
				5, 							// segmento uri a leer, 
				5, 							// cantidad_enlaces,
				base_url().'monitoreo/panel_control/panel_control/informe_finiquitados/',  // url completa de la pagina paginada
				'v_empate_1',				// scheme y nombre de la tabla, para la consulta
				$_SESSION['arraywhereinforme_busq']
				);

			$this->data['pagination'] 		= $mi_paginacion['pagination'];

			$this->data['v_empate_1']	  	= $this->ion_auth_model->segmentador_paginas(
 				$mi_paginacion['per_page'], // resultados por pagina
 				5,							// segmento uri a leer
 				'v_empate_1',				// el nombre de la tabla a consultar $nombre_tabla
 				$_SESSION['arraywhereinforme_busq']
 				)->result();
			// ----- Fin paginacion

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/informe/informe_finiquitados', $this->data);
		}
	}

	public function informe_formulados()
	{
		$this->page_title->push(lang('menu_informes'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_informes'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			$_SESSION['arraywhereinforme_busq']['mapear'] = '2';
			// ----- Paginacion Generica 
			$mi_paginacion = $this->ion_auth->paginacion_generica(
				12, 						// resultados por por_pagina, 
				5, 							// segmento uri a leer, 
				5, 							// cantidad_enlaces,
				base_url().'monitoreo/panel_control/panel_control/informe_formulados/',  // url completa de la pagina paginada
				'v_empate_1',					// scheme y nombre de la tabla, para la consulta
				$_SESSION['arraywhereinforme_busq']
				);

			$this->data['pagination'] 		= $mi_paginacion['pagination'];

			$this->data['v_empate_1']	  	= $this->ion_auth_model->segmentador_paginas(
 				$mi_paginacion['per_page'], // resultados por pagina
 				5,							// segmento uri a leer
 				'v_empate_1',				// el nombre de la tabla a consultar $nombre_tabla
 				$_SESSION['arraywhereinforme_busq']
 				)->result();
			// ----- Fin paginacion

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/informe/informe_formulados', $this->data);
		}
	}

	public function informe_ocupacion_efectiva()
	{
		$this->page_title->push(lang('menu_informes'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_informes'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			$_SESSION['arraywhereinforme_busq']['mapear'] = '3';
			// ----- Paginacion Generica 
			$mi_paginacion = $this->ion_auth->paginacion_generica(
				12, 						// resultados por por_pagina, 
				5, 							// segmento uri a leer, 
				5, 							// cantidad_enlaces,
				base_url().'monitoreo/panel_control/panel_control/informe_ocupacion_efectiva/',  // url completa de la pagina paginada
				'v_empate_1',					// scheme y nombre de la tabla, para la consulta
				$_SESSION['arraywhereinforme_busq']
				);

			$this->data['pagination'] 		= $mi_paginacion['pagination'];

			$this->data['v_empate_1']	  	= $this->ion_auth_model->segmentador_paginas(
 				$mi_paginacion['per_page'], // resultados por pagina
 				5,							// segmento uri a leer
 				'v_empate_1',				// el nombre de la tabla a consultar $nombre_tabla
 				$_SESSION['arraywhereinforme_busq']
 				)->result();
			// ----- Fin paginacion

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/informe/informe_ocupacion_efectiva', $this->data);
		}
	}

	public function informe_ocupacion_irregular()
	{
		$this->page_title->push(lang('menu_informes'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_informes'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			$_SESSION['arraywhereinforme_busq']['mapear'] = '4';
			// ----- Paginacion Generica 
			$mi_paginacion = $this->ion_auth->paginacion_generica(
				12, 						// resultados por por_pagina, 
				5, 							// segmento uri a leer, 
				5, 							// cantidad_enlaces,
				base_url().'monitoreo/panel_control/panel_control/informe_ocupacion_irregular/',  // url completa de la pagina paginada
				'v_empate_1',					// scheme y nombre de la tabla, para la consulta
				$_SESSION['arraywhereinforme_busq']
				);

			$this->data['pagination'] 		= $mi_paginacion['pagination'];

			$this->data['v_empate_1']	  	= $this->ion_auth_model->segmentador_paginas(
 				$mi_paginacion['per_page'], // resultados por pagina
 				5,							// segmento uri a leer
 				'v_empate_1',				// el nombre de la tabla a consultar $nombre_tabla
 				$_SESSION['arraywhereinforme_busq']
 				)->result();
			// ----- Fin paginacion

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/informe/informe_ocupacion_irregular', $this->data);
		}
	}

	public function informe_adjudicados()
	{
		$this->page_title->push(lang('menu_informes'));
		$this->data['pagetitle'] = $this->page_title->show();
		/* Breadcrumbs :: Common */
		$this->breadcrumbs->unshift(1, lang('menu_informes'), 'admin/geocolonias');
		/* Breadcrumbs */
		$this->data['breadcrumb'] = $this->breadcrumbs->show();

		if ( ! $this->ion_auth->logged_in() OR ! $this->ion_auth->is_admin())
		{
			redirect('auth/login', 'refresh');
		}
		else
		{	
			$_SESSION['arraywhereinforme_busq']['mapear'] = '5';
			// ----- Paginacion Generica 
			$mi_paginacion = $this->ion_auth->paginacion_generica(
				12, 						// resultados por por_pagina, 
				5, 							// segmento uri a leer, 
				5, 							// cantidad_enlaces,
				base_url().'monitoreo/panel_control/panel_control/informe_adjudicados/',  // url completa de la pagina paginada
				'v_empate_1',					// scheme y nombre de la tabla, para la consulta
				$_SESSION['arraywhereinforme_busq']
				);

			$this->data['pagination'] 		= $mi_paginacion['pagination'];

			$this->data['v_empate_1']	  	= $this->ion_auth_model->segmentador_paginas(
 				$mi_paginacion['per_page'], // resultados por pagina
 				5,							// segmento uri a leer
 				'v_empate_1',				// el nombre de la tabla a consultar $nombre_tabla
 				$_SESSION['arraywhereinforme_busq']
 				)->result();
			// ----- Fin paginacion

			/* Load Template */
            $this->template->admin_render('monitoreo/panel_control/informe/informe_adjudicados', $this->data);
		}
	}
}