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_tesoreria/tesoreria.php
2012-09-18 20:02:43 +00:00

452 lines
16 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_tesoreria/config.tesoreria.php");
require($mosConfig_absolute_path."/components/com_tesoreria/version.php");
# Establecemos idioma
if (file_exists('components/com_tesoreria/lang/'.$mosConfig_lang.'.php')) {
include('components/com_tesoreria/lang/'.$mosConfig_lang.'.php');
} else {
include('components/com_tesoreria/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);
$cabecera ="<tr><th></th><th align='left'>Fecha</th><th align='left'>Descripción</th><th align='right'>Importe</th></tr>";
###################################################################################
#FUNCIONES
###################################################################################
# Dibujar Footer
function RefFooter($Tesoreria_version) {
echo "<center><font face=\"Arial\" size=\"1\"><b><font color=\"#0000FF\">Área</font><font color=\"#FF0000\"><img border=\"0\" src=\"components/com_tesoreria/images/tynimam.jpg\" width=\"12\" height=\"11\">Ensayo</font></b> $Tesoreria_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 "<span class='componentheading'>";
$database->setQuery("SELECT name from #__menu WHERE id='$Itemid'");
$menuname = $database->loadResult();
echo "$menuname";
echo "</span><p />";
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 eliminarEntrada(entrada) {"
."document.Form.op.value = 'opEliminar';"
."document.Form.numentrada.value = entrada;"
."document.Form.submit();}";
echo "function refrescar() {"
."document.Form.submit();}";
echo "function anadirEntrada(categoria,literal) {"
."document.Form.op.value = 'opAnadir';"
."document.Form.numentrada.value = categoria;"
."document.Form.literal.value = literal;"
."document.Form.submit();}";
echo "function grabar() {"
."if (document.Form.cuantia.value.lastIndexOf(',') != -1){"
."alert ('". LIT_ERR_CUANTIA ."');"
."document.Form.cuantia.focus();"
."document.Form.cuantia.select();"
."}else {"
."document.Form.op.value = 'opGrabar';"
."document.Form.submit();}}";
echo "function cancelar() {"
."document.Form.op.value = 'list';"
."document.Form.submit();}";
echo "</script>";
}
///////////////////////////////////////////////////////////////////////////////////////
// Función que nos muestra el listado de cuotas de los usuarios
//
function verListaTesoreria($idtrimestre, $idano) {
global $database, $my, $trimestres, $meses, $cabecera, $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++;
}
//Opcion todos
$listatri .= "<option value=$i";
if ($idtrimestre == $i)
$listatri .= " selected";
$listatri .= ">". LIT_TODOS ."</option>";
$listatri .= "</select>";
//COMBO ANO
$listano = '<select name="idano" class="inputbox" size="1" onchange="javascript:refrescar();">';
$cadena = "select distinct DATE_FORMAT(fecha, '%Y') as ano"
. "\nFROM #__tesoreria"
. "\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="numentrada" value=""/>';
echo '<input type="hidden" name="literal" value=""/>';
echo '<table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane">';
echo '<tr>';
echo '<td align="left">';
echo 'Ver ';
//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_tesoreria/images/add.gif">'. LIT_ANAANO .'</a>';
echo '</td>'
.'<td class="buttonheading">';
echo '</td></tr></table><br/>';
//DETALLES
//Dibujamos cabecera
switch ($idtrimestre) {
case 0: $cadenaAux = "('01','02','03')";
break;
case 1: $cadenaAux = "('04','05','06')";
break;
case 2: $cadenaAux = "('07','08','09')";
break;
case 3: $cadenaAux = "('10','11','12')";
break;
default: $cadenaAux = "";
break;
}
//Dibujamos detalle
$cadena = "SELECT t.*, DATE_FORMAT(t.fecha, '%Y'), DATE_FORMAT(t.fecha, '%m'), c.title"
. "\nFROM #__tesoreria as t"
. "\nLEFT JOIN #__categories AS c ON c.id = t.catid"
. "\nWHERE DATE_FORMAT(t.fecha, '%Y')='". $idano ."'";
if ($cadenaAux != "")
$cadena .= "\nAND DATE_FORMAT(t.fecha, '%m') in ". $cadenaAux;
$cadena .= "\nORDER BY t.catid, t.fecha";
$database->setQuery($cadena);
$rows = $database->loadObjectList();
//Dibujamos tablas de ingresos y gastos
$catidAnt = "";
$subTotal = 0;
$Total = 0;
$k = 0;
foreach ($rows as $row1){
//Cabeceras
if ($catidAnt == "" || $catidAnt != $row1->catid) {
if ($catidAnt != ""){
echo "<tr><td align='right' colspan=3><strong>". LIT_TOTAL ."</strong></td><td align='right'><strong>". number_format($subTotal, 2,',','.') ."&nbsp;&euro;</strong></td></tr>";
echo "</table>";
$Total = $subTotal;
$subTotal = 0;
}
$catidAnt = $row1->catid;
echo "<table width='100%' border='0' cellspacing='0' cellpadding='2' class='contentpane'>";
echo '<tr><td class="contentheading">'. $row1->title .'</td></tr>';
echo '<tr><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:anadirEntrada('". $row1->catid ."','" . $row1->title
."')><img src='components/com_tesoreria/images/add.gif'>". LIT_ANAAPU ."</a>";
echo '</td></tr>';
echo '</table>';
echo "<table width='100%' border='0' cellspacing='0' cellpadding='0' class='contentpaneopen'>";
echo $cabecera;
}
//Detalles
if ($row1->published == 1) {
echo '<tr class="' . $tabclass[$k]. '"?>';
$k = 1 - $k;
//CheckBox para eliminar entradas
if (($Perfiles->esTesorero()) || strtolower($my->usertype) == 'administrator'
|| strtolower($my->usertype) == 'super administrator' )
echo "<td align='center' class='buttonheading'><a href='javascript:eliminarEntrada(". $row1->id
.")'><img src='components/com_tesoreria/images/delete.png'/></a></td>";
else
echo "<td></td>";
echo "<td align='left'>".$row1->fecha ."</td>";
echo "<td align='left'>".$row1->descripcion ."</td>";
echo "<td align='right'>".number_format($row1->cuantia, 2,',','.')."&nbsp;&euro;</td>";
echo "</tr>";
}
$subTotal = $subTotal + $row1->cuantia;
}
echo "<tr><td align='right' colspan=3><strong>". LIT_TOTAL ."</strong></td><td align='right'><strong>". number_format($subTotal, 2,',','.')."&nbsp;&euro;</strong></td></tr>";
echo "</table>";
$Total = $Total - $subTotal;
echo '<table cellpadding="0" cellspacing="0" border="0" width="99%">';
echo '<tr><td>'. LIT_TES .'&nbsp;&nbsp;&nbsp;'. number_format($Total, 2,',','.') .'&nbsp;&euro;</td></tr>';
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 anadir ($numentrada, $literal, $idtrimestre, $idano){
echo '<script type="text/javascript" src="includes/js/mambojavascript.js"></script>';
echo '<script type="text/javascript" src="includes/js/calendar/calendar.js"></script>';
echo '<link rel="stylesheet" type="text/css" media="all" href="includes/js/calendar/calendar-mos.css" title="green" />';
echo '<script type="text/javascript" src="includes/js/calendar/lang/calendar-en.js"></script>';
ScriptListaCuotas();
echo "<form action='' method='post' name='Form'>";
echo '<input type="hidden" name="op" value=""/>';
echo '<input type="hidden" name="catid" value="'. $numentrada .'"/>';
echo '<input type="hidden" name="idtrimestre" value="'. $idtrimestre .'"/>';
echo '<input type="hidden" name="idano" value="'. $idano .'"/>';
echo '<table cellpadding="0" cellspacing="0" border="0" width="99%">';
echo '<tr>';
echo '<th align="center">'. LIT_ANADIR .'&nbsp;&nbsp;'. $literal .'</th>';
echo '<th align="right">';
echo '<a href="javascript:grabar();" 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 '<a href="javascript:cancelar();" onmouseout="MM_swapImgRestore();"'
.'onmouseover="MM_swapImage(\'cancel\',\'\',\''.$mosConfig_absolute_path.'/images/cancel_f2.png\',1);">'
.'<img src="'.$mosConfig_absolute_path.'/images/cancel.png" alt="Cancelar" align="middle" name="cancel" border="0"/></a>';
echo '</th></tr>';
echo '<tr>';
echo '<td align="right">'. LIT_FECHA .'</td>'
.'<td><input class="inputbox" type="text" name="fechaent" id="fecha" size="12" maxlength="10" value="'. date("Y-m-d") .'"/>'
.'<input type="reset" class="button" value="..." onclick="return showCalendar(\'fecha\');"/>';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">'. LIT_DESCRIPCION .'</td>'
.'<td><input class="inputbox" type="text" name="descripcion" id="descripcion" size="60" maxlength="100" value=""/>';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td align="right">'. LIT_CUANTIA .'</td>'
.'<td><input class="inputbox" type="text" name="cuantia" id="cuantia" size="20" maxlength="20" value="0.0"/>&nbsp;&euro;';
echo '</td>';
echo '</tr>';
echo '</table>';
echo '</form>';
return ("True");
}
function eliminar ($numentrada){
global $database;
$cadena = "delete from #__tesoreria"
. "\nWHERE id = " . $numentrada;
$database->setQuery($cadena);
if (!$database->query()) {
//echo $database->getErrorMsg();
return ("False");
exit;
}
return ("True");
}
/////////////////////////////////////////////////////////////////////////////////////////////
// Función que añade los 4 trimestrs por defecto a un nuevo año
//
function anadirAno() {
global $database;
$resultado = 'True';
//Hallamos el año a añadir
$cadena = "SELECT MAX(DATE_FORMAT(fecha, '%Y')) as ano FROM #__tesoreria";
$database->setQuery($cadena);
$rows = $database->loadObjectList();
if (!$rows[0]->ano) {
$Aux = getDate();
$AnoAux = $Aux["year"];
}
else
$AnoAux = $rows[0]->ano+1;
//Hallamos las categorias a añadir (ingresos y gastos)
$cadena = "SELECT * FROM #__categories WHERE section = 'com_tesoreria' order by id";
$database->setQuery($cadena);
if ($database->query()) {
$rows = $database->loadObjectList();
$i=0;
foreach ($rows as $row1){
$cat[$i] = $row1->id;
$i++;
}
}
else $resultado = 'False';;
//Insertamos los 4 trimestres por defecto al nuevo año
for($i=0; $i < count($cat); $i++) {
$cadena = "INSERT INTO #__tesoreria (catid, fecha, descripcion, cuantia, published)"
."\nVALUES (". $cat[$i] . ", '". $AnoAux ."-01-01', '', '0','0'),"
."\n (". $cat[$i] . ", '". $AnoAux ."-04-01', '', '0','0'),"
."\n (". $cat[$i] . ", '". $AnoAux ."-07-01', '', '0','0'),"
."\n (". $cat[$i] . ", '". $AnoAux ."-10-01', '', '0','0')";
$database->setQuery($cadena);
if (!$database->query())
echo "Error de insercion";
$resultado = 'False';
}
return ($resultado);
}
/////////////////////////////////////////////////////////////////////////////////////////////
// Función que graba la nueva entrada
//
function grabar ($catid, $fecha, $descripcion, $cuantia){
global $database;
$cadena = "INSERT INTO #__tesoreria (catid, fecha, descripcion, cuantia, published)"
."\nVALUES (". $catid . ", '". $fecha ."', '". $descripcion ."', ". $cuantia .",'1')";
$database->setQuery($cadena);
if (!$database->query()) {
echo $database->getErrorMsg();
return ("False");
}
else return ("True");
}
###################################################################################
#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 $op=="") $op = "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"];
}
# Cabecera
RefHeader($Itemid);
# Contenido
switch ($op) {
case 'list': verListaTesoreria($idtrimestre, $idano);
break;
case 'opAnadirAno': anadirAno();
$returnlink = "index.php?option=$option&Itemid=$Itemid&idtrimestre=$idtrimestre&idano=$idano";
mosRedirect("$returnlink", "");
break;
case 'opAnadir': anadir($numentrada, $literal, $idtrimestre, $idano);
break;
case 'opEliminar' : eliminar($numentrada);
$returnlink = "index.php?option=$option&Itemid=$Itemid&idtrimestre=$idtrimestre&idano=$idano";
mosRedirect("$returnlink", "");
break;
case 'opGrabar': grabar ($catid, $fechaent, $descripcion, $cuantia);
$returnlink = "index.php?option=$option&Itemid=$Itemid&idtrimestre=$idtrimestre&idano=$idano";
mosRedirect("$returnlink", "");
break;
default:
break;
}
# Footer
if ($obrens_verfooter == "1")
RefFooter($Tesoreria_version);
}
//No esta autorizado la session se ha terminado
else {
echo _NOT_AUTH;
echo "<br>";
echo _DO_LOGIN;
}
?>