<?php
###################################################################################
#INICIO
###################################################################################
# Inicializamos
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
require($mosConfig_absolute_path."/includes/perfiles.php");
require($mosConfig_absolute_path."/administrator/components/com_cuotas/config.cuotas.php");
require($mosConfig_absolute_path."/components/com_cuotas/version.php");

# Establecemos idioma
if (file_exists('components/com_cuotas/lang/'.$mosConfig_lang.'.php')) {
  include('components/com_cuotas/lang/'.$mosConfig_lang.'.php');
} else {
  include('components/com_cuotas/lang/spanish.php');
}

$trimestres = array (LIT_TRI1, LIT_TRI2, LIT_TRI3, LIT_TRI4);
$meses = array (LIT_ENE, LIT_FEB, LIT_MAR, LIT_ABR, LIT_MAY, LIT_JUN, LIT_JUL, LIT_AGO, LIT_SEP, LIT_OCT, LIT_NOV, LIT_DIC);

###################################################################################
#FUNCIONES
###################################################################################
# Dibujar Footer
function RefFooter($cuotas_version) {
  echo "<center><font face=\"Arial\" size=\"1\"><b><font color=\"#0000FF\">Área</font><font color=\"#FF0000\"><img border=\"0\" src=\"components/com_cuotas/images/tynimam.jpg\" width=\"12\" height=\"11\">Ensayo</font></b> $cuotas_version por <a href=\"http://www.rodax-software.com\" target=\"_blank\"><font face=\"Arial\" size=\"1\">Rodax Software S.L</font></a></center>";
  return;
}

# Dibujar Cabecera
function RefHeader($Itemid) {
  global $database;
	echo "<div class='componentheading'>";
  $database->setQuery("SELECT name from #__menu WHERE id='$Itemid'");
  $menuname = $database->loadResult();
  echo "$menuname";
  echo "</div>";
  return;
}

///////////////////////////////////////////////////////////////////////////////////////
// Función que nos escribe el script necesario para el listado de cuotas de los usuarios
//
function ScriptListaCuotas() {
echo "<script language='JavaScript' type='text/javascript'>";

echo "function anadirAno() {"
  	."document.Form.op.value = 'opAnadirAno';"
	  ."document.Form.submit();}";

echo "function refrescar() {"
	  ."document.Form.submit();}";

echo "function recogerCampos(field) {"
		."var cadenaPag = '';"
		."var cadenaNoPag = '';"
		."for (i = 0; i < field.length; i++){"
			."if (field[i].checked == true){"
				."if (cadenaPag != '')"
					."cadenaPag = cadenaPag + ',';"
					."cadenaPag = cadenaPag + field[i].value;"
			."}"
			."else {"
				."if (cadenaNoPag != '')"
					."cadenaNoPag = cadenaNoPag + ',';"
					."cadenaNoPag = cadenaNoPag + field[i].value;"
			."}"
		."}"
		."resultado = new Array(cadenaPag, cadenaNoPag);"
		."return resultado;"
		."}";

echo "function grabar(field0, field1, field2) {"
		."resultado = recogerCampos(field0);"
		."document.Form.listaUsuariosPag0.value = resultado[0];"
		."document.Form.listaUsuariosNoPag0.value = resultado[1];"
		."resultado = recogerCampos(field1);"
		."document.Form.listaUsuariosPag1.value = resultado[0];"
		."document.Form.listaUsuariosNoPag1.value = resultado[1];"
		."resultado = recogerCampos(field2);"
		."document.Form.listaUsuariosPag2.value = resultado[0];"
		."document.Form.listaUsuariosNoPag2.value = resultado[1];"
		."document.Form.op.value = 'opGuardar';"
		."document.Form.submit();}";

echo "</script>";
}

