@@ -314,10 +334,10 @@ export default function CsdConfigPage() {
)}
{/* Personalización de factura */}
- {orgStatus?.configured &&
}
+ {selectedContribuyenteId && orgStatus?.configured &&
}
{/* Timbres */}
-
+ {selectedContribuyenteId &&
@@ -356,10 +376,10 @@ export default function CsdConfigPage() {
)}
-
+ }
{/* Mensajes */}
- {message && (
+ {selectedContribuyenteId && message && (
s.user);
- const isDespacho = isDespachoTenant(user?.tenantRfc);
- // For despachos, use per-contribuyente FIEL; for Horux360, use tenant-level
- const contribId = isDespacho ? selectedContribuyenteId : null;
+ // Per-contribuyente FIEL when a contribuyente is selected; otherwise tenant-level legacy
+ const contribId = selectedContribuyenteId || null;
const fetchFielStatus = async () => {
setLoading(true);
@@ -81,8 +79,8 @@ export default function SatConfigPage() {
- {/* Despacho: show which contribuyente or prompt to select */}
- {isDespacho && !selectedContribuyenteId && (
+ {/* Show which contribuyente or prompt to select */}
+ {!selectedContribuyenteId && (
@@ -91,7 +89,7 @@ export default function SatConfigPage() {
)}
- {isDespacho && selectedContribuyenteId && (
+ {selectedContribuyenteId && (
@@ -101,8 +99,8 @@ export default function SatConfigPage() {
)}
- {/* For despachos without RFC selected, hide everything below the banner */}
- {isDespacho && !selectedContribuyenteId ? null : (
+ {/* Hide FIEL UI when no contribuyente is selected */}
+ {!selectedContribuyenteId ? null : (
<>
{/* Estado de la FIEL */}
diff --git a/apps/web/components/tenant-selector.tsx b/apps/web/components/tenant-selector.tsx
index 34083fb..943fd9a 100644
--- a/apps/web/components/tenant-selector.tsx
+++ b/apps/web/components/tenant-selector.tsx
@@ -4,6 +4,7 @@ import { useState, useEffect } from 'react';
import { useQuery, useQueryClient } from '@tanstack/react-query';
import { getTenants, type Tenant } from '@/lib/api/tenants';
import { useTenantViewStore } from '@/stores/tenant-view-store';
+import { useContribuyenteStore } from '@/stores/contribuyente-store';
import { useAuthStore } from '@/stores/auth-store';
import { Building, ChevronDown, Check, X } from 'lucide-react';
import { cn } from '@horux/shared-ui';
@@ -14,6 +15,7 @@ export function TenantSelector() {
const { user } = useAuthStore();
const queryClient = useQueryClient();
const { viewingTenantId, viewingTenantName, setViewingTenant, clearViewingTenant } = useTenantViewStore();
+ const { clearSelectedContribuyente } = useContribuyenteStore();
const isGlobalAdmin = isGlobalAdminRfc(user?.tenantRfc, user?.role, user?.platformRoles);
const { data: tenants, isLoading } = useQuery({
@@ -66,12 +68,14 @@ export function TenantSelector() {
onClick={(e) => {
e.stopPropagation();
clearViewingTenant();
+ clearSelectedContribuyente();
queryClient.invalidateQueries();
}}
onKeyDown={(e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.stopPropagation();
clearViewingTenant();
+ clearSelectedContribuyente();
queryClient.invalidateQueries();
}
}}
@@ -98,6 +102,7 @@ export function TenantSelector() {