<?php 
	
	// Archivo de conexión a la base de datos
	require_once "conexion.php";
	class ModeloGestionFormulario extends ModeloConexion {

		/*=================================================================================
		CONSULTA PROCESOS
		==================================================================================*/
		protected function mdlConsultaProcesos(){

			$query = "SELECT * FROM sie_procesos WHERE proceso_sie = 1 ORDER BY descripcion ASC";

		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;	

		} 

		/*=================================================================================
		CONSULTA FORMULARIO
		==================================================================================*/
		protected function mdlConsultaFormulario($id, $tipo, $descripcion){

			if($id != '' && $tipo == 'unico'){
				$query = "SELECT * FROM sie_formularios WHERE id = '$id'";
			}else if($id == '' && $tipo == 'general'){
				$query = "SELECT * FROM sie_formularios ORDER BY nombre ASC";
			}	
		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		/*=================================================================================
		CONSULTA FORMULARIO ATENCIÓN.
		==================================================================================*/
		protected function mdlConsultaFormularioAtencion($id, $id_formulario, $tipo, $descripcion, $fecha_desde, $fecha_hasta){

			if($id != '' && $tipo == 'general'){
				
				$query = "SELECT *, fa.id AS id_form_atencion, fa.observacion AS observacon_form FROM sie_formulario_atencion fa
						LEFT JOIN sie_formulario_atencion_capacitacion fac ON fac.id_formulario_atencion=fa.id
						LEFT JOIN sie_tipo_asesoria ta ON ta.id = fa.id_tipo_asesoria
						WHERE fa.id='$id' AND fa.id_formulario='$id_formulario'";

			}else if($id == '' && $tipo == 'general'){
				
				$query = "SELECT *, fa.id AS id_form_atencion, fa.observacion AS observacon_form FROM sie_formulario_atencion fa
						LEFT JOIN sie_formulario_atencion_capacitacion fac ON fac.id_formulario_atencion=fa.id
						LEFT JOIN sie_tipo_asesoria ta ON ta.id = fa.id_tipo_asesoria
						WHERE fa.id_formulario='$id_formulario' AND fa.fecha_registro >= '$fecha_desde' AND fa.fecha_registro <= '$fecha_hasta'";

			}else if($id == '' && $tipo == 'general'){
				$query = "SELECT * FROM sie_formulario_atencion ORDER BY id ASC";
			}	
		    
		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		/*=================================================================================
		CONSULTA FORMULARIO ASISTENCIA
		==================================================================================*/
		protected function mdlConsultaFormularioAsistencia($id, $id_formulario, $tipo, $descripcion, $fecha_desde, $fecha_hasta){

			if($id != '' && $tipo == 'general'){
				
				$query = "SELECT *, fa.id AS id_form_asistencia, p.descripcion AS nombre_pais, d.descripcion AS nombre_depto, m.descripcion AS nombre_municipio, z.descripcion AS nombre_zona, fa.observacion AS observacion_asistencia, tp.descripcion AS desc_tipo_poblacion
						  FROM sie_formularios f 
						  LEFT JOIN sie_formulario_asistencia fa ON fa.id_formulario = f.id 
						  LEFT JOIN sie_tipo_atencion ta ON ta.id = fa.id_tipo_atencion 
						  LEFT JOIN  sie_tipo_poblacion tp ON tp.id = fa.id_tipo_poblacion
						  LEFT JOIN sie_paises p ON p.codigo= fa.id_pais
						  LEFT JOIN sie_departamentos d ON d.codigo = fa.id_departamento
						  LEFT JOIN sie_municipios m ON m.codigo = fa.id_municipio AND m.codigo_departamento = fa.id_departamento
						  LEFT JOIN sie_zonas z ON z.id = fa.id_vereda
						  WHERE fa.id='$id' AND fa.id_formulario='$id_formulario' AND f.estado = 1 ORDER BY fa.id";

			}else if($id == '' && $tipo == 'general'){
				
				$query = "SELECT *, fa.id AS id_form_asistencia, p.descripcion AS nombre_pais, d.descripcion AS nombre_depto, m.descripcion AS nombre_municipio, z.descripcion AS nombre_zona, fa.observacion AS observacion_asistencia, tp.descripcion AS desc_tipo_poblacion
						  FROM sie_formularios f 
						  LEFT JOIN sie_formulario_asistencia fa ON fa.id_formulario = f.id 
						  LEFT JOIN sie_tipo_atencion ta ON ta.id = fa.id_tipo_atencion 
						  LEFT JOIN  sie_tipo_poblacion tp ON tp.id = fa.id_tipo_poblacion
						  LEFT JOIN sie_paises p ON p.codigo= fa.id_pais
						  LEFT JOIN sie_departamentos d ON d.codigo = fa.id_departamento
						  LEFT JOIN sie_municipios m ON m.codigo = fa.id_municipio AND m.codigo_departamento = fa.id_departamento
						  LEFT JOIN sie_zonas z ON z.id = fa.id_vereda
						  WHERE fa.id_formulario='$id_formulario' AND f.estado = 1 AND fa.fecha_registro >= '$fecha_desde' AND fa.fecha_registro <= '$fecha_hasta' ORDER BY fa.id";

			}	

		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		/*=================================================================================
		CONSULTA INFORMACIÓN ASISTENCIA.
		==================================================================================*/
		protected function mdlConsultaFormularioAsistenciaAgricola($id, $id_formulario, $tipo, $descripcion){

			if($id != '' && $tipo == 'general'){
				
				$query = "SELECT * FROM sie_formularios f
                          LEFT JOIN sie_formulario_asistencia fa ON fa.id_formulario = f.id
                          LEFT JOIN sie_formulario_asistencia_informacion_agricola faia ON faia.id_formulario_asistencia = fa.id
                          WHERE fa.id_formulario = '$id_formulario' AND fa.id = '$id'";

			}else if($id == '' && $tipo == 'general'){
				
				$query = "SELECT * FROM sie_formularios f
                          LEFT JOIN sie_formulario_asistencia fa ON fa.id_formulario = f.id
                          LEFT JOIN sie_formulario_asistencia_informacion_agricola faia ON faia.id_formulario_asistencia = fa.id
                          WHERE fa.id_formulario = '$id_formulario'";

			}		

		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		/*=================================================================================
		CONSULTA INFORMACIÓN ASISTENCIA.
		==================================================================================*/
		protected function mdlConsultaFormularioAsistenciaPecuaria($id, $id_formulario, $tipo, $descripcion){

			if($id != '' && $tipo == 'general'){
				
				$query = "SELECT * FROM sie_formularios f 
                          LEFT JOIN sie_formulario_asistencia fa ON fa.id_formulario = f.id 
                          LEFT JOIN sie_formulario_asistencia_informacion_pecuaria faip ON faip.id_formulario_asistencia = fa.id 
                          WHERE fa.id_formulario = '$id_formulario' AND fa.id = '$id'";

			}	

		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		/*=================================================================================
		CONSULTA INFORMACIÓN RECOMENDACIONES.
		==================================================================================*/
		protected function mdlConsultaFormularioAsistenciaRecomendaciones($id, $id_formulario, $tipo, $descripcion){

			if($id != '' && $tipo == 'general'){
				
				$query = "SELECT * FROM sie_formularios f 
                          LEFT JOIN sie_formulario_asistencia fa ON fa.id_formulario = f.id 
                          LEFT JOIN sie_formulario_asistencia_recomendaciones far ON far.id_formulario_asistencia=fa.id 
                          WHERE fa.id_formulario = '$id_formulario' AND fa.id = '$id'";

			}	

		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		
		/*=================================================================================
		CONSULTA TIPOS DE ASESORÍA.
		==================================================================================*/
		protected function mdlConsultaTipoAsesoria($id, $tipo, $descripcion){

			if($id != '' && $tipo == 'unico'){
				$query = "SELECT * FROM sie_tipo_asesoria WHERE id = '$id' AND estado = 1 ORDER BY descripcion ASC";
			}else if($id == '' && $tipo == 'general'){
				$query = "SELECT * FROM sie_tipo_asesoria WHERE estado = 1 ORDER BY descripcion ASC";
			}	
		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		/*=================================================================================
		CONSULTA TIPOS DE ATENCIÓN
		==================================================================================*/
		protected function mdlConsultaTipoAtencion($id, $tipo, $descripcion){

			if($id != '' && $tipo == 'unico'){
				$query = "SELECT * FROM sie_tipo_atencion WHERE id = '$id' AND estado = 1 ORDER BY descripcion ASC";
			}else if($id == '' && $tipo == 'general'){
				$query = "SELECT * FROM sie_tipo_atencion WHERE estado = 1 ORDER BY descripcion ASC";
			}	
		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		/*=================================================================================
		CONSULTA TIPOS DE ATENCIÓN
		==================================================================================*/
		protected function mdlConsultaPaises($id, $tipo, $descripcion){

			if($id != '' && $tipo == 'unico'){
				$query = "SELECT * FROM sie_paises WHERE id = '$id' AND estado = 1 ORDER BY descripcion ASC";
			}else if($id == '' && $tipo == 'unico' && $descripcion != ''){
				$query = "SELECT * FROM sie_paises WHERE estado = 1 AND descripcion = '$descripcion'";
			}else if($id == '' && $tipo == 'general'){
				$query = "SELECT * FROM sie_paises WHERE estado = 1 ORDER BY descripcion ASC";
			}	
		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		/*=================================================================================
		CONSULTA DEPARTAMENTOS.
		==================================================================================*/
		protected function mdlConsultaDepartamentos($id_depto, $codigo_pais, $descripcion){

			if($codigo_pais != ''){
				$query = "SELECT * FROM sie_departamentos WHERE codigo_pais = '$codigo_pais' AND estado = 1 ORDER BY descripcion ASC";
			}else if($id_depto == '' && $descripcion != ''){
				$query = "SELECT * FROM sie_departamentos WHERE descripcion = '$descripcion' AND estado = 1";
			}else if($id_depto == ''){
				$query = "SELECT * FROM sie_departamentos WHERE id = '$id_depto' AND estado = 1 ORDER BY descripcion ASC";
			}	
		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		/*=================================================================================
		CONSULTA MUNICIPIOS.
		==================================================================================*/
		protected function mdlConsultaMunicipio($id_municipio, $codigo_depto, $descripcion){

			if($codigo_depto != ''){
				$query = "SELECT * FROM sie_municipios WHERE codigo_departamento = '$codigo_depto' AND estado = 1 ORDER BY descripcion ASC";
			}else if($id_municipio == '' && $descripcion != ''){
				$query = "SELECT * FROM sie_municipios WHERE descripcion = '$descripcion' AND estado = 1";
			}else if($id_municipio == ''){
				$query = "SELECT * FROM sie_municipios WHERE id = '$id_municipio' AND estado = 1 ORDER BY descripcion ASC";
			}	
		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		/*=================================================================================
		CONSULTA VEREDAS.
		==================================================================================*/
		protected function mdlConsultaVereda($id_vereda, $codigo_municipio, $descripcion){

			if($codigo_municipio != ''){
				$query = "SELECT * FROM sie_zonas WHERE codigo_municipio = '$codigo_municipio' AND estado = 1 ORDER BY descripcion ASC";
			}else if($id_vereda == '' && $descripcion != ''){
				$query = "SELECT * FROM sie_zonas WHERE descripcion = '$descripcion' AND estado = 1";
			}else if($id_vereda == ''){
				$query = "SELECT * FROM sie_zonas WHERE id = '$id_vereda' AND estado = 1 ORDER BY descripcion ASC";
			}	
		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		} 

		/*=================================================================================
		CONSULTA VEREDAS.
		==================================================================================*/
		protected function mdConsultaPoblacion($id, $tipo, $descripcion){

			if($id != '' && $tipo == 'unico'){
				$query = "SELECT * FROM sie_tipo_poblacion WHERE id = '$id' AND estado = 1 ORDER BY descripcion ASC";
			}else if($id == '' && $tipo == 'unico' && $descripcion != ''){
				$query = "SELECT * FROM sie_tipo_poblacion WHERE descripcion = '$descripcion' AND estado = 1";
			}else if($tipo == 'general'){
				$query = "SELECT * FROM sie_tipo_poblacion WHERE estado = 1 ORDER BY descripcion ASC";
			}	
		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;

		}  
		
		/*=================================================================================
		REGISTRA ATENCIÓN PRODUCTORES.
		==================================================================================*/
		protected function mdlRegistraFormularioAtencionProductores($id_formulario_atencion, $datos){

			$query = "INSERT INTO sie_formulario_atencion (id, id_formulario, id_usuario_registra, fecha_registro, id_tipo_asesoria, observacion, observacion_capacitacion, acuerdos_proxima_visita, firma_usuario_atiende, firma_usuario_atendido)VALUES(:id, :id_formulario, :id_usuario_registra, :fecha_registro, :id_tipo_asesoria, :observacion, :observacion_capacitacion, :acuerdos_proxima_visita, :firma_usuario_atiende, :firma_usuario_atendido)";
			
			$sql = ModeloConexion::conectardb()->prepare($query);

			$sql->bindParam(":id", $id_formulario_atencion);
			$sql->bindParam(":id_formulario", $datos['id_formulario']);
			$sql->bindParam(":id_usuario_registra", $datos['id_usuario']);
			$sql->bindParam(":fecha_registro", $datos['fecha']);
			$sql->bindParam(":id_tipo_asesoria", $datos['id_tipoasesoria']);
			$sql->bindParam(":observacion", $datos['desc_asesoria']);
			$sql->bindParam(":observacion_capacitacion", $datos['desc_capacitacion']);
			$sql->bindParam(":acuerdos_proxima_visita", $datos['acuerdos_proxima_visita']);
			$sql->bindParam(":firma_usuario_atiende", $datos['firma_usuario_atiende']);
			$sql->bindParam(":firma_usuario_atendido", $datos['firma_usuario_atendido']);
		    $sql->execute();

		    if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

				$query_log = "INSERT INTO sie_formulario_atencion_capacitacion (id, id_formulario_atencion, tipo_capacitacion, tema, genero, numero_personas, id_usuario_crea, fecha_creacion)VALUES(".$id_formulario_atencion.", ".$datos['id_formulario'].", ".$datos['id_tipoasesoria'].", |".$datos['temacapacitacion']."|, |".$datos['generocapacitacion']."|, ".$datos['numeropersonas'].")";

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_atencion_productores.php', $query_log, $datos['id_usuario'], $datos['fecha']);
			
			}

		    return $sql;

		}

		/*=================================================================================
		REGISTRA CAPACITACIÓN PRODUCTORES.
		==================================================================================*/
		protected function mdlRegistraAtencionProductores($id_formulario_atencion, $datos){

			$query = "INSERT INTO sie_formulario_atencion_capacitacion (id_formulario_atencion, tipo_capacitacion, tema, genero, numero_personas)VALUES(:id_formulario_atencion, :tipo_capacitacion, :tema, :genero, :numero_personas)";
			
			$sql = ModeloConexion::conectardb()->prepare($query);

			$sql->bindParam(":id_formulario_atencion", $id_formulario_atencion);
			$sql->bindParam(":tipo_capacitacion", $datos['tipocapacitacion']);
			$sql->bindParam(":tema", $datos['temacapacitacion']);
			$sql->bindParam(":genero", $datos['generocapacitacion']);
			$sql->bindParam(":numero_personas", $datos['numeropersonas']);
		    $sql->execute();

		    if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

				$query_log = "INSERT INTO sie_formulario_atencion_capacitacion (id_formulario_atencion, tipo_capacitacion, tema, genero, numero_personas, id_usuario_crea, fecha_creacion)VALUES(".$datos['id_formulario'].", ".$datos['id_tipoasesoria'].", '".$datos['temacapacitacion']."', '".$datos['generocapacitacion']."', ".$datos['numeropersonas'].")";

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_atencion_productores.php', $query_log, $datos['id_usuario'], $datos['fecha']);
			
			}

		    return $sql;

		}

		/*=================================================================================
		ELIMINA ATENCIÓN PRODUCTORES.
		==================================================================================*/
		protected function mdlEliminaFormularioAtencionProductores($id_formulario_atencion, $id_usuario, $fecha){

			$query = "DELETE FROM sie_formulario_atencion WHERE id = '$id_formulario_atencion'";
			
			$sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

				$query_log = "DELETE FROM sie_formulario_atencion WHERE id = ".$id_formulario_atencion;

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_atencion_productores.php', $query_log, $id_usuario, $fecha);
			
			}

		    return $sql;

		}

		/*=================================================================================
		REGISTRA FORMULARIO ASISTENCIA PRODUCTORES.
		==================================================================================*/
		protected function mdlRegistraFormularioAsistenciaProductores($id_formulario_asistencia, $datos){

			$query = "INSERT INTO sie_formulario_asistencia (id, id_formulario, id_usuario_registra, fecha_registro, id_tipo_atencion, id_pais, id_departamento, id_municipio, id_vereda, nombre_usuario_atiende, cargo_usuario_atiende, nombre_persona_atendida, nombre_organizacion, id_tipo_poblacion, numero_identificacion, telefono, correo, lineas_productivas, numero_atenciones, observacion)VALUES(:id, :id_formulario, :id_usuario_registra, :fecha_registro, :id_tipo_atencion, :id_pais, :id_departamento, :id_municipio, :id_vereda, :nombre_usuario_atiende, :cargo_usuario_atiende, :nombre_persona_atendida, :nombre_organizacion, :id_tipo_poblacion, :numero_identificacion, :telefono, :correo, :lineas_productivas, :numero_atenciones, :observacion)";
			
			$sql = ModeloConexion::conectardb()->prepare($query);

			$sql->bindParam(":id", $id_formulario_asistencia);
			$sql->bindParam(":id_formulario", $datos['id_formulario']);
			$sql->bindParam(":id_usuario_registra", $datos['id_usuario']);
			$sql->bindParam(":fecha_registro", $datos['fecha']);
			$sql->bindParam(":id_tipo_atencion", $datos['tipoatencion']);
			$sql->bindParam(":id_pais", $datos['codigo_pais']);
			$sql->bindParam(":id_departamento", $datos['codigo_departamento']);
			$sql->bindParam(":id_municipio", $datos['codigo_municipio']);
			$sql->bindParam(":id_vereda", $datos['id_zona']);
			$sql->bindParam(":nombre_usuario_atiende", $datos['nombre_usuario_atiende']);
			$sql->bindParam(":cargo_usuario_atiende", $datos['cargo_usuario_atiende']);
			$sql->bindParam(":nombre_persona_atendida", $datos['nombre_persona_atendida']);
			$sql->bindParam(":nombre_organizacion", $datos['nombre_organizacion']);
			$sql->bindParam(":id_tipo_poblacion", $datos['id_tipo_poblacion']);
			$sql->bindParam(":numero_identificacion", $datos['numero_identificacion']);
			$sql->bindParam(":telefono", $datos['telefono']);
			$sql->bindParam(":correo", $datos['correo']);
			$sql->bindParam(":lineas_productivas", $datos['linea_productiva']);
			$sql->bindParam(":numero_atenciones", $datos['numero_atenciones']);
			$sql->bindParam(":observacion", $datos['observacion_asistencia']);
		    $sql->execute();

		    if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

				$query_log = "INSERT INTO sie_formulario_asistencia (id, id_formulario, id_usuario_registra, id_tipo_atencion, id_pais, id_departamento, id_municipio, id_vereda, nombre_usuario_atiende, cargo_usuario_atiende, nombre_persona_atendida, nombre_organizacion, id_tipo_poblacion, numero_identificacion, telefono, correo, lineas_productivas, numero_atenciones, observacion)VALUES(|".$id_formulario_asistencia."|, |".$datos['id_formulario']."|, ".$datos['id_usuario'].", ".$datos['fecha']." |".$datos['fecha_asistencia']."|, ".$datos['tipoatencion'].", ".$datos['codigo_pais'].", ".$datos['codigo_departamento'].", |".$datos['codigo_municipio']."|, |".$datos['id_zona']."|, |".$datos['nombre_usuario_atiende']."|, |".$datos['cargo_usuario_atiende']."|, |".$datos['nombre_persona_atendida']."|, |".$datos['nombre_organizacion']."|, ".$datos['id_tipo_poblacion'].", |".$datos['numero_identificacion']."|, |".$datos['telefono']."|, |".$datos['correo']."|, |".$datos['linea_productiva']."|, ".$datos['numero_atenciones'].", |".$datos['observacion_asistencia']."|)";

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_asistencia_productores.php', $query_log, $datos['id_usuario'], $datos['fecha']);
			
			}

		    return $sql;

		}

		/*=================================================================================
		REGISTRA ATENCIÓN PRODUCTORES.
		==================================================================================*/
		protected function mdlRegistraInformacionAgricolaProductores($id_formulario_asistencia, $datos){

			$query = "INSERT INTO sie_formulario_asistencia_informacion_agricola (id_formulario_asistencia, cultivo, edad_cultivo, total_sembrado, total_en_produccion, produccion, rendimiento, costos_produccion, canal_comercializacion)VALUES(:id_formulario_asistencia, :cultivo, :edad_cultivo, :total_sembrado, :total_en_produccion, :produccion, :rendimiento, :costos_produccion, :canal_comercializacion)";
			
			$sql = ModeloConexion::conectardb()->prepare($query);

			$sql->bindParam(":id_formulario_asistencia", $id_formulario_asistencia);
			$sql->bindParam(":cultivo", $datos['cultivo']);
			$sql->bindParam(":edad_cultivo", $datos['edad_cultivo']);
			$sql->bindParam(":total_sembrado", $datos['total_sembrado']);
			$sql->bindParam(":total_en_produccion", $datos['total_produccion']);
			$sql->bindParam(":produccion", $datos['produccion_ton']);
			$sql->bindParam(":rendimiento", $datos['rendimiento_ton']);
			$sql->bindParam(":costos_produccion", $datos['costos_produccion']);
			$sql->bindParam(":canal_comercializacion", $datos['canal_comercializacion']);
		    $sql->execute();

		    if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

				$query_log = "INSERT INTO sie_formulario_asistencia_informacion_agricola (id_formulario_asistencia, cultivo, edad_cultivo, total_sembrado, total_en_produccion, produccion, rendimiento, costos_produccion, canal_comercializacion)VALUES(".$id_formulario_asistencia.", |".$datos['cultivo']."|, ".$datos['edad_cultivo'].", ".$datos['total_sembrado'].", ".$datos['total_produccion'].", ".$datos['produccion_ton'].", ".$datos['rendimiento_ton'].", ".$datos['costos_produccion'].", |".$datos['canal_comercializacion']."|)";

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_asistencia_productores.php', $query_log, $datos['id_usuario'], $datos['fecha']);
			
			}

		    return $sql;

		}

		/*=================================================================================
		ELIMINA ASISTENCIA PRODUCTORES.
		==================================================================================*/
		protected function mdlEliminaFormularioAsistenciaProductores($id_formulario_asistencia, $id_usuario, $fecha){

			$query = "DELETE FROM sie_formulario_asistencia WHERE id = '$id_formulario_asistencia'";
			
			$sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

				$query_log = "DELETE FROM sie_formulario_asistencia WHERE id = ".$id_formulario_asistencia;

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_asistencia_productores.php', $query_log, $id_usuario, $fecha);
			
			}

		    return $sql;

		}

		/*=================================================================================
		REGISTRA INFORMACIÓN PECUARIA PRODUCTORES.
		==================================================================================*/
		protected function mdlRegistraInformacionPecuariaProductores($id_formulario_asistencia, $datos){

			$query = "INSERT INTO sie_formulario_asistencia_informacion_pecuaria (id_formulario_asistencia, especie, raza, edad, produccion_predio, costos_produccion, canal_comercializacion)VALUES(:id_formulario_asistencia, :especie, :raza, :edad, :produccion_predio, :costos_produccion, :canal_comercializacion)";
			
			$sql = ModeloConexion::conectardb()->prepare($query);

			$sql->bindParam(":id_formulario_asistencia", $id_formulario_asistencia);
			$sql->bindParam(":especie", $datos['especie']);
			$sql->bindParam(":raza", $datos['raza']);
			$sql->bindParam(":edad", $datos['edad']);
			$sql->bindParam(":produccion_predio", $datos['produccion_predio']);
			$sql->bindParam(":costos_produccion", $datos['costos_produccion_pecuaria']);
			$sql->bindParam(":canal_comercializacion", $datos['canal_comercializacion_pecuaria']);
		    $sql->execute();

		    if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

				$query_log = "INSERT INTO sie_formulario_asistencia_informacion_pecuaria (id_formulario_asistencia, especie, raza, edad, produccion_predio, costos_produccion, canal_comercializacion)VALUES(".$id_formulario_asistencia.", |".$datos['especie']."|, |".$datos['raza']."|, ".$datos['edad'].", |".$datos['produccion_predio']."|, ".$datos['costos_produccion'].", '".$datos['canal_comercializacion']."')";

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_asistencia_productores.php', $query_log, $datos['id_usuario'], $datos['fecha']);
			
			}

		    return $sql;

		}
		
		/*=================================================================================
		ELIMINA INFORMACIÓN AGRÍCOLA.
		==================================================================================*/
		protected function mdlEliminaInformacionAgricola($id_formulario_asistencia, $id_usuario, $fecha){

			$query = "DELETE FROM sie_formulario_asistencia_informacion_agricola WHERE id_formulario_asistencia = '$id_formulario_asistencia'";
			
			$sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

				$query_log = "DELETE FROM sie_formulario_asistencia_informacion_agricola WHERE id_formulario_asistencia = ".$id_formulario_asistencia;

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_asistencia_productores.php', $query_log, $id_usuario, $fecha);
			
			}

		    return $sql;

		}


		/*=================================================================================
		REGISTRA ASISTENCIA TÉCNICA.
		==================================================================================*/
		protected function mdlRegistraAsistenciaTecnica($id_formulario_asistencia, $datos){

			$query = "INSERT INTO sie_formulario_asistencia_recomendaciones (id_formulario_asistencia, nombre_producto, dosis_recomendada, metodo_aplicacion)VALUES(:id_formulario_asistencia, :nombre_producto, :dosis_recomendada, :metodo_aplicacion)";
			
			$sql = ModeloConexion::conectardb()->prepare($query);

			$sql->bindParam(":id_formulario_asistencia", $id_formulario_asistencia);
			$sql->bindParam(":nombre_producto", $datos['nombre_producto']);
			$sql->bindParam(":dosis_recomendada", $datos['dosisrecomendada']);
			$sql->bindParam(":metodo_aplicacion", $datos['metodoaplicacion']);
		    $sql->execute();

		    if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

				$query_log = "INSERT INTO sie_formulario_asistencia_recomendaciones (id_formulario_asistencia, nombre_producto, dosis_recomendada, metodo_aplicacion)VALUES(".$id_formulario_asistencia.", |".$datos['nombre_producto']."|, |".$datos['dosisrecomendada']."|, |".$datos['metodoaplicacion']."|)";

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_asistencia_productores.php', $query_log, $datos['id_usuario'], $datos['fecha']);
			
			}

		    return $sql;

		}

		/*=================================================================================
		ELIMINA INFORMACIÓN PECUARIA.
		==================================================================================*/
		protected function mdlEliminaInformacionPecuaria($id_formulario_asistencia, $id_usuario, $fecha){

			$query = "DELETE FROM sie_formulario_asistencia_informacion_pecuaria WHERE id_formulario_asistencia = '$id_formulario_asistencia'";
			
			$sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

				$query_log = "DELETE FROM sie_formulario_asistencia_informacion_pecuaria WHERE id_formulario_asistencia = ".$id_formulario_asistencia;

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_asistencia_productores.php', $query_log, $id_usuario, $fecha);
			
			}

		    return $sql;

		}

		/*=================================================================================
		ELIMINA ASISTENCIA TÉCNICA.
		==================================================================================*/
		protected function mdlEliminaAsistenciaTecnica($id_formulario_asistencia, $id_usuario, $fecha){

			$query = "DELETE FROM sie_formulario_asistencia_recomendaciones WHERE id_formulario_asistencia = '$id_formulario_asistencia'";
			
			$sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

				$query_log = "DELETE FROM sie_formulario_asistencia_recomendaciones WHERE id_formulario_asistencia = ".$id_formulario_asistencia;

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_asistencia_productores.php', $query_log, $id_usuario, $fecha);
			
			}

		    return $sql;

		}

		/*=================================================================================
		EDITA FORMULARIO.
		==================================================================================*/
		protected function mdlEditaFormulario($datos){

			if($datos['estado'] == 0){

				$query = "UPDATE sie_formularios SET id_proceso = :id_proceso, nombre=:nombre, descripcion = :descripcion, codigo = :codigo, version=:version, estado=:estado, id_usuario_inactiva=:id_usuario_inactiva, fecha_inactivacion =:fecha_inactivacion WHERE id=:id_frm";
			
				$sql = ModeloConexion::conectardb()->prepare($query);

				$sql->bindParam(":id_frm", $datos['id_formulario']);
				$sql->bindParam(":nombre", $datos['nombre']);
				$sql->bindParam(":descripcion", $datos['descripcion']);
				$sql->bindParam(":estado", $datos['estado']);
				$sql->bindParam(":codigo", $datos['codigo']);
				$sql->bindParam(":version", $datos['version']);
				$sql->bindParam(":id_usuario_inactiva", $datos['id_usuario']);
				$sql->bindParam(":fecha_inactivacion", $datos['fecha']);
				$sql->bindParam(":id_proceso", $datos['id_proceso_form']);

				$sql->execute();

				if($sql->rowcount() >=1 ){
					// Si el formulario es actualizado, procedemos a actualizar la opción de proceso relacionada.

					$query_opcion_proceso = "UPDATE sie_opciones_procesos SET id_proceso = :id_proceso, descripcion = :nombre, estado = :estado, fecha_inactivacion = :fecha, id_usuario_inactiva = :id_usuario  WHERE id = :id_opcion_proceso";		
					$sql_opcion_proceso = ModeloConexion::conectardb()->prepare($query_opcion_proceso);

					$sql_opcion_proceso->bindParam(":nombre", $datos['nombre']);
					$sql_opcion_proceso->bindParam(":estado", $datos['estado']);
					$sql_opcion_proceso->bindParam(":id_usuario", $datos['id_usuario']);
					$sql_opcion_proceso->bindParam(":fecha", $datos['fecha']);
					$sql_opcion_proceso->bindParam(":id_opcion_proceso", $datos['id_opcion_proceso']);
					$sql_opcion_proceso->bindParam(":id_proceso", $datos['id_proceso_form']);
					$sql_opcion_proceso->execute();

				}

			}else if($datos['estado'] == 1){

				$query = "UPDATE sie_formularios SET id_proceso = :id_proceso, nombre=:nombre, descripcion = :descripcion, codigo = :codigo, version=:version, estado=:estado WHERE id=:id_frm";
			
				$sql = ModeloConexion::conectardb()->prepare($query);

				$sql->bindParam(":id_frm", $datos['id_formulario']);
				$sql->bindParam(":nombre", $datos['nombre']);
				$sql->bindParam(":descripcion", $datos['descripcion']);
				$sql->bindParam(":estado", $datos['estado']);
				$sql->bindParam(":codigo", $datos['codigo']);
				$sql->bindParam(":version", $datos['version']);
				$sql->bindParam(":id_proceso", $datos['id_proceso_form']);

				$sql->execute();

				if($sql->rowcount() >=1 ){
					// Si el formulario es actualizado, procedemos a actualizar la opción de proceso relacionada.

					$query_opcion_proceso = "UPDATE sie_opciones_procesos SET id_proceso = :id_proceso, descripcion = :nombre, estado = :estado WHERE id = :id_opcion_proceso";		
					$sql_opcion_proceso = ModeloConexion::conectardb()->prepare($query_opcion_proceso);

					$sql_opcion_proceso->bindParam(":nombre", $datos['nombre']);
					$sql_opcion_proceso->bindParam(":estado", $datos['estado']);
					$sql_opcion_proceso->bindParam(":id_opcion_proceso", $datos['id_opcion_proceso']);
					$sql_opcion_proceso->bindParam(":id_proceso", $datos['id_proceso_form']);

					$sql_opcion_proceso->execute();
				
				}


			}

		 	 if($sql->rowcount() ==1 ){
				// Si el riesgo se registra correctamente dejamos registro en la tabla log transacciones del query utilizado.

		 	 	if($datos['estado']==0){
					$query_log = "UPDATE sie_formularios SET id_proceso = ".$datos['id_proceso_form'].", nombre=|".$datos['nombre']."|, descripcion = |".$datos['descripcion']."|, codigo = |".$datos['codigo']."|, version=|".$datos['version']."|, estado=".$datos['estado'].", id_usuario_inactiva=".$datos['id_usuario'].", fecha_inactivacion = |".$datos['fecha']."| WHERE id=".$datos['id_formulario']."";

				}else if($datos['estado']==1){
					$query_log = "UPDATE sie_formularios SET id_proceso = ".$datos['id_proceso_form'].", nombre=|".$datos['nombre']."|, descripcion = |".$datos['descripcion']."|, codigo = |".$datos['codigo']."|, version=|".$datos['version']."|, estado=".$datos['estado']." WHERE id=".$datos['id_formulario']."";

				}

				// Función encargada de registrar auditoria en base de datos.
				$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_edicion.php', $query_log, $datos['id_usuario'], $datos['fecha']);

				if($sql_opcion_proceso->rowcount()>=1){
					// Validamos que la opción de proceso se registre correctamente y procedemos a registrar en la tabla log_transacciones el query utilizado para.

					if($datos['estado']==0){
						$query_log = "UPDATE sie_opciones_procesos SET id_proceso = ".$datos['id_proceso_form'].", descripcion = |".$datos['nombre']."|, estado = ".$datos['estado'].", fecha_inactivacion = |".$datos['fecha']."|, id_usuario_inactiva = ".$datos['id_usuario']." WHERE id = ".$datos['id_opcion_proceso']."";

					}else if($datos['estado']==1){
						$query_log = "UPDATE sie_opciones_procesos SET id_proceso = ".$datos['id_proceso_form'].", descripcion = |".$datos['nombre']."|, estado = ".$datos['estado'].", fecha_inactivacion = |".$datos['fecha']."|, id_usuario_inactiva = ".$datos['id_usuario']." WHERE id = ".$datos['id_opcion_proceso']."";

					}	

					// Función encargada de registrar auditoria en base de datos.
					$registraauditoria = ModeloConexion::registraAuditoria('sie/vista/modulos/formulario_edicion.php', $query_log, $datos['id_usuario'], $datos['fecha']);

				}

				

			}

		    return $sql;

		}

		/*=================================================================================
		CONSULTA DATOS DE FORMULARIO.
		==================================================================================*/
		protected function mdlConsultaDatosFormulario($id_formulario, $fecha_desde, $fecha_hasta){

			if($id_formulario == 2){
				$query = "SELECT *, f.id AS id_formulario, fa.id AS id_formulario_asistencia FROM sie_formularios f
						  LEFT JOIN sie_formulario_asistencia fa ON fa.id_formulario = f.id
						  WHERE f.id='$id_formulario' AND f.estado = 1 AND fa.fecha_registro >= '$fecha_desde' AND fa.fecha_registro <= '$fecha_hasta'";
			}else if($id_formulario == 1){
				$query = "SELECT *, f.id AS id_formulario, fa.id AS id_formulario_atencion FROM sie_formularios f
						  LEFT JOIN sie_formulario_atencion fa ON fa.id_formulario=f.id
						  LEFT JOIN sie_formulario_atencion_capacitacion fac ON fac.id_formulario_atencion = fa.id
						  WHERE f.id='$id_formulario' AND estado = 1 AND fa.fecha_registro >= '$fecha_desde' AND fa.fecha_registro <= '$fecha_hasta' GROUP BY fa.id";
			}

			$sql = ModeloConexion::conectardb()->prepare($query);
			
			$sql->execute();

		    return $sql;

		}

		/*=================================================================================
		CONSULTA USUARIO
		==================================================================================*/
		protected function mdlConsultaUsuario($id, $tipo, $nombre){

			if($id != '' && $tipo=='unico'){
				$query = "SELECT * FROM sie_usuarios WHERE id = '$id' AND estado = 1";
			}else if($id == '' && $tipo=='general' && $nombre != ''){
				$query = "SELECT * FROM sie_usuarios WHERE nombres LIKE '%$nombre%' AND estado = 1";
			}else if($id == '' && $tipo=='general' && $nombre != ''){
				$query = "SELECT * FROM sie_usuarios WHERE estado = 1";
			}
		    $sql = ModeloConexion::conectardb()->prepare($query);

		    $sql->execute();

		    return $sql;	

		}
		

	}	

 ?>