<?php

include 'include/util.php';
print '<h1>Listado de ventas por clientes</h1>';
if (!isset($_REQUEST['impresion'])) {
    include 'include/botones_informe.php';
    $Opciones = array(array('valor' => 'clientes.razon', 'nombre' => 'Cliente'), array('valor' => 'cantidad', 'nombre' => 'Cantidad'), array('valor' => 'total', 'nombre' => 'Total'));
    include 'include/form_parametros.php';
} else {
    print '<h2>Desde el ' . $_REQUEST['fecha-inicio'] . ' al ' . $_REQUEST['fecha-fin'] . '</h2>';
}
$query = "\n        SELECT\n            clientes.razon,\n            SUM(ventas_detalle.cantidad) 'cantidad',\n            SUM(ventas_detalle.cantidad * ventas_detalle.precio) 'total' \n        FROM\n            ventas_detalle,\n            articulos,\n            clientes,\n            ventas \n        WHERE\n            ventas_detalle.venta IN (\n                SELECT\n                    ventas.codigo\n                FROM\n                    ventas\n                WHERE\n                    ventas.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00'\n                    AND\n                    ventas.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' \n            )  \n            AND\n            ventas_detalle.articulo = articulos.codigo\n            AND\n            ventas.cliente = clientes.codigo\n            AND\n            ventas_detalle.venta = ventas.codigo \n        GROUP BY\n            clientes.razon ";
if (isset($_REQUEST['filtro']) && !empty($_REQUEST['filtro']) && isset($_REQUEST['valor']) && !empty($_REQUEST['valor'])) {
    $query .= " HAVING " . $_REQUEST['filtro'] . " " . $_REQUEST['comparacion'] . " '" . $_REQUEST['valor'] . "";
    if ($_REQUEST['comparacion'] = 'LIKE') {
        $query .= "%";
    }
    $query .= "' ";
}
if (isset($_REQUEST['orden']) && isset($_REQUEST['direccion'])) {
    $query .= " ORDER BY " . $_REQUEST['orden'] . " " . $_REQUEST['direccion'];
}
$Registros = mysql_num_rows(mysql_query($query));
include_once 'include/cantidad_registros.php';
$NombreCampos = array('Cliente', 'Cantidad de artículos', 'Monto de las ventas');
$Alineacion = array('left', 'right', 'right');
$AnchoCelda = array('60%', '20%', '20%');
listadoLineal($query, $NombreCampos, $Alineacion, $AnchoCelda);
<?php

