<?php
session_start();
ini_set('default_socket_timeout', 500);

include_once("../scripts/connect.php");
$conexion = conecta_default();
include ("../scripts/ModeloCompacto.php");

$conexion = conecta_default ();

include_once ("../scripts/session.php");

// Validar Session

$sesion = new Sesion ( "", "", "" ); /* Se crea un objeto nuevo con el privilegio necesario para la pag. actual */

if (! $sesion->isValida ( "1" )) { /* Sesion invalida */

    header ( "Location: ../index.php?err=NoSesion" );
}  /* no hay sesion */

else {

    $dato = explode ( "|", $_SESSION ['usuario'] );

    $sesion->setDatos ( $dato [0], $dato [1], $dato [2] );

    $sesion->setSesion ();
}

$iii = 1;
$montoCalificacion = 624;
$montoCalificacionDistribuidor = 1500;
$TIPO_CONSUMIDOR = 1;
$TIPO_DISTRIBUIDOR = 2;

$fecha1 = $_POST ['fecha_i'];

$fecha2 = $_POST ['fecha_f'];

$elcentro = $_POST ['listacd'];

$qa = "delete from regtemp where 1";
$ca = mysqli_query($conexion, $qa) or die ('Error (select consec): ' . mysqli_error($conexion));

$inversionistasContransacciones = obtenerInversionistasConTransacciones($conexion, $fecha1, $fecha2);

if ($elcentro == 0) {
    $q2 = "SELECT 
 		rfc, CONCAT_WS(' ', nombre, appat, apmat) as nombreInversionitas, sum(puntos) as compras, usuarios_ci_idusuarios_ci, id_inver as id_inverT, idprom, tipo
 		FROM transacciones 
 		join depositos on transacciones.idtransacciones=depositos.transacciones_idtransacciones 
 		join inversionista on transacciones.inversionista_id_inver=inversionista.id_inver 
 		WHERE inversionista.id_inver IN($inversionistasContransacciones) AND fechat between \"$fecha1\" and \"$fecha2\" and transacciones.tipostr_idtipostr!='11' and vip=0 
 		group by rfc order by id_inverT";
} else {

    $q2 = "SELECT 
 		rfc, CONCAT_WS(' ', nombre, appat, apmat) as nombreInversionitas, sum(puntos) as compras, usuarios_ci_idusuarios_ci, id_inver as id_inverT, idprom, tipo
 		FROM transacciones 
 		join depositos on transacciones.idtransacciones=depositos.transacciones_idtransacciones 
 		join inversionista on transacciones.inversionista_id_inver=inversionista.id_inver 
 		WHERE inversionista.id_inver IN($inversionistasContransacciones) AND fechat between \"$fecha1\" and \"$fecha2\" and transacciones.tipostr_idtipostr!='11' and usuarios_ci_idusuarios_ci=$elcentro  
 		group by rfc order by usuarios_ci_idusuarios_ci";
}
$result = mysqli_query($conexion, $q2) or die ( 'No se pudo hacer lo que quieres ok?' . mysqli_error($conexion) );

echo "<center>
		<h3>Modelo Normal 624 $elcentro</h3>
		<table border=\"1\"> <tr>

			<th>#</th>
			<th>ID.</th>
			<th>RFC.</th>
			<th>Nombre</th>
			<th>Sistema</th>
			<th>C.D.</th>
			<th>Calificadas</th>
			<th>Generado</th>
			<th>Obtenido</th>
			<th></th>

			</tr>";

$iii = 1;
$superTotalGenerado = 0;
$superTotalObtenido = 0;

$arrayInversionistas = array();
while ( $fila = mysqli_fetch_array( $result, MYSQL_ASSOC ) ) {
    $arrayInversionistas[]= $fila;
}

$tot = 0;

foreach ( $arrayInversionistas as $fila) {

    if (esCalificado($fila, $arrayInversionistas) ) {

        $modeloNegocio = new ModeloCompacto($conexion);
        $modeloNegocio->procesarInversionistaNormal($fila ['id_inverT'], $fecha1, $fecha2, $fila ['compras']);
        $datos = $modeloNegocio->resumenCalculos();

        $superTotalGenerado += $datos['totalGenerado'];
        $superTotalObtenido += $datos['totalObtenido'];




        $tot += $fila ['compras'];

        $gen=round($datos['totalGenerado']);
        $obt=round($datos['totalObtenido']);

      if($datos['totalObtenido'] > 0){
           $qIP2 = "INSERT INTO regs2 (id_inver, calificados, total, _real, apagar, fechap, status, impuestos, pagado)
             VALUES ('".$fila ['id_inverT']."', '".$datos['totalCalificadasPrimerNivel']."', '$gen',
             '$obt', '$obt', curdate(), '0', '0', '$obt')";
            //aqui insertaba 0 en regalias y voucher cuando era nota de tipo 10
            $cIP2 = mysqli_query($conexion, $qIP2) or die ('Error (insert pagovta): ' . mysqli_error($conexion));
        }


        echo "<tr>
				<td>$iii</td>
				<td>" . $fila ['id_inverT'] . "</td>
				<td>" . $fila ['rfc'] . "</td>
				<td>" . $fila ['nombreInversionitas'] . "</td>
				<td>" . $fila ['compras'] . "</td>
				<td>" . $fila ['usuarios_ci_idusuarios_ci'] . "</td>
				<td>".$datos['totalCalificadasPrimerNivel']."</td>
				<td>".$gen."</td>
				<td>".$obt."</td>

<td><form name=\"busca2\" action=\"reportegeneracionalnvo.php\" target=\"_blank\" method=\"post\">

			<input type=hidden name=fech1 value=$fecha1 />

			<input type=hidden name=fech2 value=$fecha2 />

			<input type=hidden name=elrfc value=" . $fila ['rfc'] . " />

			<input type=hidden name=elci value=" . $fila ['usuarios_ci_idusuarios_ci'] . " />

<input type=\"submit\" name=\"buscar\" id=\"continuar\" value=\"Reporte Nuevo\" /></form>
					
					
					
					
					
					
					
					</td></tr>";
        $iii ++;
    }
}

echo "</table><br>
	<br>Las compras totales realizadas entre $fecha1 y $fecha2 son <br><br>Sistema: $tot<br>
	Total de regalías generadas: ".number_format ($superTotalGenerado,2, '.', ',')."<br />
	Total de regalías obtenidas: ".number_format ($superTotalObtenido,2, '.', ',')."<br />
<br>";




function obtenerInversionistasConTransacciones($conexion, $fecha1, $fecha2)
{

    $query = "SELECT i.id_inver FROM transacciones t JOIN inversionista i ON i.id_inver = t.inversionista_id_inver 
            WHERE t.tipostr_idtipostr IN(10,12) AND t.fechat between '$fecha1' AND '$fecha2' GROUP BY i.rfc";

    $ca = mysqli_query($conexion, $query, $conexion) or die ('Error (select consec): ' . mysqli_error($conexion));

    $inverConTransacciones = array();
    while ($fila = mysqli_fetch_array($ca, MYSQL_NUM)) {
        $inverConTransacciones[] = $fila[0];
    }
    $inverConTransacciones = implode(",", $inverConTransacciones);

    return $inverConTransacciones;
}

function esCalificado($fila, $arrayInversionistas){

    if ($fila ['compras'] >= 624 ) {
        foreach ($arrayInversionistas as $inversionistaHijo){
            if($inversionistaHijo['idprom'] == $fila['id_inverT'])
                return true;
        }
    }
    return false;
}
?>