Tul xxx Tul
User / IP
:
216.73.216.191
Host / Server
:
45.84.207.204 / aircan.me
System
:
Linux lt-bnk-web1726.main-hosting.eu 5.14.0-611.36.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 3 11:23:52 EST 2026 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
u931257429
/
domains
/
aircan.me
/
public_html
/
gimnasiofitnes
/
app
/
Views
/
admin
/
suppliers
/
Viewing: index.php
<?= $this->extend('layout/app'); ?> <?php $this->section('title'); ?> Proveedores <?php $this->endSection(); ?> <?php $this->section('content'); ?> <div class="app-title"> <div> <h1><i class="bi bi-truck"></i> Proveedores</h1> <p>Administra los proveedores vinculados a las compras del gimnasio</p> </div> <ul class="app-breadcrumb breadcrumb"> <li class="breadcrumb-item"><i class="bi bi-house-door fs-6"></i></li> <li class="breadcrumb-item"><a href="<?= base_url('admin'); ?>">Admin</a></li> <li class="breadcrumb-item"><a href="#">Proveedores</a></li> </ul> </div> <div class="row"> <div class="col-md-12"> <div class="tile shadow-sm border-0"> <div class="tile-title d-flex justify-content-between align-items-center mb-4"> <div> <h5 class="mb-0">Base de proveedores</h5> <small class="text-muted">Controla contactos, documentos y estado comercial</small> </div> <?php if (has_permission('Proveedores:crear')) : ?> <button class="btn btn-primary btn-sm" onclick="showSupplierModal()"> <i class="bi bi-plus-lg"></i> Nuevo Proveedor </button> <?php endif; ?> </div> <div class="table-responsive"> <table class="table table-hover table-bordered" id="tblSuppliers"> <thead> <tr> <th>ID</th> <th>Proveedor</th> <th>Contacto</th> <th>Documento</th> <th>Teléfono</th> <th>Ciudad</th> <th>Estado</th> <th>Acciones</th> </tr> </thead> <tbody> <?php foreach ($suppliers as $supplier): ?> <tr> <td><?= $supplier['id'] ?></td> <td> <div class="fw-bold"><?= esc($supplier['company_name']) ?></div> <small class="text-muted"><?= esc($supplier['email'] ?: 'Sin correo registrado') ?></small> </td> <td><?= esc($supplier['contact_name'] ?: 'N/D') ?></td> <td><?= esc(trim(($supplier['document_type'] ?: '') . ' ' . ($supplier['document_number'] ?: ''))) ?: 'N/D' ?></td> <td><?= esc($supplier['phone'] ?: 'N/D') ?></td> <td><?= esc($supplier['city'] ?: 'N/D') ?></td> <td> <?php if ((int) $supplier['status'] === 1) : ?> <span class="badge bg-success">Activo</span> <?php else : ?> <span class="badge bg-secondary">Inactivo</span> <?php endif; ?> </td> <td> <div class="btn-group"> <?php if (has_permission('Proveedores:editar')) : ?> <button class="btn btn-info btn-sm" onclick='editSupplier(<?= json_encode($supplier, JSON_HEX_APOS | JSON_HEX_QUOT) ?>)'> <i class="bi bi-pencil-square"></i> </button> <?php endif; ?> <?php if (has_permission('Proveedores:eliminar')) : ?> <button class="btn btn-danger btn-sm" onclick="deleteSupplier(<?= $supplier['id'] ?>)"> <i class="bi bi-trash-fill"></i> </button> <?php endif; ?> </div> </td> </tr> <?php endforeach; ?> </tbody> </table> </div> </div> </div> </div> <div class="modal fade" id="supplierModal" tabindex="-1"> <div class="modal-dialog modal-lg"> <div class="modal-content border-0" style="border-radius: 20px; overflow: hidden;"> <div class="modal-header bg-dark text-white border-0"> <h5 class="modal-title" id="supplierModalTitle">Nuevo Proveedor</h5> <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button> </div> <form id="supplierForm"> <input type="hidden" id="supplierId" name="id"> <div class="modal-body p-4"> <div class="row g-3"> <div class="col-md-6"> <label class="form-label text-muted small fw-bold text-uppercase">Razón social *</label> <input type="text" class="form-control" id="company_name" name="company_name" required> </div> <div class="col-md-6"> <label class="form-label text-muted small fw-bold text-uppercase">Nombre de contacto</label> <input type="text" class="form-control" id="contact_name" name="contact_name"> </div> <div class="col-md-4"> <label class="form-label text-muted small fw-bold text-uppercase">Tipo documento</label> <select class="form-select" id="document_type" name="document_type"> <option value="">Seleccionar</option> <option value="NIT">NIT</option> <option value="RNC">RNC</option> <option value="Cédula">Cédula</option> <option value="Pasaporte">Pasaporte</option> </select> </div> <div class="col-md-4"> <label class="form-label text-muted small fw-bold text-uppercase">Número documento</label> <input type="text" class="form-control" id="document_number" name="document_number"> </div> <div class="col-md-4"> <label class="form-label text-muted small fw-bold text-uppercase">Estado</label> <select class="form-select" id="status" name="status"> <option value="1">Activo</option> <option value="0">Inactivo</option> </select> </div> <div class="col-md-4"> <label class="form-label text-muted small fw-bold text-uppercase">Teléfono</label> <input type="text" class="form-control" id="phone" name="phone"> </div> <div class="col-md-4"> <label class="form-label text-muted small fw-bold text-uppercase">Correo</label> <input type="email" class="form-control" id="email" name="email"> </div> <div class="col-md-4"> <label class="form-label text-muted small fw-bold text-uppercase">Ciudad</label> <input type="text" class="form-control" id="city" name="city"> </div> <div class="col-md-12"> <label class="form-label text-muted small fw-bold text-uppercase">Dirección</label> <input type="text" class="form-control" id="address" name="address"> </div> <div class="col-md-12"> <label class="form-label text-muted small fw-bold text-uppercase">Notas</label> <textarea class="form-control" id="notes" name="notes" rows="3"></textarea> </div> </div> </div> <div class="modal-footer border-0 p-4"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button> <button type="submit" class="btn btn-primary">Guardar Proveedor</button> </div> </form> </div> </div> </div> <?php $this->endSection(); ?> <?php $this->section('js'); ?> <script> function showSupplierModal() { document.getElementById('supplierForm').reset(); document.getElementById('supplierId').value = ''; document.getElementById('supplierModalTitle').innerText = 'Nuevo Proveedor'; new bootstrap.Modal(document.getElementById('supplierModal')).show(); } function editSupplier(supplier) { document.getElementById('supplierId').value = supplier.id || ''; document.getElementById('company_name').value = supplier.company_name || ''; document.getElementById('contact_name').value = supplier.contact_name || ''; document.getElementById('document_type').value = supplier.document_type || ''; document.getElementById('document_number').value = supplier.document_number || ''; document.getElementById('phone').value = supplier.phone || ''; document.getElementById('email').value = supplier.email || ''; document.getElementById('address').value = supplier.address || ''; document.getElementById('city').value = supplier.city || ''; document.getElementById('notes').value = supplier.notes || ''; document.getElementById('status').value = supplier.status || 1; document.getElementById('supplierModalTitle').innerText = 'Editar Proveedor'; new bootstrap.Modal(document.getElementById('supplierModal')).show(); } function deleteSupplier(id) { Swal.fire({ title: '¿Deseas eliminar este proveedor?', text: 'Si ya tiene compras asociadas, se desactivará para mantener el historial.', icon: 'warning', showCancelButton: true, confirmButtonText: 'Sí, continuar', cancelButtonText: 'Cancelar' }).then((result) => { if (result.isConfirmed) { fetch(`<?= base_url('admin/suppliers') ?>/${id}`, { method: 'DELETE', headers: { 'X-Requested-With': 'XMLHttpRequest' } }).then(res => res.json()).then(data => { if (data.status === 'success') { Swal.fire('Éxito', data.message, 'success').then(() => location.reload()); } else { Swal.fire('Error', data.message, 'error'); } }); } }); } document.getElementById('supplierForm').onsubmit = function(e) { e.preventDefault(); const id = document.getElementById('supplierId').value; const formData = new FormData(this); const url = id ? `<?= base_url('admin/suppliers') ?>/${id}` : `<?= base_url('admin/suppliers') ?>`; const method = id ? 'PUT' : 'POST'; let body = formData; if (method === 'PUT') { const searchParams = new URLSearchParams(); for (const pair of formData.entries()) { searchParams.append(pair[0], pair[1]); } body = searchParams; } fetch(url, { method: method, body: body, headers: { 'X-Requested-With': 'XMLHttpRequest' } }).then(res => res.json()).then(data => { if (data.status === 'success') { Swal.fire('Éxito', data.message, 'success').then(() => location.reload()); } else { Swal.fire('Error', data.message, 'error'); } }); }; </script> <?php $this->endSection(); ?>
Coded With 💗 by
0x6ick