include 'include/util.php';
print '<h1>Listado de compras</h1>';
if (!isset($_REQUEST['impresion'])) {
    include 'include/botones_informe.php';
    include 'include/form_fechas.php';
} else {
    print '<h2>Desde el ' . $_REQUEST['fecha-inicio'] . ' al ' . $_REQUEST['fecha-fin'] . '</h2>';
}
$query = "\n        SELECT\n            compras.codigo\n        FROM\n            compras\n        WHERE\n            compras.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00'\n            AND\n            compras.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59'";
$Registros = mysql_num_rows(mysql_query($query));
include_once 'include/cantidad_registros.php';
$query1 = "\n        SELECT\n            LPAD(compras.codigo, 12, 0),\n            compras.factura, \n            CONCAT_WS(' ', DATE_FORMAT(compras.fecha, '%d/%m/%Y'),\n            DATE_FORMAT(compras.fecha, '%H:%i:%S')),\n            proveedores.razon, \n            CONCAT('\$', compras.monto) \n        FROM\n            compras,\n            proveedores \n        WHERE\n            proveedores.codigo = compras.proveedor \n            AND \n            compras.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00'\n            AND\n            compras.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' ";
$query2 = "\n        SELECT\n            LPAD(compras_detalle.articulo, 12, 0),\n            articulos.descripcion,\n            SUM(compras_detalle.cantidad),\n            SUM(compras_detalle.precio * compras_detalle.cantidad)  \n        FROM\n            compras_detalle,\n            articulos \n        WHERE\n            articulos.codigo = compras_detalle.articulo\n            AND\n            compras_detalle.compra = |*-*| \n        GROUP BY\n            compras_detalle.articulo";
$Etiquetas = array('Código de operación', 'Número de factura', 'Fecha', 'Proveedor', 'Monto');
$NombreCampos = array('Código', 'Descripción', 'Cantidad', 'Total');
$Alineacion = array('left', 'left', 'right', 'right');
$AnchoCelda = array('20%', '30%', '30%', '20%');
listadoDetalles($query1, $query2, $Etiquetas, $NombreCampos, $Alineacion, $AnchoCelda);
            $Data[$i]['value'] += $Compras[$IndiceCompra]['monto'];
            $IndiceCompra--;
        }
        if ($IndicePago >= 0 && !strcmp($Pagos[$IndicePago]['fecha'], rotateDate($Data[$i]['label']))) {
            $Data[$i]['value'] += $Pagos[$IndicePago]['monto'];
            $IndicePago--;
        }
        if ($IndiceCobro >= 0 && !strcmp($Cobros[$IndiceCobro]['fecha'], rotateDate($Data[$i]['label']))) {
            $Data[$i]['value'] -= $Cobros[$IndiceCobro]['monto'];
            $IndiceCobro--;
        }
        if ($IndiceCredito >= 0 && !strcmp($Creditos[$IndiceCredito]['fecha'], rotateDate($Data[$i]['label']))) {
            $Data[$i]['value'] -= $Creditos[$IndiceCredito]['monto'];
            $IndiceCredito--;
        }
        if ($IndiceDebito >= 0 && !strcmp($Debitos[$IndiceDebito]['fecha'], rotateDate($Data[$i]['label']))) {
            $Data[$i]['value'] += $Debitos[$IndiceDebito]['monto'];
            $IndiceDebito--;
        }
    } while ($i > 0);
    $Data = array_reverse($Data);
    $Datos = "";
    foreach ($Data as $Value) {
        $Datos .= $Value['value'] . ",";
    }
    $Datos = substr($Datos, 0, strlen($Datos) - 1);
    ?>

    <script>

        $(function () {
while ($Row = mysql_fetch_array($Result)) {
    array_push($Opciones, array('valor' => $Row[0], 'nombre' => $Row[1]));
}
include 'include/form_valor.php';
?>
    
</div>

<div id="grafico1" class="grafico">
    
    <!-- AQUI VA EL GRAFICO GENERADO -->

</div>

<div id="grafico2" class="grafico">
    
    <!-- AQUI VA EL GRAFICO GENERADO -->

</div>

<?php 
$ConsultaGrafico = "\n        SELECT\n            DATE_FORMAT(ventas.fecha, '%Y-%m-%d'), \n            ventas_detalle.cantidad, \n            ventas_detalle.precio \n        FROM\n            ventas_detalle,\n            ventas\n        WHERE \n            ventas_detalle.venta = ventas.codigo\n            AND \n            ventas.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00'\n            AND\n            ventas.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' \n            AND \n            ventas_detalle.articulo = " . $_REQUEST['valor'];
$TituloGrafico1 = 'Cantidad de artículos vendidos por fecha';
$TituloEjeX1 = 'Fecha';
$TituloEjeY1 = 'Cantidad';
$TituloData1 = 'Cantidad vendida';
$TituloGrafico2 = 'Monto facturado por fecha';
$TituloEjeX2 = 'Fecha';
$TituloEjeY2 = 'Monto';
$TituloData2 = 'Monto facturado';
include_once 'include/grafico_lineal_fechas_doble.php';
<?php

include 'include/util.php';
print '<h1>Listado de artículos comprados por cliente</h1>';
if (!isset($_REQUEST['impresion'])) {
    include 'include/botones_informe.php';
    include 'include/form_fechas.php';
} else {
    print '<h2>Desde el ' . $_REQUEST['fecha-inicio'] . ' al ' . $_REQUEST['fecha-fin'] . '</h2>';
}
$query1 = "\n        SELECT DISTINCT\n            LPAD(clientes.codigo, 12, 0),\n            clientes.razon\n        FROM\n            clientes,\n            ventas\n        WHERE\n            ventas.cliente = clientes.codigo\n            AND\n            ventas.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00'\n            AND\n            ventas.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' \n            ";
$query2 = "\n        SELECT\n            LPAD(articulos.codigo, 12, 0),\n            articulos.descripcion,\n            categorias.categoria, \n            SUM(ventas_detalle.cantidad),\n            SUM(ventas_detalle.cantidad * ventas_detalle.precio) \n        FROM\n            ventas_detalle,\n            ventas,\n            articulos,\n            categorias \n        WHERE\n            ventas_detalle.venta = ventas.codigo\n            AND \n            categorias.codigo = articulos.categoria \n            AND\n            ventas_detalle.articulo = articulos.codigo\n            AND\n            ventas.cliente = |*-*| \n            AND \n            ventas.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00'\n            AND\n            ventas.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' \n        GROUP BY\n            ventas_detalle.articulo";
$Registros = mysql_num_rows(mysql_query($query1));
include_once 'include/cantidad_registros.php';
$Etiquetas = array('Código', 'Razón social');
$NombreCampos = array('Código de artículo', 'Descripción', 'Categoría', 'Cantidad', 'Total');
$Alineacion = array('left', 'left', 'left', 'right', 'right');
$AnchoCelda = array('20%', '30%', '20%', '15%', '15%');
listadoDetalles($query1, $query2, $Etiquetas, $NombreCampos, $Alineacion, $AnchoCelda);
    include 'include/form_parametros.php';
} else {
    print '<h2>Desde el ' . $_REQUEST['fecha-inicio'] . ' al ' . $_REQUEST['fecha-fin'] . '</h2>';
}
$CriterioOrden = 'descripcion';
$query = "\n        SELECT\n            fondos.descripcion,\n            fondos_creditos.fecha,\n            fondos_creditos.monto,\n            'Crédito' \n        FROM \n            fondos,\n            fondos_creditos \n        WHERE \n            fondos.codigo = fondos_creditos.fondo \n            AND \n            fondos_creditos.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n            AND \n            fondos_creditos.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' ";
$query .= criterioFiltro();
$query .= " UNION\n        \n        SELECT\n            fondos.descripcion,\n            fondos_debitos.fecha,\n            fondos_debitos.monto,\n            'Débito'  \n        FROM \n            fondos,\n            fondos_debitos \n        WHERE \n            fondos.codigo = fondos_debitos.fondo \n            AND \n            fondos_debitos.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n            AND \n            fondos_debitos.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' ";
$query .= criterioFiltro();
$query .= " UNION\n        \n        SELECT\n            fondos.descripcion,\n            cobros.fecha,\n            cobros.monto,\n            'Cobro a cliente'  \n        FROM \n            fondos,\n            cobros \n        WHERE \n            fondos.codigo = cobros.fondo \n            AND \n            cobros.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n            AND \n            cobros.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' ";
$query .= criterioFiltro();
$query .= " UNION\n        \n        SELECT\n            fondos.descripcion,\n            pagos.fecha,\n            pagos.monto,\n            'Pago a proveedor'  \n        FROM \n            fondos,\n            pagos \n        WHERE \n            fondos.codigo = pagos.fondo \n            AND \n            pagos.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n            AND \n            pagos.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59'  ";
$query .= criterioFiltro();
$query .= " UNION\n        \n        SELECT\n            fondos.descripcion,\n            compras.fecha,\n            compras.monto,\n            'Compra a proveedor'  \n        FROM \n            fondos,\n            compras \n        WHERE \n            fondos.codigo = compras.fondo \n            AND \n            compras.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n            AND \n            compras.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59'  ";
$query .= criterioFiltro();
$query .= " UNION\n        \n        SELECT\n            fondos.descripcion,\n            ventas.fecha,\n            ventas.monto,\n            'Venta a cliente'  \n        FROM \n            fondos,\n            ventas \n        WHERE \n            fondos.codigo = ventas.fondo \n            AND \n            ventas.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n            AND \n            ventas.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' \n        ";
include_once 'include/orden_informe.php';
$Registros = mysql_num_rows(mysql_query($query));
include_once 'include/cantidad_registros.php';
$NombreCampos = array('Fondo', 'Fecha', 'Monto', 'Detalle');
$Alineacion = array('left', 'center', 'right', 'center');
$AnchoCelda = array('35%', '20%', '15%', '30%');
listadoLineal($query, $NombreCampos, $Alineacion, $AnchoCelda);
function criterioFiltro()
{
    $query = "";
    if (isset($_REQUEST['filtro']) && !empty($_REQUEST['filtro']) && isset($_REQUEST['valor']) && !empty($_REQUEST['valor'])) {
        $query .= " AND " . $_REQUEST['filtro'] . " " . $_REQUEST['comparacion'] . " '" . $_REQUEST['valor'] . "";
        if ($_REQUEST['comparacion'] == 'LIKE') {
            $query .= "%";
        }
<?php

/*
 * PERMITE CREAR UN GRAFICO EN LA PANTALLA.
 * 
 * $ConsultaGrafico contiene la consulta SQL con los datos:
 * 
 *      Fecha
 *      Parametro grafico 1
 *      Parametro grafico 2
 */
$FechaInicio = date(rotateDate($_REQUEST['fecha-inicio']));
$FechaFin = date(rotateDate($_REQUEST['fecha-fin']));
$Intervalo = strtotime($FechaFin) - strtotime($FechaInicio);
if ($Intervalo < 0) {
    return;
}
$Result = mysql_query($ConsultaGrafico);
if (!$Result) {
    sql_error_msg();
    return;
}
if (mysql_numrows($Result) > 0) {
    $Row = mysql_fetch_array($Result);
    $i = 0;
    $Fecha = strtotime($FechaInicio);
    $Fin = strtotime($FechaFin);
    $Data1 = "";
    $Data2 = "";
    while ($Fecha <= $Fin) {
        if ($i > 0) {
<?php

include 'include/util.php';
print '<h1>Listado de compras por categorías</h1>';
if (!isset($_REQUEST['impresion'])) {
    include 'include/botones_informe.php';
    $Opciones = array(array('valor' => 'categorias.categoria', 'nombre' => 'Categoría'), array('valor' => 'cantidad', 'nombre' => 'Cantidad'), array('valor' => 'total', 'nombre' => 'Total'));
    include 'include/form_parametros.php';
} else {
    print '<h2>Desde el ' . $_REQUEST['fecha-inicio'] . ' al ' . $_REQUEST['fecha-fin'] . '</h2>';
}
$query = "\n        SELECT\n            categorias.categoria,\n            SUM(compras_detalle.cantidad) 'cantidad',\n            SUM(compras_detalle.cantidad * compras_detalle.precio) 'total'\n        FROM\n            compras_detalle,\n            articulos,\n            categorias\n        WHERE\n            compras_detalle.compra IN (\n                SELECT\n                    compras.codigo\n                FROM\n                    compras\n                WHERE\n                    compras.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00'\n                    AND\n                    compras.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' \n            )  \n            AND\n            compras_detalle.articulo = articulos.codigo\n            AND\n            articulos.categoria = categorias.codigo \n        GROUP BY \n            categorias.categoria ";
if (isset($_REQUEST['filtro']) && !empty($_REQUEST['filtro']) && isset($_REQUEST['valor']) && !empty($_REQUEST['valor'])) {
    $query .= " HAVING " . $_REQUEST['filtro'] . " " . $_REQUEST['comparacion'] . " '" . $_REQUEST['valor'] . "";
    if ($_REQUEST['comparacion'] = 'LIKE') {
        $query .= "%";
    }
    $query .= "' ";
}
if (isset($_REQUEST['orden']) && isset($_REQUEST['direccion'])) {
    $query .= " ORDER BY " . $_REQUEST['orden'] . " " . $_REQUEST['direccion'];
}
$Registros = mysql_num_rows(mysql_query($query));
include_once 'include/cantidad_registros.php';
$NombreCampos = array('Categoría', 'Cantidad de artículos', 'Monto de las compras');
$Alineacion = array('left', 'right', 'right');
$AnchoCelda = array('40%', '30%', '30%');
listadoLineal($query, $NombreCampos, $Alineacion, $AnchoCelda);
    sql_error_msg();
    return;
}
if (mysql_numrows($Result) > 0) {
    print '<h2 class="titulo-grafico">Los diez mayores clientes</h2>';
    print '<div id="mayores-clientes" class="lista-tabla">';
    $i = 0;
    $Data = array();
    while ($Row = mysql_fetch_array($Result)) {
        $Data[$i]['codigo'] = $Row[0];
        $Data[$i]['razon'] = $Row[1];
        $Data[$i]['monto'] = $Row[2];
        $Data[$i]['porcentaje'] = 0;
        $i++;
    }
    $query = "\n                SELECT\n                    SUM(ventas.monto)\n                FROM\n                    ventas \n                WHERE\n                    ventas.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00'\n                    AND\n                    ventas.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59'";
    $Result = mysql_query($query);
    if (!$Result) {
        sql_error_msg();
        return;
    }
    if (mysql_numrows($Result) > 0) {
        $Row = mysql_fetch_array($Result);
        $Tabla = '<table class="mini-listado" cellpadding="0" cellspacing="0">
                    <thead>
                        <tr>
                            <th>Código</th>
                            <th>Razón social</th>
                            <th>Monto comprado</th>
                            <th>Porcentaje del total</th>
                        </tr>
    print '<h1>$' . number_format($Row[0] / $Intervalo / (24 * 60 * 60), 2) . ' por día</h1>';
}
?>
        
    </div>
    
</div>

<div>
    
    <div id="promedio-pago" class="totales-informe total-derecha">
    
        <h3 class="titulo-total">Promedio de pagos</h3>
        
        <?php 
$ConsultaGrafico = "\n                SELECT  \n                    SUM(pagos.monto)\n                FROM \n                    pagos, \n                    compras \n                WHERE \n                    pagos.operacion = compras.codigo \n                    AND \n                    compras.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n                    AND \n                    compras.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59'";
$Result = mysql_query($ConsultaGrafico);
if ($Result) {
    $Row = mysql_fetch_array($Result);
    print '<h1>$' . number_format($Row[0] / $Intervalo / (24 * 60 * 60), 2) . ' por día</h1>';
}
?>
        
    </div>
    
</div>

<div>
        
    <?php 
$query = "\n            SELECT\n                LPAD(articulos.codigo, 12, 0),\n                articulos.descripcion,\n                categorias.categoria,\n                proveedores.razon,\n                SUM(compras_detalle.cantidad * compras_detalle.precio) 'monto'\n            FROM\n                articulos,\n                categorias,\n                proveedores,\n                compras_detalle,\n                compras \n            WHERE\n                articulos.categoria = categorias.codigo\n                AND\n                articulos.proveedor = proveedores.codigo\n                AND \n                articulos.codigo = compras_detalle.articulo\n                AND\n                compras.codigo = compras_detalle.compra\n                AND\n                compras.fecha >= '" . date('Y-m-d', $FechaInicio) . " 00:00:00' \n                AND\n                compras.fecha <= '" . date('Y-m-d', $FechaFin) . " 23:59:59' \n            GROUP BY\n                compras_detalle.articulo \n            ORDER BY\n                monto DESC\n            LIMIT\n                0, 10";
 */
$i = 0;
$Data = array();
/* PARA PHP >= 5.3.0:
   
   $FechaInicio = date_create(rotateDate($_REQUEST['fecha-inicio']));
   $FechaFin = date_create(rotateDate($_REQUEST['fecha-fin']));
   
   $Intervalo = $FechaFin->diff($FechaInicio);
   
   if (strcmp($Intervalo->format('%R'), '-')) {
       return;
   }*/
/* PARA PHP < 5.3.0: */
$FechaInicio = date(rotateDate($_REQUEST['fecha-inicio']) . '00:00:00');
$FechaFin = date(rotateDate($_REQUEST['fecha-fin']) . '00:00:00');
$Intervalo = strtotime($FechaFin) - strtotime($FechaInicio);
if ($Intervalo < 0) {
    return;
}
/* FIN FECHAS */
$Result = mysql_query($ConsultaGrafico);
if (!$Result) {
    sql_error_msg();
    return;
}
if (mysql_numrows($Result) > 0) {
    $Row = mysql_fetch_array($Result);
    $Fecha = strtotime($FechaInicio);
    $Fin = strtotime($FechaFin);
    while ($Fecha <= $Fin) {
<?php

include 'include/util.php';
print '<h1>Listado de facturas por cobrar a clientes</h1>';
if (!isset($_REQUEST['impresion'])) {
    include 'include/botones_informe.php';
    $Opciones = array(array('valor' => 'ventas.codigo', 'nombre' => 'Código'), array('valor' => 'ventas.factura', 'nombre' => 'Factura'), array('valor' => 'ventas.fecha', 'nombre' => 'Fecha'), array('valor' => 'clientes.razon', 'nombre' => 'Cliente'), array('valor' => 'ventas.monto', 'nombre' => 'Monto'));
    include 'include/form_parametros.php';
}
$query = "\n        SELECT\n            LPAD(ventas.codigo, 12, 0),\n            LPAD(ventas.factura, 12, 0),\n            ventas.fecha,\n            clientes.razon,\n            ventas.monto  \n        FROM \n            ventas,\n            clientes \n        WHERE \n            ventas.cliente = clientes.codigo \n            AND \n            ventas.saldo > 0  \n            AND \n            ventas.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n            AND \n            ventas.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' ";
$CriterioOrden = 'ventas.codigo';
include_once 'include/orden_informe.php';
$Registros = mysql_num_rows(mysql_query($query));
include_once 'include/cantidad_registros.php';
$NombreCampos = array('Código de la operación', 'Número de factura', 'Fecha de facturación', 'Razón social', 'Monto');
$Alineacion = array('left', 'left', 'left', 'left', 'right');
$AnchoCelda = array('15%', '15%', '20%', '40%', '10%');
listadoLineal($query, $NombreCampos, $Alineacion, $AnchoCelda);
<?php

include 'include/util.php';
print '<h1>Listado de facturas por pagar a proveedores</h1>';
if (!isset($_REQUEST['impresion'])) {
    include 'include/botones_informe.php';
    $Opciones = array(array('valor' => 'compras.codigo', 'nombre' => 'Código'), array('valor' => 'compras.factura', 'nombre' => 'Factura'), array('valor' => 'compras.fecha', 'nombre' => 'Fecha'), array('valor' => 'proveedores.razon', 'nombre' => 'Proveedor'), array('valor' => 'compras.monto', 'nombre' => 'Monto'));
    include 'include/form_parametros.php';
}
$query = "\n        SELECT\n            LPAD(compras.codigo, 12, 0),\n            LPAD(compras.factura, 12, 0),\n            compras.fecha,\n            proveedores.razon,\n            compras.monto  \n        FROM \n            compras,\n            proveedores \n        WHERE \n            compras.proveedor = proveedores.codigo \n            AND \n            compras.saldo > 0  \n            AND \n            compras.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n            AND \n            compras.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' ";
$CriterioOrden = 'compras.codigo';
include_once 'include/orden_informe.php';
$Registros = mysql_num_rows(mysql_query($query));
include_once 'include/cantidad_registros.php';
$NombreCampos = array('Código de la operación', 'Número de factura', 'Fecha de facturación', 'Razón social', 'Monto');
$Alineacion = array('left', 'left', 'left', 'left', 'right');
$AnchoCelda = array('15%', '15%', '20%', '40%', '10%');
listadoLineal($query, $NombreCampos, $Alineacion, $AnchoCelda);
<?php

include 'include/util.php';
print '<h1>Listado de artículos que no se han vendido</h1>';
if (!isset($_REQUEST['impresion'])) {
    include 'include/botones_informe.php';
    $Opciones = array(array('valor' => 'articulos.codigo', 'nombre' => 'Código'), array('valor' => 'articulos.descripcion', 'nombre' => 'Descripción'), array('valor' => 'categorias.categoria', 'nombre' => 'Categoría'), array('valor' => 'proveedores.razon', 'nombre' => 'Proveedor'));
    include 'include/form_parametros.php';
} else {
    print '<h2>Desde el ' . $_REQUEST['fecha-inicio'] . ' al ' . $_REQUEST['fecha-fin'] . '</h2>';
}
$query = "\n        SELECT\n            LPAD(articulos.codigo, 12, 0),\n            articulos.descripcion,\n            categorias.categoria,\n            proveedores.razon \n        FROM\n            articulos,\n            categorias,\n            proveedores\n        WHERE\n            categorias.codigo = articulos.categoria \n            AND \n            proveedores.codigo = articulos.proveedor \n            AND  \n            articulos.codigo NOT IN (\n                SELECT\n                    ventas_detalle.articulo\n                FROM\n                    ventas_detalle,\n                    ventas\n                WHERE\n                    ventas_detalle.venta = ventas.codigo \n                    AND\n                    ventas.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . "' \n                    AND\n                    ventas.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . "' \n            ) ";
if (isset($_REQUEST['filtro']) && !empty($_REQUEST['filtro']) && isset($_REQUEST['valor']) && !empty($_REQUEST['valor'])) {
    $query .= " AND " . $_REQUEST['filtro'] . " " . $_REQUEST['comparacion'] . " '" . $_REQUEST['valor'] . "";
    if ($_REQUEST['comparacion'] = 'LIKE') {
        $query .= "%";
    }
    $query .= "' ";
}
$query .= " ORDER BY " . $_REQUEST['orden'];
if (isset($_REQUEST['direccion'])) {
    $query .= " " . $_REQUEST['direccion'];
}
if (isset($_REQUEST['orden']) && $_REQUEST['orden'] != 'articulos.codigo') {
    $query .= ", articulos.codigo";
}
$Registros = mysql_num_rows(mysql_query($query));
include_once 'include/cantidad_registros.php';
$NombreCampos = array('Código', 'Descripción', 'Categoría', 'Proveedor');
$Alineacion = array('left', 'left', 'left', 'left');
$AnchoCelda = array('20%', '30%', '20%', '20%', '10%');
$i = 0;
while ($Row = mysql_fetch_array($Result)) {
    $Ventas[$i]['fecha'] = rotateDate($Row[0]);
    $Ventas[$i]['monto'] = $Row[1];
    $i++;
}
$query = "\n        SELECT\n            DATE_FORMAT(cobros.fecha, '%Y-%m-%d') orden, \n            SUM(cobros.monto) \n        FROM\n            cobros\n        WHERE \n            cobros.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00'\n            AND\n            cobros.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' \n            AND \n            cobros.cliente = " . $_REQUEST['valor'] . "\n        GROUP BY\n            orden";
$Result = mysql_query($query);
if (!$Result) {
    sql_error_msg();
    return;
}
$Pagos = array();
$i = 0;
while ($Row = mysql_fetch_array($Result)) {
    $Pagos[$i]['fecha'] = rotateDate($Row[0]);
    $Pagos[$i]['monto'] = $Row[1];
    $i++;
}
$IndiceVenta = sizeof($Ventas) - 1;
$IndicePago = sizeof($Pagos) - 1;
$i = $Intervalo->format('%a') - 1;
$Data = array();
$Data[$i] = $Saldo[0];
do {
    $i--;
    $Fecha->sub(new DateInterval('P1D'));
    $Data[$i] = $Data[$i + 1];
    if ($IndiceVenta >= 0 && !strcmp($Ventas[$IndiceVenta]['fecha'], $Fecha->format('d-m-Y'))) {
        $Data[$i] -= $Ventas[$IndiceVenta]['monto'];
        $IndiceVenta--;
<?php

include 'include/util.php';
print '<h1>Listado de ventas</h1>';
if (!isset($_REQUEST['impresion'])) {
    include 'include/botones_informe.php';
    include 'include/form_fechas.php';
} else {
    print '<h2>Desde el ' . $_REQUEST['fecha-inicio'] . ' al ' . $_REQUEST['fecha-fin'] . '</h2>';
}
$query = "\n        SELECT\n            LPAD(ventas.codigo, 12, 0),\n            ventas.factura, \n            CONCAT_WS(' ', DATE_FORMAT(ventas.fecha, '%d/%m/%Y'),\n            DATE_FORMAT(ventas.fecha, '%H:%i:%S')),\n            clientes.razon,\n            ventas.monto \n        FROM\n            ventas,\n            clientes \n        WHERE\n            clientes.codigo = ventas.cliente \n            AND \n            ventas.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00'\n            AND\n            ventas.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' ";
$Registros = mysql_num_rows(mysql_query($query));
include_once 'include/cantidad_registros.php';
$NombreCampos = array('Código', 'Factura', 'Fecha', 'Cliente', 'Total');
$Alineacion = array('left', 'left', 'center', 'left', 'right');
$AnchoCelda = array('15%', '15%', '20%', '40%', '10%');
listadoLineal($query, $NombreCampos, $Alineacion, $AnchoCelda);
function listadoLineal($query, $NombreCampos, $Alineacion = null, $AnchoCelda = null)
{
    $return = mysql_query($query);
    if (!$return) {
        print "<p>Ha ocurrido un error al intentar consultar la información en la base de datos.</p>";
        print "<p>ERROR EN LA CONSULTA:\n\n" . $query . "\n\n" . htmlspecialchars_decode(mysql_error()) . "</p>";
        return;
    }
    if (mysql_num_rows($return) < 1) {
        print "<p class='info'>La consulta no contiene datos.</p>";
        return;
    }
    $Limit = count($NombreCampos);
    print "<table class='tabla-datos' cellspacing='0' cellpadding='2'>";
    print "<thead class='ui-widget-header'><tr>";
    for ($i = 0; $i < $Limit; $i++) {
        print "<th class='header'>" . $NombreCampos[$i] . "</th>";
    }
    print "</tr></thead>";
    $Toggle = 0;
    while ($Row = mysql_fetch_array($return)) {
        print '<tr class="';
        $Toggle++ % 2 == 0 ? print "even" : (print "odd");
        print '">';
        for ($i = 0; $i < $Limit; $i++) {
            print "<td";
            if (isset($Alineacion)) {
                print " align='" . $Alineacion[$i] . "'";
            }
            if (isset($AnchoCelda)) {
                print " width='" . $AnchoCelda[$i] . "'";
            }
            $Field = $Row[$i];
            if (mysql_field_type($return, $i) == "datetime") {
                $Date = split(" ", $Field);
                $Field = rotateDate($Date[0]) . " " . $Date[1];
            }
            print ">" . $Field . "</td>";
        }
        print "</tr>";
    }
    print "<tfoot class='ui-widget-header'><tr>";
    for ($i = 0; $i < $Limit; $i++) {
        print "<td></td>";
    }
    print "</tr></tfoot></table><br>";
}
<?php

include 'include/util.php';
print '<h1>Listado de pagos realizados a proveedores</h1>';
if (!isset($_REQUEST['impresion'])) {
    include 'include/botones_informe.php';
    $Opciones = array(array('valor' => 'pagos.codigo', 'nombre' => 'Código'), array('valor' => 'clientes.razon', 'nombre' => 'Cliente'), array('valor' => 'usuarios.apodo', 'nombre' => 'Usuario'), array('valor' => 'pagos.operacion', 'nombre' => 'Operación'), array('valor' => 'fondos.descripcion', 'nombre' => 'Fondo'), array('valor' => 'pagos.monto', 'nombre' => 'Monto'));
    include 'include/form_parametros.php';
}
$query = "\n        SELECT\n            LPAD(pagos.codigo, 12, 0),\n            CONCAT_WS(' ', DATE_FORMAT(pagos.fecha, '%d/%m/%Y'), DATE_FORMAT(pagos.fecha, '%H:%i:%S')),\n            proveedores.razon,\n            usuarios.apodo,\n            LPAD(pagos.operacion, 12, 0),\n            fondos.descripcion,\n            pagos.monto \n        FROM\n            pagos,\n            usuarios,\n            proveedores,\n            fondos\n        WHERE\n            pagos.proveedor = proveedores.codigo \n            AND \n            pagos.usuario = usuarios.codigo \n            AND \n            pagos.fondo = fondos.codigo \n            AND \n            pagos.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n            AND \n            pagos.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' ";
$CriterioOrden = 'pagos.codigo';
include_once 'include/orden_informe.php';
$Registros = mysql_num_rows(mysql_query($query));
include_once 'include/cantidad_registros.php';
$NombreCampos = array('Código', 'Fecha', 'Proveedor', 'Usuario', 'Operación', 'Fondo', 'Monto');
$Alineacion = array('left', 'left', 'left', 'left', 'left', 'left', 'right');
$AnchoCelda = array('10%', '20%', '25%', '10%', '10%', '15%', '10%');
listadoLineal($query, $NombreCampos, $Alineacion, $AnchoCelda);
<?php

include 'include/util.php';
print '<h1>Ranking de ventas de artículos</h1>';
if (!isset($_REQUEST['impresion'])) {
    include 'include/botones_informe.php';
    $Opciones = array(array('valor' => 'articulos.codigo', 'nombre' => 'Código'), array('valor' => 'articulos.descripcion', 'nombre' => 'Descripción'), array('valor' => 'categorias.categoria', 'nombre' => 'Categoría'), array('valor' => 'proveedores.razon', 'nombre' => 'Proveedor'), array('valor' => 'cantidad', 'nombre' => 'Cantidad'));
    include 'include/form_parametros.php';
} else {
    print '<h2>Desde el ' . $_REQUEST['fecha-inicio'] . ' al ' . $_REQUEST['fecha-fin'] . '</h2>';
}
$query = "\n        SELECT\n            LPAD(articulos.codigo, 12, 0),\n            articulos.descripcion,\n            categorias.categoria,\n            proveedores.razon, \n            SUM(ventas_detalle.cantidad) 'cantidad'\n        FROM\n            articulos,\n            categorias,\n            proveedores,\n            ventas_detalle,\n            ventas \n        WHERE\n            categorias.codigo = articulos.categoria \n            AND \n            proveedores.codigo = articulos.proveedor \n            AND\n            articulos.codigo = ventas_detalle.articulo\n            AND\n            ventas.codigo = ventas_detalle.venta\n            AND\n            ventas.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n            AND\n            ventas.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' ";
if (isset($_REQUEST['filtro']) && !empty($_REQUEST['filtro']) && isset($_REQUEST['valor']) && !empty($_REQUEST['valor'])) {
    $query .= " AND " . $_REQUEST['filtro'] . " " . $_REQUEST['comparacion'] . " '" . $_REQUEST['valor'] . "";
    if ($_REQUEST['comparacion'] = 'LIKE') {
        $query .= "%";
    }
    $query .= "' ";
}
$query .= " GROUP BY ventas_detalle.articulo ";
$query .= " ORDER BY " . $_REQUEST['orden'];
if (isset($_REQUEST['direccion'])) {
    $query .= " " . $_REQUEST['direccion'];
}
if (isset($_REQUEST['orden']) && $_REQUEST['orden'] != 'articulos.codigo') {
    $query .= ", articulos.codigo";
}
$Registros = mysql_num_rows(mysql_query($query));
include_once 'include/cantidad_registros.php';
$NombreCampos = array('Código', 'Descripción', 'Categoría', 'Proveedor', 'Vendidos');
$Alineacion = array('left', 'left', 'left', 'left', 'right');
$Row = mysql_fetch_array($Result);
print '<h1>$' . number_format($Row[0] / $Intervalo / (24 * 60 * 60), 2) . ' por día</h1>';
?>
        
    </div>
    
</div>

<div>
    
    <div id="total-utilidades" class="totales-informe total-izquierda">
    
        <h3 class="titulo-total">Utilidades</h3>
        
        <?php 
$ConsultaGrafico = "\n                SELECT\n                    SUM(ventas_detalle.precio - articulos.costo)\n                FROM\n                    ventas,\n                    ventas_detalle,\n                    articulos \n                WHERE \n                    articulos.codigo = ventas_detalle.articulo \n                    AND \n                    ventas_detalle.venta = ventas.codigo \n                    AND \n                    ventas.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00' \n                    AND \n                    ventas.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59'";
$Result = mysql_query($ConsultaGrafico);
$Row = mysql_fetch_array($Result);
$Utilidad = $Row[0];
print '<h1>$' . $Utilidad . '</h1>';
?>
        
    </div>
    
</div>

<div>
    
    <div id="promedio-utilidades" class="totales-informe total-derecha">
    
        <h3 class="titulo-total">Porcentaje de utilidad</h3>
    
    <?php 
include 'include/util.php';
$Opciones = array();
$query = "SELECT codigo, razon FROM clientes ORDER BY razon";
$Result = mysql_query($query);
if (!$Result) {
    sql_error_msg();
    return;
}
while ($Row = mysql_fetch_array($Result)) {
    array_push($Opciones, array('valor' => $Row[0], 'nombre' => $Row[1]));
}
include 'include/form_valor.php';
?>
    
</div>

<div id="grafico" class="grafico">

    <!--    -->

</div>

<?php 
$ConsultaGrafico = "\n        SELECT\n            DATE_FORMAT(cobros.fecha, '%Y-%m-%d'), \n            cobros.monto \n        FROM\n            cobros\n        WHERE \n            cobros.fecha >= '" . rotateDate($_REQUEST['fecha-inicio']) . " 00:00:00'\n            AND\n            cobros.fecha <= '" . rotateDate($_REQUEST['fecha-fin']) . " 23:59:59' \n            AND \n            cobros.cliente = " . $_REQUEST['valor'];
$TituloGrafico = 'Pagos realizados por fecha';
$TituloEjeX = 'Fecha';
$TituloEjeY = 'Monto';
$TituloData = 'Monto pagado';
include_once 'include/grafico_lineal_fechas.php';