///////////////////////////////////////////////////////////////////////////////////////
// Función que nos muestra el listado de cuotas de los usuarios
//
function verListaCuotas($idtrimestre, $idano) {
  global $database, $my, $trimestres, $meses,  $Perfiles;

	$tabclass = array( 'sectiontableentry1', 'sectiontableentry2' );
	
  ScriptListaCuotas();

//COMBO TRIMESTRE  
  $listatri = '<select name="idtrimestre" class="inputbox" size="1" onchange="javascript:refrescar();">';
  $i=0;
  foreach($trimestres as $trimestre){
  	$listatri .= "<option value=$i";
  	if ($idtrimestre == $i)
  		 $listatri .= " selected";
  	$listatri .= ">$trimestre</option>";
  	$i++;
  }
  $listatri .= "</select>";

//COMBO ANO
  $listano = '<select name="idano" class="inputbox" size="1" onchange="javascript:refrescar();">';
  $cadena = "select distinct ano"
				  . "\nFROM #__cuotas"
  				. "\nORDER BY ano";
  $database->setQuery($cadena);
  $rows = $database->loadObjectList();
  foreach($rows as $row1){
  	$listano .= "<option value=$row1->ano";
  	if ($idano == $row1->ano)
  		 $listano .= " selected";
  	$listano .= ">$row1->ano</option>";
  }
  $listano .= "</select>";

//FORMULARIO DE VISTA
	//Campos Ocultos
	echo "<form action='' method='post' name='Form'>";
	echo '<input type="hidden" name="op" value=""/>';	
	echo '<input type="hidden" name="listaUsuariosPag0" value=""/>';		
	echo '<input type="hidden" name="listaUsuariosPag1" value=""/>';		
	echo '<input type="hidden" name="listaUsuariosPag2" value=""/>';				
	echo '<input type="hidden" name="listaUsuariosNoPag0" value=""/>';			
	echo '<input type="hidden" name="listaUsuariosNoPag1" value=""/>';			
	echo '<input type="hidden" name="listaUsuariosNoPag2" value=""/>';					
	echo '<input type="hidden" name="idanomax" value="';
	if (!$row1->ano) 
		echo $idano;
	else
		echo ($row1->ano + 1);
	echo '"/>';

echo '<table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane">';
echo '<tr>';
echo '<td align="left">';
echo 'Ver cuotas de ';
	//Campos Visibles
	echo $listatri;
echo ' de ';
	echo $listano;

echo '</td><td class="buttonheading" width="150px">';

	//Solo podra Tesorero, administrador y superadministrador
	if (($Perfiles->esTesorero()) || strtolower($my->usertype) == 'administrator' 
		|| strtolower($my->usertype) == 'super administrator' )
    	echo '<a href="javascript:anadirAno();"><img src="components/com_cuotas/images/add.gif">Añadir año</a>';		 

echo '</td>'
		 .'<td class="buttonheading">';

	//Solo podra Tesorero, administrador y superadministrador
	if (($Perfiles->esTesorero()) || strtolower($my->usertype) == 'administrator' 
		|| strtolower($my->usertype) == 'super administrator' )
	echo '<a href="javascript:grabar(document.Form.lista0, document.Form.lista1, document.Form.lista2);" onmouseout="MM_swapImgRestore();"  '
     .'onmouseover="MM_swapImage(\'save\',\'\',\'$mosConfig_absolute_path."/images/save_f2.png\',1);">'
		 .'<img src="'.$mosConfig_absolute_path.'/images/save.png" alt="Guardar" align="middle" name="save" border="0" /></a>';
		 
echo '</td></tr></table><br/>';

//DETALLES
//Dibujamos cabecera  
  echo "<table width='100%' border='0' cellspacing='0' cellpadding='2' class='contentpane'>";
  echo "<tr><th></th>";
  switch ($idtrimestre) {
   case 0: $i=0;
           $cadenaAux = "\nAND c.mes in (0,1,2)";
		       break;
   case 1: $i=3;
           $cadenaAux = "\nAND c.mes in (3,4,5)";   
		       break;
   case 2: $i=6;
           $cadenaAux = "\nAND c.mes in (6,7,8)";   
		       break;
   default: $i=9;
           $cadenaAux = "\nAND c.mes in (9,10,11)";   
		        break;
	}
  for ($j=0; $j<3; $j++) {
	  echo "<th>$meses[$i]</th>";
	  $i++;
	}
	echo "</tr>";
	
//Dibujamos detalle
  $cadena = "SELECT c.id, u.name, c.ano, c.mes, c.cuantia"
				  . "\nFROM #__cuotas AS c"
				  . "\nLEFT JOIN #__users AS u ON u.id = c.id"
				  . "\nWHERE c.ano='". $idano ."'"
				  . $cadenaAux
  				. "\nORDER BY u.name, c.mes";

  $database->setQuery($cadena);
  $rows = $database->loadObjectList();

  //Vemos los privilegios que tiene el usuario con el que se ha accedido
  $Contador=0;
	//Solo podra Tesorero, administrador y superadministrador  
	if (($Perfiles->esTesorero()) || strtolower($my->usertype) == 'administrator' 
		|| strtolower($my->usertype) == 'super administrator' )
  	$cadenaAux1 = "";
  else	
  	$cadenaAux1 = " disabled='True'";

	$k = 0;
  foreach ($rows as $row1) {
  	
  	$cadenaAux = $cadenaAux1;
  	if ($row1->cuantia != 0)
  		$cadenaAux .= " checked";
  	
   	switch ($Contador) {
    case 0:	echo '<tr class="' . $tabclass[$k]. '"?>';
    				echo "<td>". $row1->name ."</td>"; 
    				echo "<td align='center'><input type='checkbox' name='lista0' value='". $row1->id ."'".$cadenaAux."/></td>";
    				$Contador++;
            break;
    case 1:	echo "<td align='center'><input type='checkbox' name='lista1' value='". $row1->id ."'".$cadenaAux."/></td>";
    				$Contador++;
            break;    
    case 2:	echo "<td align='center'><input type='checkbox' name='lista2' value='". $row1->id ."'".$cadenaAux."/></td>";
  					echo "</tr>";    
  					$Contador=0;
            break;    
    }            
    $k = 1 - $k;
  }

  echo "</table>";
	echo '</form>';  
  return;
}

