<?php
require_once __DIR__.'/../../config/auth.php';
$desde=$_GET['desde']??'';$hasta=$_GET['hasta']??'';$fd=[];$fo=[];if($desde){$d=$conn->real_escape_string($desde);$fd[]="COALESCE(f.fecha_factura,DATE(f.creado_en))>='$d'";$fo[]="o.fecha_vencimiento>='$d'";}if($hasta){$h=$conn->real_escape_string($hasta);$fd[]="COALESCE(f.fecha_factura,DATE(f.creado_en))<='$h'";$fo[]="o.fecha_vencimiento<='$h'";}$wf=$fd?' AND '.implode(' AND ',$fd):'';$wo=$fo?' AND '.implode(' AND ',$fo):'';
$res=$conn->query("SELECT COALESCE(f.fecha_factura,DATE(f.creado_en)) fecha,c.nombre tercero,COALESCE(NULLIF(f.observacion,''),CONCAT('Factura ',COALESCE(f.nro_factura,'sin número'))) detalle,f.importe-COALESCE((SELECT SUM(fp.importe) FROM factura_pagos fp WHERE fp.factura_id=f.id),0) a_cobrar,0 a_pagar FROM facturas f JOIN clientes c ON c.id=f.cliente_id WHERE f.importe-COALESCE((SELECT SUM(fp.importe) FROM factura_pagos fp WHERE fp.factura_id=f.id),0)>0 $wf UNION ALL SELECT o.fecha_vencimiento,p.nombre,o.descripcion,0,o.monto-COALESCE((SELECT SUM(op.importe) FROM obligacion_pagos op WHERE op.obligacion_id=o.id),0) FROM obligaciones o JOIN proveedores p ON p.id=o.proveedor_id WHERE o.monto-COALESCE((SELECT SUM(op.importe) FROM obligacion_pagos op WHERE op.obligacion_id=o.id),0)>0 $wo ORDER BY fecha,tercero");
include __DIR__.'/../../includes/header.php';include __DIR__.'/../../includes/sidebar.php';
?>
<main class="main"><?php include __DIR__.'/../../includes/topbar.php';?><div class="content"><h3 class="page-title">Extracto Consolidado</h3><p class="text-muted">Facturas por fecha de emisión y obligaciones por fecha de vencimiento. Solo saldos pendientes.</p>
<form class="row g-2 mb-3 no-print"><div class="col-md-3"><label>Desde</label><input class="form-control" type="date" name="desde" value="<?=e($desde)?>"></div><div class="col-md-3"><label>Hasta</label><input class="form-control" type="date" name="hasta" value="<?=e($hasta)?>"></div><div class="col-md-2 d-flex align-items-end"><button class="btn btn-hm">Filtrar</button></div></form>
<div class="card card-hm"><div class="card-body table-responsive"><table class="table"><thead><tr><th>Fecha</th><th>Cliente o proveedor</th><th>Observación / descripción</th><th class="text-end">A cobrar</th><th class="text-end">A pagar</th></tr></thead><tbody><?php $tc=$tp=0;while($x=$res->fetch_assoc()):$tc+=$x['a_cobrar'];$tp+=$x['a_pagar'];?><tr><td><?=e($x['fecha'])?></td><td><?=e($x['tercero'])?></td><td><?=e($x['detalle'])?></td><td class="text-end"><?=$x['a_cobrar']?numero_py($x['a_cobrar']):''?></td><td class="text-end"><?=$x['a_pagar']?numero_py($x['a_pagar']):''?></td></tr><?php endwhile;?></tbody><tfoot><tr><th colspan="3" class="text-end">Totales</th><th class="text-end"><?=numero_py($tc)?></th><th class="text-end"><?=numero_py($tp)?></th></tr></tfoot></table></div></div></div></main><?php include __DIR__.'/../../includes/footer.php';?>
