Source

gestiona / src / cuenta_php_files / pyg.php

<?php
#
# @author Igor Támara
# Public domain. No warranties. http://structio.sourceforge.net/gestiona

session_start();
session_name("usuario");
include ("funciones.php");
if(headergestiona()==1) {
  $anio=$_SESSION["anio"];
  if  (!isset($_GET["fechaini"])&&isset($_GET["id"])){
    $id=$_GET["id"];
    $fechaini=toma_cadena("SELECT to_char(fechaini,'dd%2Fmm%2FYYYY') FROM periodoscontables WHERE id=$id");
  }
  else if (isset($_GET["fechaini"])){
    $fechaini=$_GET["fechaini"];
  }
  if (!isset($_GET["fechafin"])&&isset($_GET["id"])) {
    $id=$_GET["id"];
    $fechafin=toma_cadena("SELECT to_char(fechafin,'dd%2Fmm%2FYYYY') FROM periodoscontables WHERE id=$id");
  }
  else if (isset($_GET["fechafin"])){
    $fechafin=$_GET["fechafin"];
  }
  if (isset($_GET["muestra"])) { 
    switch($_GET["muestra"]) {
    case 1:
      print '<a href="pyg.php?muestra=1&id='.toma_cadena("SELECT anterior FROM periodoscontables WHERE id=$id").'" title="'.toma_cadena("SELECT nombre FROM periodoscontables WHERE id=(SELECT anterior FROM periodoscontables WHERE id=$id)").'">&lt;</a> <a href="pyg.php" title="Todos los meses">^</a> <a href="pyg.php?muestra=1&id='.toma_cadena("SELECT id FROM periodoscontables WHERE anterior=$id").'" title="'.toma_cadena("SELECT nombre FROM periodoscontables WHERE anterior=$id").'">&gt;</a>';
      $query="SELECT ti.id||'&fechaini=$fechaini&fechafin=$fechafin',total.cuenta||' '||ti.descripcion AS subcuenta,total.valor AS debe, total.signo AS haber from tiposcuenta ti, (SELECT substr(ti.oficial||'',0,7) AS cuenta,sum(tc.valor) AS valor,tc.signo FROM tiposcuenta ti, transacciones t, transaccionescuenta tc WHERE tc.idtransaccion=t.id AND tc.idcuenta=ti.id and t.idperiodo=$id AND t.idestado=1 AND tc.idestado=1 AND (ti.oficial::text LIKE '4%' OR ti.oficial::text LIKE '5%') GROUP BY substr(ti.oficial||'',0,7),tc.signo) AS total WHERE total.cuenta=ti.oficial||'' ORDER BY cuenta, haber desc;";
      imprimetablacuenta("P y G - ".toma_cadena("SELECT nombre FROM periodoscontables WHERE id=$id"),"describetrans.php?muestra=9&id=%s",$query);
      print '<a href="pyg.php?muestra=1&id='.toma_cadena("SELECT anterior FROM periodoscontables WHERE id=$id").'" title="'.toma_cadena("SELECT nombre FROM periodoscontables WHERE id=(SELECT anterior FROM periodoscontables WHERE id=$id)").'">&lt;</a> <a href="pyg.php" title="Todos los meses">^</a> <a href="pyg.php?muestra=1&id='.toma_cadena("SELECT id FROM periodoscontables WHERE anterior=$id").'" title="'.toma_cadena("SELECT nombre FROM periodoscontables WHERE anterior=$id").'">&gt;</a>';
      break;
    default:
      break;
    }
  }
  else {
    $query="SELECT l1.id,l1.ingresos AS Ingresos,coalesce(l2.egresos,l1.egresos) AS Egresos  FROM (SELECT id,nombre AS ingresos,0 AS egresos,'4' AS cuenta FROM periodoscontables WHERE nombre LIKE '%$anio' AND nombre NOT LIKE 'Cancela%' UNION SELECT id,nombre AS ingresos,0 AS egresos,'5' AS cuenta FROM periodoscontables WHERE nombre LIKE '%$anio' AND nombre NOT LIKE 'Cancela%') AS l1 LEFT JOIN (SELECT pc.id,pc.nombre AS Ingresos,int4(@total.valor) AS Egresos,cuenta FROM periodoscontables pc, tiposcuenta ti, (SELECT substr(ti.oficial||'',0,2) AS cuenta,sum(tc.valor*tc.signo) AS valor,t.idperiodo AS periodo FROM tiposcuenta ti, transacciones t, transaccionescuenta tc WHERE tc.idtransaccion=t.id AND tc.idcuenta=ti.id AND t.idestado=1 AND tc.idestado=1 AND int4(substr(ti.oficial||'',0,2))>3 GROUP BY substr(ti.oficial||'',0,2),t.idperiodo) AS total WHERE total.cuenta=ti.oficial||'' AND pc.id=total.periodo AND to_char(pc.fechaini,'DD-YYYY')='01-'||'$anio' ORDER BY pc.anterior,int4(substr(ti.oficial||'',0,2))) AS l2 ON l1.id=l2.id AND l1.cuenta=l2.cuenta ORDER BY l1.id, coalesce(l2.cuenta,l1.cuenta)";
    //$query="SELECT pc.id,pc.nombre AS Ingresos,int4(@total.valor) AS Egresos FROM periodoscontables pc, tiposcuenta ti, (SELECT substr(ti.oficial||'',0,2) AS cuenta,sum(tc.valor*tc.signo) AS valor,t.idperiodo AS periodo FROM tiposcuenta ti, transacciones t, transaccionescuenta tc WHERE tc.idtransaccion=t.id AND tc.idcuenta=ti.id AND t.idestado=1 AND tc.idestado=1 AND int4(substr(ti.oficial||'',0,2))>3 GROUP BY substr(ti.oficial||'',0,2),t.idperiodo) AS total WHERE total.cuenta=ti.oficial||'' AND pc.id=total.periodo AND to_char(pc.fechaini,'DD-YYYY')='01-'||'$anio' ORDER BY pc.anterior,int4(substr(ti.oficial||'',0,2));";
    imprimetablapyg("P y G","pyg.php?muestra=1&id=%s",$query);
    //print "<p>Estos datos no son correctos del todo, depende de si se han hecho ingresos y egresos en los meses.  Hacer un join con una tabla con ceros ";
    //print $query;
  }
}
require "footer.php";
?>