<?php
require_once __DIR__.'/../../config/auth.php';
$id=filter_input(INPUT_GET,'id',FILTER_VALIDATE_INT)?:0;$accion=$_GET['accion']??'lista';$error='';
$d=['codigo'=>'','nombre'=>'','tipo_documento'=>'RUC','documento'=>'','email'=>'','telefono'=>'','direccion'=>'','ciudad'=>'','contacto'=>'','banco'=>'','cuenta'=>'','alias_cuenta'=>'','estado'=>'Activo','observaciones'=>''];
if($id){$s=$conn->prepare('SELECT * FROM proveedores WHERE id=?');$s->bind_param('i',$id);$s->execute();$d=$s->get_result()->fetch_assoc()?:$d;}
if($_SERVER['REQUEST_METHOD']==='POST'){
 $id=(int)($_POST['id']??0);foreach(array_keys($d) as $k)$d[$k]=limpiar($_POST[$k]??'');
 if($d['codigo']===''||$d['nombre']==='')$error='Código y nombre son obligatorios.';
 if(!$error){$d['documento']=$d['documento']===''?null:$d['documento'];$sql=$id?'UPDATE proveedores SET codigo=?,nombre=?,tipo_documento=?,documento=?,email=?,telefono=?,direccion=?,ciudad=?,contacto=?,banco=?,cuenta=?,alias_cuenta=?,estado=?,observaciones=? WHERE id=?':'INSERT INTO proveedores(codigo,nombre,tipo_documento,documento,email,telefono,direccion,ciudad,contacto,banco,cuenta,alias_cuenta,estado,observaciones) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)';
  $s=$conn->prepare($sql);if($id)$s->bind_param('ssssssssssssssi',$d['codigo'],$d['nombre'],$d['tipo_documento'],$d['documento'],$d['email'],$d['telefono'],$d['direccion'],$d['ciudad'],$d['contacto'],$d['banco'],$d['cuenta'],$d['alias_cuenta'],$d['estado'],$d['observaciones'],$id);else $s->bind_param('ssssssssssssss',$d['codigo'],$d['nombre'],$d['tipo_documento'],$d['documento'],$d['email'],$d['telefono'],$d['direccion'],$d['ciudad'],$d['contacto'],$d['banco'],$d['cuenta'],$d['alias_cuenta'],$d['estado'],$d['observaciones']);
  if($s->execute()){registrar_auditoria($conn,$id?'UPDATE':'INSERT','proveedores',$id?:$s->insert_id,'Gestión de proveedor');header('Location: /HM/modules/movimientos/proveedores.php');exit;}$error='No se pudo guardar. Verifique que el código y documento no estén repetidos.';
 }}
$lista=$conn->query('SELECT * 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">
<?php if($accion==='lista'):?><div class="d-flex justify-content-between align-items-center mb-4"><div><h3 class="page-title mb-1">Proveedores</h3><p class="text-muted mb-0">Datos comerciales, contactos y cuentas bancarias.</p></div><a class="btn btn-hm" href="?accion=nuevo"><i class="fa fa-plus me-1"></i>Nuevo proveedor</a></div>
<div class="card card-hm"><div class="card-body"><input class="form-control mb-3" id="buscar" placeholder="Buscar proveedor"><div class="table-responsive"><table class="table table-hover" id="tabla"><thead><tr><th>Código</th><th>Nombre</th><th>Documento</th><th>Email</th><th>Teléfono</th><th>Contacto</th><th>Estado</th><th></th></tr></thead><tbody><?php while($f=$lista->fetch_assoc()):?><tr><td><?=e($f['codigo'])?></td><td><?=e($f['nombre'])?></td><td><?=e($f['documento'])?></td><td><?=e($f['email'])?></td><td><?=e($f['telefono'])?></td><td><?=e($f['contacto'])?></td><td><?=e($f['estado'])?></td><td><a class="btn btn-sm btn-outline-primary" href="?accion=editar&id=<?=$f['id']?>"><i class="fa fa-pen"></i></a></td></tr><?php endwhile;?></tbody></table></div></div></div><script>buscar.oninput=()=>document.querySelectorAll('#tabla tbody tr').forEach(x=>x.style.display=x.innerText.toLowerCase().includes(buscar.value.toLowerCase())?'':'none');</script>
<?php else:?><a href="?">← Volver</a><h3 class="page-title my-3"><?=$id?'Editar':'Nuevo'?> proveedor</h3><?php if($error):?><div class="alert alert-danger"><?=e($error)?></div><?php endif;?><div class="card card-hm"><div class="card-body"><form method="post"><input type="hidden" name="id" value="<?=$id?>"><div class="row g-3">
<?php foreach(['codigo'=>'Código *','nombre'=>'Nombre o razón social *','documento'=>'Documento','email'=>'Email','telefono'=>'Teléfono','direccion'=>'Dirección','ciudad'=>'Ciudad','contacto'=>'Persona de contacto','banco'=>'Banco','cuenta'=>'Número de cuenta','alias_cuenta'=>'Alias de cuenta'] as $k=>$l):?><div class="col-md-6"><label><?=$l?></label><input class="form-control" name="<?=$k?>" value="<?=e($d[$k])?>" <?=$k==='codigo'||$k==='nombre'?'required':''?>></div><?php endforeach;?>
<div class="col-md-6"><label>Tipo de documento</label><select class="form-select" name="tipo_documento"><?php foreach(['RUC','Cédula','Pasaporte','Otro'] as $o):?><option <?=$d['tipo_documento']===$o?'selected':''?>><?=$o?></option><?php endforeach;?></select></div><div class="col-md-6"><label>Estado</label><select class="form-select" name="estado"><?php foreach(['Activo','Inactivo'] as $o):?><option <?=$d['estado']===$o?'selected':''?>><?=$o?></option><?php endforeach;?></select></div><div class="col-12"><label>Observaciones</label><textarea class="form-control" name="observaciones"><?=e($d['observaciones'])?></textarea></div></div><button class="btn btn-hm mt-3">Guardar</button></form></div></div><?php endif;?></div></main><?php include __DIR__.'/../../includes/footer.php';?>
