<?php
require_once __DIR__.'/../../config/auth.php';
$proveedor=(int)($_GET['proveedor_id']??0);$desde=$_GET['desde']??'';$hasta=$_GET['hasta']??'';$detalle=($_GET['detalle_pagos']??'si')==='si';
$filtros=[];if($proveedor)$filtros[]="o.proveedor_id=$proveedor";if($desde)$filtros[]="o.fecha_obligacion>='".$conn->real_escape_string($desde)."'";if($hasta)$filtros[]="o.fecha_obligacion<='".$conn->real_escape_string($hasta)."'";$where=' WHERE '.($filtros?implode(' AND ',$filtros):'1=1');
$proveedores=$conn->query('SELECT id,nombre FROM proveedores ORDER BY nombre');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 Proveedor</h3>
<form class="row g-2 mb-3 no-print"><div class="col-md-3"><label>Proveedor</label><select class="form-select" name="proveedor_id"><option value="0">Todos</option><?php while($p=$proveedores->fetch_assoc()):?><option value="<?=$p['id']?>" <?=$proveedor==$p['id']?'selected':''?>><?=e($p['nombre'])?></option><?php endwhile;?></select></div><div class="col-md-2"><label>Desde</label><input class="form-control" type="date" name="desde" value="<?=e($desde)?>"></div><div class="col-md-2"><label>Hasta</label><input class="form-control" type="date" name="hasta" value="<?=e($hasta)?>"></div><div class="col-md-2"><label>Pagos</label><select class="form-select" name="detalle_pagos"><option value="si">Con detalle</option><option value="no" <?=!$detalle?'selected':''?>>Sin detalle</option></select></div><div class="col-md-2 d-flex align-items-end"><button class="btn btn-hm">Filtrar</button></div></form>
<?php if(!$detalle):$res=$conn->query("SELECT p.nombre proveedor,o.fecha_obligacion fecha,o.fecha_vencimiento,o.descripcion,o.monto,COALESCE(SUM(op.importe),0) pagado,o.monto-COALESCE(SUM(op.importe),0) saldo FROM obligaciones o JOIN proveedores p ON p.id=o.proveedor_id LEFT JOIN obligacion_pagos op ON op.obligacion_id=o.id $where GROUP BY o.id ORDER BY p.nombre,o.fecha_obligacion,o.id");?>
<div class="card card-hm"><div class="card-body table-responsive"><table class="table"><thead><tr><th>Fecha</th><th>Proveedor</th><th>Descripción</th><th>Vencimiento</th><th class="text-end">Obligación</th><th class="text-end">Pagado</th><th class="text-end">Saldo</th></tr></thead><tbody><?php $to=$tp=0;while($x=$res->fetch_assoc()):$to+=$x['monto'];$tp+=$x['pagado'];?><tr><td><?=e($x['fecha'])?></td><td><?=e($x['proveedor'])?></td><td><?=e($x['descripcion'])?></td><td><?=e($x['fecha_vencimiento'])?></td><td class="text-end"><?=numero_py($x['monto'])?></td><td class="text-end"><?=numero_py($x['pagado'])?></td><td class="text-end"><?=numero_py($x['saldo'])?></td></tr><?php endwhile;?></tbody><tfoot><tr><th colspan="4" class="text-end">Totales</th><th class="text-end"><?=numero_py($to)?></th><th class="text-end"><?=numero_py($tp)?></th><th class="text-end"><?=numero_py($to-$tp)?></th></tr></tfoot></table></div></div>
<?php else:$wp=$proveedor?" WHERE o.proveedor_id=$proveedor":' WHERE 1=1';if($desde)$wp.=" AND op.fecha_pago>='".$conn->real_escape_string($desde)."'";if($hasta)$wp.=" AND op.fecha_pago<='".$conn->real_escape_string($hasta)."'";$res=$conn->query("SELECT p.nombre proveedor,o.id,o.fecha_obligacion fecha,o.descripcion,o.monto obligacion,0 pago,0 orden FROM obligaciones o JOIN proveedores p ON p.id=o.proveedor_id $where UNION ALL SELECT p.nombre,o.id,op.fecha_pago,CONCAT('Pago - ',COALESCE(op.observacion,'')),0,op.importe,1 FROM obligacion_pagos op JOIN obligaciones o ON o.id=op.obligacion_id JOIN proveedores p ON p.id=o.proveedor_id $wp ORDER BY proveedor,fecha,id,orden");?>
<div class="card card-hm"><div class="card-body table-responsive"><table class="table"><thead><tr><th>Fecha</th><th>Proveedor</th><th>Descripción</th><th class="text-end">Obligación</th><th class="text-end">Pago</th></tr></thead><tbody><?php $to=$tp=0;while($x=$res->fetch_assoc()):$to+=$x['obligacion'];$tp+=$x['pago'];?><tr><td><?=e($x['fecha'])?></td><td><?=e($x['proveedor'])?></td><td><?=e($x['descripcion'])?></td><td class="text-end"><?=$x['obligacion']?numero_py($x['obligacion']):''?></td><td class="text-end"><?=$x['pago']?numero_py($x['pago']):''?></td></tr><?php endwhile;?></tbody><tfoot><tr><th colspan="3" class="text-end">Totales</th><th class="text-end"><?=numero_py($to)?></th><th class="text-end"><?=numero_py($tp)?></th></tr><tr><th colspan="4" class="text-end">Saldo</th><th class="text-end"><?=numero_py($to-$tp)?></th></tr></tfoot></table></div></div><?php endif;?></div></main><?php include __DIR__.'/../../includes/footer.php';?>
