const { useState } = React; window.AdminSaaS = function({ masterClients = [], activeClientId, setActiveClientId, editingClient, setEditingClient, showClientModal, setShowClientModal, refreshData }) { const [logoBase64, setLogoBase64] = useState(''); const [logoPreview, setLogoPreview] = useState(''); const [taxRegime, setTaxRegime] = useState('cuota_fija'); const handleOpenEdit = (c) => { setEditingClient(c); setTaxRegime(c.tax_regime || 'cuota_fija'); setLogoPreview(c.company_logo || ''); setLogoBase64(''); setShowClientModal(true); }; const handleOpenCreate = () => { setEditingClient(null); setTaxRegime('cuota_fija'); setLogoPreview(''); setLogoBase64(''); setShowClientModal(true); }; const handleLogoUpload = (e) => { const file = e.target.files[0]; if (!file) return; const reader = new FileReader(); reader.onload = (ev) => { setLogoBase64(ev.target.result); setLogoPreview(ev.target.result); }; reader.readAsDataURL(file); }; const handleSubmitClient = async (e) => { e.preventDefault(); const f = new FormData(e.target); const payload = { id: editingClient ? editingClient.id : null, company_name: f.get('company_name'), shift_subdomain: f.get('shift_subdomain'), contact_name: f.get('contact_name'), contact_email: f.get('contact_email'), contact_phone: f.get('contact_phone'), admin_password: f.get('admin_password'), tax_regime: taxRegime, ruc_number: f.get('ruc_number'), owner_name: f.get('owner_name'), legal_rep_id: f.get('legal_rep_id'), business_address: f.get('business_address'), municipality: f.get('municipality') || 'Managua', module_shift: f.get('module_shift') ? 1 : 0, logo_base64: logoBase64 }; const res = await window.apiCall('save_master_client', payload); if (res && res.success) { setShowClientModal(false); if (refreshData) await refreshData(); } else { alert("Error al guardar empresa: " + (res.error || "")); } }; return (
Alta de clientes, régimen tributario, configuración fiscal y control de licencias
{c.shift_subdomain}.shift.marcasnicaragua.com
Contacto: {c.contact_name || 'N/A'}
Correo Admin: {c.contact_email || 'N/A'}
RUC: {c.ruc_number || 'Sin registrar'}
Configuración fiscal y credenciales de acceso