/////////////////////////////////////////////////////////////////////////////////////////////
// Función que crea las entradas del nuevo año pasado por parametro en tabla cuotas
// de todos y cada uno de los usuarios de la página
//
function abrirAno ($AnoNuevo){
  global $database;	
  
  $cadena = "select id"
				  . "\nFROM #__users"
				  . "\nWHERE gid='18' and block = '0'"				  
  				. "\nORDER BY id";
  $database->setQuery($cadena);
  $rows = $database->loadObjectList();

  foreach($rows as $row1){
			$cadena = "INSERT INTO #__cuotas (mes, id, ano, cuantia, published, ordering, checked_out)"
              . "\nVALUES"
              . "\n(0,". $row1->id .", ". $AnoNuevo .", 0, 0, 0, 0),"
              . "\n(1,". $row1->id .", ". $AnoNuevo .", 0, 0, 0, 0),"              
              . "\n(2,". $row1->id .", ". $AnoNuevo .", 0, 0, 0, 0),"              
              . "\n(3,". $row1->id .", ". $AnoNuevo .", 0, 0, 0, 0),"              
              . "\n(4,". $row1->id .", ". $AnoNuevo .", 0, 0, 0, 0),"              
              . "\n(5,". $row1->id .", ". $AnoNuevo .", 0, 0, 0, 0),"              
              . "\n(6,". $row1->id .", ". $AnoNuevo .", 1200, 0, 0, 0),"              
              . "\n(7,". $row1->id .", ". $AnoNuevo .", 1200, 0, 0, 0),"
              . "\n(8,". $row1->id .", ". $AnoNuevo .", 0, 0, 0, 0),"              
              . "\n(9,". $row1->id .", ". $AnoNuevo .", 0, 0, 0, 0),"              
              . "\n(10,". $row1->id .", ". $AnoNuevo .", 0, 0, 0, 0),"                                                        
              . "\n(11,". $row1->id .", ". $AnoNuevo .", 0, 0, 0, 0)";                            
			$database->setQuery($cadena);	
			if (!$database->query()) {
      	//echo $database->getErrorMsg();
      	return ("False");
      	exit;
      }
	}
	return ("True");		
}

