This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
MatritumCantat_Web/www/components/com_cuotas/cuotas.php.bak
2012-09-18 20:02:43 +00:00

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;
}
?>