git-svn-id: https://192.168.0.254/svn/Proyectos.MatritumCantat_Web/trunk@2 8e3496fd-7892-4c45-be36-0ff06e9dacc6
396 lines
13 KiB
PHP
396 lines
13 KiB
PHP
<?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 .", 0, 0, 0, 0),"
|
|
. "\n(7,". $row1->id .", ". $AnoNuevo .", 0, 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;
|
|
}
|
|
|
|
|
|
?>
|