/////////////////////////////////////////////////////////////////////////////////////////////
// Función que modifica la situación de cuotas de los usuarios cuyo id esta en la lista
//
function modificar ($idano, $idMes, $pagado, $lista){
	global $database;	
	
	if (strlen($lista) == 0)
		 return ("True");	 
	
	$cuantia = 0;
	if ($pagado == "True")
		$cuantia = CTE_CUANTIA;
		 
	$cadena = "UPDATE #__cuotas SET"
	       ."\ncuantia = ". $cuantia
	       ."\nWHERE ano = ". $idano
	       ."\nAND mes = ". $idMes	       
	       ."\nAND id in (". $lista .")";
	$database->setQuery($cadena);	
	if (!$database->query()) {
   	//echo $database->getErrorMsg();
   	return ("False");
  }
 	else return ("True");	       
}

/////////////////////////////////////////////////////////////////////////////////////////////
// Función que modifica la situación de cuotas de los usuarios cuyo id estan en las distintas listas
//
function modificarEstado ($idano, $idtrimestre, $pagado, $lista0, $lista1, $lista2){
	switch ($idtrimestre) {
   case 0: modificar ($idano, 0, $pagado, $lista0);
           modificar ($idano, 1, $pagado, $lista1);
           modificar ($idano, 2, $pagado, $lista2);
		       break;
   case 1: modificar ($idano, 3, $pagado, $lista0);
           modificar ($idano, 4, $pagado, $lista1);
           modificar ($idano, 5, $pagado, $lista2);
		       break;
   case 2: modificar ($idano, 6, $pagado, $lista0);
           modificar ($idano, 7, $pagado, $lista1);
           modificar ($idano, 8, $pagado, $lista2);
		       break;
   default:modificar ($idano, 9, $pagado, $lista0);
           modificar ($idano, 10, $pagado, $lista1);
           modificar ($idano, 11, $pagado, $lista2);
           break;
	}	
}



###################################################################################
#CUERPO
###################################################################################

//Chequeamos acceso
if ($my->usertype){
    //Establecemos el perfil del usuario
	$Perfiles = new Perfiles($my->id, $database) ;

	# Estilo de vista
	if ($obrens_verlista=="1" AND $func=="") $func = "list";
	
	//Por defecto se posiciona en el trimestre y año actuales
	$fecha = getdate();
	if ($idtrimestre=="") {
		switch($fecha["mon"]) {
		case 1:	case 2:	case 3: $idtrimestre = 0;
														break;
		case 4:	case 5:	case 6: $idtrimestre = 1;
														break;
		case 7:	case 8:	case 9: $idtrimestre = 2;
					  								break;
		default: $idtrimestre = 3;
		}
	}
	if ($idano=="") {
 	  $idano = $fecha["year"];
	}
	
	switch ($op) {
		case 'opAnadirAno':	abrirAno($idanomax);
												break;
		case 'opGuardar':		modificarEstado ($idano, $idtrimestre, "True", $listaUsuariosPag0, $listaUsuariosPag1, $listaUsuariosPag2);
												modificarEstado ($idano, $idtrimestre, "False", $listaUsuariosNoPag0, $listaUsuariosNoPag1, $listaUsuariosNoPag2);	
												break;
	}
			
	# Cabecera
	RefHeader($Itemid);
	
	# Contenido
	switch ($func) {
	  case 'list': verListaCuotas($idtrimestre, $idano);
						     break;
	  default:
	    break;
	}
	
	# Footer
	if ($obrens_verfooter == "1")
		RefFooter($cuotas_version);

}
//No esta autorizado la session se ha terminado
else {
	echo _NOT_AUTH;
	echo "<br>";
	echo _DO_LOGIN;
}

	
?>