<?php
###########MODIFICACIONES####################
#13/03/2017 | ERICA G. | AÑADIR INFORMES PDF EXCEL
# Desarrollado por Ferney Pérez Cano // 18/02/2017. Se modificó case 2 para añadir el rubro fuente a la tabla gf_rubro_fuente
# en caso de que no exista. Se añadió el caso 5 donde se verifica si el rubro la fuente seleccioandos ya existen en la tabla gf_rubro_fuente.

require_once '../Conexion/ConexionPDO.php';
require_once '../json/gs_auditoria_sistema.php';
require_once '../jsonPptal/gs_auditoria_acciones_presupuesto.php';
$con = new ConexionPDO();
session_start();

$estruc = $_REQUEST['estruc'];

switch ($estruc) {
	case 1: // Insertar resgistros de traslado en la tabla gf_comprobante_pptal.
		$res = 0;
		$numero  = $_REQUEST['numero'];
		$fecha  = $_REQUEST['fecha'];
		$fechaVen  = $_REQUEST['fechaVen'];
		$descripcion = $_REQUEST['descripcion'];
		$tipocomprobante = $_REQUEST['tipocomprobante'];

		//Converción de fecha del formato dd/mm/aaaa al formato aaaa-mm-dd.
		$fecha = trim($fecha, '"');
		$fecha_div = explode("/", $fecha);
		$dia = $fecha_div[0];
		$mes = $fecha_div[1];
		$anio = $fecha_div[2];

		$fecha = $anio . '-' . $mes . '-' . $dia;
		$fecha = $fecha;

		//Converción de fecha del formato dd/mm/aaaa al formato aaaa-mm-dd.
		$fechaVen = trim($fechaVen, '"');
		$fecha_div = explode("/", $fechaVen);
		$dia = $fecha_div[0];
		$mes = $fecha_div[1];
		$anio = $fecha_div[2];

		$fechaVen = $anio . '-' . $mes . '-' . $dia;
		$fechaVen = $fechaVen;

		//Consulta del ID de la tabla gf_tercero .
		$row = $con->Listar("SELECT id_unico FROM gf_tercero WHERE numeroidentificacion = '9999999999'");
		$tercero = $row[0][0];
		$responsable = $row[0][0];

		$parametroAnno = $_SESSION['anno'];
		$parametroAnno = $parametroAnno;

		if ($descripcion == "" || empty($descripcion)) {
			// $insertSQL = 'INSERT INTO gf_comprobante_pptal (numero, fecha, fechavencimiento, parametrizacionanno,
			//                                                     tipocomprobante, tercero,  responsable) 
			//   VALUES('.$numero.', '.$fecha.', '.$fechaVen.', '.$parametroAnno.', '.$tipocomprobante.', '.$tercero.',  '.$responsable.')';
			$sql_cons  = "INSERT INTO gf_comprobante_pptal (numero, fecha, fechavencimiento, parametrizacionanno,
			                                                tipocomprobante, tercero,  responsable) 
            VALUES (:numero,:fecha,:fechaVen,:parametroAnno,:tipocomprobante,:tercero,:responsable)";
			$sql_dato = array(
				array(":numero", $numero),
				array(":fecha", $fecha),
				array(":fechaVen", $fechaVen),
				array(":parametroAnno", $parametroAnno),
				array(":tipocomprobante", $tipocomprobante),
				array(":tercero", $tercero),
				array(":responsable", $responsable),
			);
		} else {
			// $insertSQL = 'INSERT INTO gf_comprobante_pptal (numero, fecha, fechavencimiento, descripcion, parametrizacionanno, 
			//                                                     tipocomprobante, tercero,  responsable) 
			//   VALUES(' . $numero . ', ' . $fecha . ', ' . $fechaVen . ', ' . $descripcion . ', ' . $parametroAnno . ', ' . $tipocomprobante . ', ' . $tercero . ', ' . $responsable . ')';
			$sql_cons  = "INSERT INTO gf_comprobante_pptal (numero, fecha, fechavencimiento, descripcion, parametrizacionanno,
			  tipocomprobante, tercero,  responsable) 
			VALUES (:numero,:fecha,:fechaVen,:descripcion,:parametroAnno,:tipocomprobante,:tercero,:responsable)";
			$sql_dato = array(
				array(":numero", $numero),
				array(":fecha", $fecha),
				array(":fechaVen", $fechaVen),
				array(":descripcion", $descripcion),
				array(":parametroAnno", $parametroAnno),
				array(":tipocomprobante", $tipocomprobante),
				array(":tercero", $tercero),
				array(":responsable", $responsable),
			);
		}

		$obj_resp = $con->InAcEl($sql_cons, $sql_dato);

		if (empty($obj_resp)) {
			$rowUC = $con->Listar("SELECT MAX(id_unico) FROM gf_comprobante_pptal where numero = '$numero' AND tipocomprobante=$tipocomprobante AND parametrizacionanno=$parametroAnno");
			$res = $rowUC[0][0];
			$res = ($res);
			$agregarAuditoria = agregarAuditoriaSistema($res, 1, 'GF_COMPROBANTE_PPTAL');
		} else {
			$res = 0;
		}

		echo $res;
		break;
	case 2:  // Insertar registros de traslado en la tabla gf_detalle_comprobante_pptal.
		$res = 0;
		$valor = '';

		$credito  = $_REQUEST['credito'];
		$contraCredito  = $_REQUEST['contraCredito'];
		$idComp = $_REQUEST['idComp'];

		$rubro  = $_REQUEST['rubro'];
		$fuente  = $_REQUEST['fuente'];

		$resultado = true;

		$rubroFuente = $con->Listar("SELECT id_unico 
		    FROM gf_rubro_fuente 
		    WHERE rubro = $rubro    
		    AND fuente = $fuente");

		if (count($rubroFuente) > 0) {

			$row = $rubroFuente;
			$id_rub_fue = $row[0][0];
			$rubroFuente =  $id_rub_fue;
		} else {
			// $insertSQL = 'INSERT INTO gf_rubro_fuente (rubro, fuente) 
			//   VALUES(' . $rubro . ', ' . $fuente . ')';
			// $resultado = $mysqli->query($insertSQL);
			$sql_cons  = "INSERT INTO gf_rubro_fuente (rubro,fuente) 
            VALUES (:rubro,:fuente)";
			$sql_dato = array(
				array(":rubro", $rubro),
				array(":fuente", $fuente),
			);
			$obj_resp = $con->InAcEl($sql_cons, $sql_dato);
			if (empty($obj_resp)) {
				$row2 = $con->Listar("SELECT MAX(id_unico) FROM gf_rubro_fuente WHERE rubro=$rubro AND fuente=$fuente");
				$rubroFuente = $row2[0][0];
				$agregarAuditoria = agregarAuditoriaSistema($rubroFuente, 1, 'GF_RUBRO_FUENTE');
			}
		}

		$rowCP = $con->Listar("SELECT descripcion, tercero, id_unico   
  			FROM gf_comprobante_pptal 
  			WHERE id_unico = $idComp");
		$descripcion = $rowCP[0][0];
		$tercero = $rowCP[0][1];
		$idComp = $rowCP[0][2];

		if ($credito == 0) {
			$valor = $contraCredito;
		} elseif ($contraCredito == 0) {
			$valor = $credito;
		}


		if ($descripcion == "") {
			$descripcion = NULL;
		}

		$proyecto = '2147483647';

		// $insertSQL = 'INSERT INTO gf_detalle_comprobante_pptal (descripcion, valor, comprobantepptal, tercero, proyecto, rubrofuente) 
		//       VALUES (' . $descripcion . ', ' . $valor . ', ' . $idComp . ', ' . $tercero . ', ' . $proyecto . ', ' . $rubroFuente . ')';
		// $resultado = $mysqli->query($insertSQL);
		$sql_cons  = "INSERT INTO gf_detalle_comprobante_pptal (descripcion, valor, comprobantepptal, tercero, proyecto, rubrofuente) 
            VALUES (:descripcion,:valor,:idComp,:tercero,:proyecto,:rubroFuente)";
		$sql_dato = array(
			array(":descripcion", $descripcion),
			array(":valor", $valor),
			array(":idComp", $idComp),
			array(":tercero", $tercero),
			array(":proyecto", $proyecto),
			array(":rubroFuente", $rubroFuente),
		);
		$obj_resp = $con->InAcEl($sql_cons, $sql_dato);
		if (empty($obj_resp)) {
			$query = $con->Listar("SELECT MAX(id_unico) FROM gf_detalle_comprobante_pptal WHERE comprobantepptal=$idComp AND rubroFuente=$rubroFuente");
			$id_unico = $query[0][0];
			$auditoriaDetalle = agregarDetallesAuditoria($id_unico, 1, 'GF_DETALLE_COMPROBANTE_PPTAL', 'comprobantepptal');
			$res = 1;
		}

		echo $res;
		break;
	case 3: // Modificar el valor del traslado en la tabla gf_detalle_comprobante_pptal.
		$res = 0;
		$id_val = $_REQUEST['id_val'];
		$valor = $_REQUEST['valor'];
		$credito = $_REQUEST['credito'];

		if ($valor == 0) {
			$valorPptal = $credito;
		} elseif ($credito == 0) {
			$valorPptal = $valor;
		}

		// $updateSQL = 'UPDATE gf_detalle_comprobante_pptal SET valor = ' . $valorPptal . ' WHERE id_unico = ' . $id_val;
		// $resultado = $mysqli->query($updateSQL);
		$queryA = $con->Listar("SELECT valor FROM gf_detalle_comprobante_pptal WHERE id_unico = $id_val");
		$valorA = $queryA[0][0];
		$sql_cons = "UPDATE gf_detalle_comprobante_pptal 
		SET valor=:valorPptal
		WHERE id_unico=:id_unico";
		$sql_dato = array(
			array(":valorPptal", $valorPptal),
			array(":id_unico", $id_val),
		);
		$obj_resp = $con->InAcEl($sql_cons, $sql_dato);
		if (empty($obj_resp)) {
			$auditoriaUpdate = modificarDetalles($id_val, $valorA, 'GF_DETALLE_COMPROBANTE_PPTAL');
			$res = 1;
		}
		echo $res;
		break;
	case 4: // Buscar un traslado por el número digitado por el usuario en buscar registro.
		$fragSql = '';
		$signo = '';
		$num = 0;

		$natural = array(2, 3, 5, 7, 10);
		$juridica = array(1, 4, 6, 8, 9);

		$numero =  $_REQUEST['numero'];
		$clase =  $_REQUEST['clase'];

		if (!empty($_REQUEST['tipoOp'])) {
			$tipoOp = $_REQUEST['tipoOp'];
			$signo = $_REQUEST['signo'];
			$fragSql = " AND tipoCom.tipooperacion $signo $tipoOp ";
		}

		//SELECT  com.id_unico 0, com.numero numero 1, tipoCom.codigo 2, com.fecha 3, com.tercero 4
		$resultado = $con->Listar("SELECT  com.id_unico, com.numero numero, tipoCom.codigo, com.fecha, com.tercero, com.descripcion      
	  		FROM gf_comprobante_pptal com
	 		left join gf_tipo_comprobante_pptal tipoCom on tipoCom.id_unico = com.tipocomprobante
	  		WHERE tipoCom.clasepptal = $clase 
	  		$fragSql 
			and com.numero like '$numero%'");
		for ($row = 0; $row < count($resultado); $row++) {
			$fecha = $resultado[$row][3];
			$fecha_div = explode("-", $fecha);
			$dia = $fecha_div[2];
			$mes = $fecha_div[1];
			$anio = $fecha_div[0];
			$fecha = $dia . '/' . $mes . '/' . $anio;

			$rowTer = $con->Listar("SELECT ter.id_unico, ter.nombreuno, ter.nombredos, ter.apellidouno, ter.apellidodos, ter.razonsocial, ter.numeroidentificacion, perTer.perfil     
				    FROM gf_tercero ter 
				    LEFT JOIN gf_perfil_tercero perTer ON perTer.tercero = ter.id_unico 
				    WHERE ter.id_unico = " . $resultado[$row][4] . "");

			if (in_array($rowTer[0][7], $natural)) {
				$tercero = ucwords(mb_strtolower($rowTer[0][1])) . ' ' . ucwords(mb_strtolower($rowTer[0][2])) . ' ' . ucwords(mb_strtolower($rowTer[0][3])) . ' ' . ucwords(mb_strtolower($rowTer[0][4]));
			} elseif (in_array($rowTer[0][7], $juridica)) {
				$tercero = ucwords(mb_strtolower($rowTer[0][5]));
			}

			$rowV = $con->Listar("SELECT SUM(valor) 
	        	FROM gf_detalle_comprobante_pptal 
	        	WHERE comprobantepptal = " . $resultado[$row][0] . "");
			echo '<div class="itemLista" style="padding: 3px;" onmouseover="this.style.backgroundColor=\'#5499c7\'" onmouseout="this.style.backgroundColor=\'#fff\'" align="left"> <span style="cursor: default" data="' . $resultado[$row][1] . ' ' . utf8_encode($resultado[$row][2]) . '" id="' . ($resultado[$row][0]) . '" >' . $resultado[$row][1] . ' ' . utf8_encode($resultado[$row][2]) . ' ' . $fecha . ' ' . $tercero . ' $' . number_format($rowV[0], 2, '.', ',') . '</span></div>';
		}
		break;
	case 5:
		$fuente  = $_REQUEST['fuente'];
		$rubro  = $_REQUEST['rubro'];

		$row = $con->Listar("SELECT id_unico 
	    	FROM gf_rubro_fuente 
	    	WHERE rubro = $rubro 
	    	AND fuente = $fuente");

		$id_rub_fue = $row[0][0];

		echo (int)$id_rub_fue;
		break;
}
