fix(fiel/csd): usa contribuyente seleccionado sin depender de isDespachoTenant
Problema: isDespachoTenant(user?.tenantRfc) compara contra prefijo 'DESPACHO_' que ningun tenant real usa. Esto hacia que sat/page.tsx siempre usara el endpoint legacy a nivel tenant, ignorando el contribuyente seleccionado y mostrando datos del tenant en lugar del contribuyente. Cambios: - sat/page.tsx: elimina isDespachoTenant, usa selectedContribuyenteId directamente para determinar contribId. Muestra banner cuando no hay contribuyente seleccionado. - csd/page.tsx: agrega banner de contribuyente seleccionado y oculta la UI de CSD cuando no hay contribuyente seleccionado. - tenant-selector.tsx: limpia selectedContribuyenteId al cambiar de tenant para evitar stale state.
This commit is contained in:
@@ -10,7 +10,7 @@ import { getFielStatus, deleteFiel } from '@/lib/api/fiel';
|
||||
import { useTenantViewStore } from '@/stores/tenant-view-store';
|
||||
import { useContribuyenteStore } from '@/stores/contribuyente-store';
|
||||
import { useAuthStore } from '@/stores/auth-store';
|
||||
import { isDespachoTenant } from '@horux/shared';
|
||||
|
||||
import { Building2 } from 'lucide-react';
|
||||
import type { FielStatus } from '@horux/shared';
|
||||
|
||||
@@ -21,11 +21,9 @@ export default function SatConfigPage() {
|
||||
const [deleting, setDeleting] = useState(false);
|
||||
const { viewingTenantId } = useTenantViewStore();
|
||||
const { selectedContribuyenteId, selectedContribuyenteRfc, selectedContribuyenteNombre } = useContribuyenteStore();
|
||||
const user = useAuthStore(s => 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() {
|
||||
<Header title="Configuración SAT" />
|
||||
<main className="p-6 space-y-6">
|
||||
|
||||
{/* Despacho: show which contribuyente or prompt to select */}
|
||||
{isDespacho && !selectedContribuyenteId && (
|
||||
{/* Show which contribuyente or prompt to select */}
|
||||
{!selectedContribuyenteId && (
|
||||
<Card className="border-amber-200 bg-amber-50 dark:bg-amber-950/20">
|
||||
<CardContent className="py-4 flex items-center gap-3">
|
||||
<Building2 className="h-5 w-5 text-amber-600" />
|
||||
@@ -91,7 +89,7 @@ export default function SatConfigPage() {
|
||||
</Card>
|
||||
)}
|
||||
|
||||
{isDespacho && selectedContribuyenteId && (
|
||||
{selectedContribuyenteId && (
|
||||
<Card className="bg-primary/5 border-primary/20">
|
||||
<CardContent className="py-3 px-5 flex items-center gap-2">
|
||||
<Building2 className="h-4 w-4 text-primary" />
|
||||
@@ -101,8 +99,8 @@ export default function SatConfigPage() {
|
||||
</Card>
|
||||
)}
|
||||
|
||||
{/* 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 */}
|
||||
<Card>
|
||||
|
||||
Reference in New Issue
Block a user