:й;]uf-zR)969_J҆x[ӊ=Udwlt _1RYyZ5j"טW7nRwEj3̊su}'!ސ|*^d>
R/kܠ9s6͹	)8mA 6X0}8:b) yKسs|EnU#//
qܹ9`໇|l¨՞9mʧ=l@~44\;L|<MD=ANJҁnX31^ )q|ъV̷p|"9"Ҝ*nF9VM?*ԊkOAQ?\䷦aЯA7;|nses"Lv<e?#E{RGaFյKP,Ex`j1`+1AbGr}g1걊D˔uyS^}*j<1:Bu^CQxLs׽(ކ/_u&i~U~Dz0z`.
g.bQFPRH]*Jb3f[X%074TI4eDF/juX(A
ƻ!,<EfOXqT@!g;wDE
;DNȔ szGm{~X%bʶ(?Y#]בmL5 zp?l}>Mobd=M9Epħ@5cek@"C&+4^R,@.E1s	U)}{^K{l
xE+}V(e2>k_DF4/L`"(_bu_ERIJ;bW笑7,r()$^t9"Sxcp^&<k'6dPؔrf%|C+>&G"5>ϣ b]6jJl]4HP%9}M3D!)P7#)vt[\Ad'˚?'	=Vk^}&i\T'Bk/v0oE%+J<iGA5+faRt^
4aX)ZVONPkfLt֚Gl'pl6`uW9UL'C&7~ڈQM񵱎I$Zf!uxP;fGz3LEÂ>R}$n1+ω]'VKߨCwI*Zt-]2=4;<1ڤL\[?8N'p)*]
+#iuߩGOrg8[.xFKb>T	6[<n II'I'܍T_$u!|ˌЍ~nH6ic¼-$rX<gLpХM2:oQ<o"%vI\λM,!(j 5B6^{Z&щe){3&Kvytajvo02ӟFW^J-vH;!6]J Iem
8lp:o+xؕ2hѽ΅<	tD=ZR*~*wi2(Xy{O?mM8?VB`nH>2+Un-rӲo~sBXDRjfVp}˫ӿj?l:焦_՛ʈ	D_'AKu95tW<	ʫXqz"soEbg~_dY̺WMGۧN.ϓ(U1\89Z(zEOr!^]5~8ئv6wg_!߷^	ЖE,bPV&]dt.IC;VԊZߌaz|ឫUrB6;}ְ1%M,"$y3J`H4M@PyhOˌݐi!
Ͼ\V?Q$7hCց]Nѡϭ}r<ZwuKu@@|ZUt=-=(:6v䕬	K-H@WsJǈcTc79>3"P
YKx5qC=5$v}9⒞(mhj9K{>xfpkn72?3PI޳)rlF2mF 0L+.5x<^,jX_dT z>TkL!MBG#z|_$h[?f15=g7
|#޻TBF poD7I;(>JW.0צ<lȰdE1J}h]G"MǦn$G^wb^	q"Pm̼$ֆ2 mp2BjQ͘rЀ[p?3;vU]=O.}ҭE̮cuqJ!@p[\f+(mL\sT&'u$-qTB}pԿ0A~s|^Aiu3-O?XW:8꒡AW*kG$V;!?;OeƨY.UjNvghNxү '2!(q+ޮC=}jB>wHZbT9De#EV2/BG\)7gk6E^CE00ÙUlu'd 1OQ`l9@:PmL+y'D1kǱ:T(|0`iuQ0Z*wzAs	Js,^g]d{ǅoA.*Rt6x|>oR{ꒅN?rNw8MqdK~Hd+%)r^S ;h8	뀗@Z+u %9D"Qr])oʫyJӅ^0+&R~m&	f`ЎBEku 3 p2֦klJM @gO YJ
I
^0#sGQ3dnkG,AŞKP[ϤMŸ%/3 z QĎ􀛊qG-ĻU
GY_YV
e
Q~р[:ni3FybB*ANڕCt)v&4>ҋP 6]TK|F]#MߺM-%7y~<ҿsMi?8}Hj:eT)u,pq}.%>~;N:Xܼ.7?[i]s(|+1k/*s\
/ran\!Þ<]du,O@&[a]&o=]!i#Hn=@Q0#/ЭD{N=>@덯UV%Ġth*xףNqTBiphJOyF|U?=iF!x`GoɃ9MpQaguK](6SmAyF]I"vɅzlD\KeԸ	p*ZRBխ6yeI fzIaA2Yf{Pgp4?f u6 \N TTAUKTIM<vSe	vI룵=x_.p5fsBa9}RZ7naj+)pLrV'sfKe8agqG>dOdM i_ ylp+1O#Y. S]AJ-,	>~1Y| Factura de Consumidor |
| 02 | FCP | B2 | Factura de Crédito |
| 03 | ND | C3 | Nota de Débito |
| 04 | NC | D4 | Nota de Crédito |
| 11 | Combustible | E5 | Factura Combustible |
| 12 | Telecom | F6 | Factura Telecomunicaciones |
| 13 | Zona Franca | G7 | Factura Zona Franca |
| 14 | Seguros | H1 | Factura Seguros |

---

## 🚀 Flujo de Integración en comprar.php

1. **Seleccionar Tipo NCF:**
   ```html
   <select id="tipo_ncf" onchange="cargar_prefijo_ncf()">
       <option data-secuencia="1">Factura Consumidor (A1)</option>
       ...
   </select>
   ```

2. **Auto-generar NCF:**
   ```javascript
   function cargar_prefijo_ncf() {
       var secuencia = document.getElementById('tipo_ncf').options[...].dataset.secuencia;
       var ncf = calcular_ncf(secuencia);
       document.getElementById('ncf').value = ncf;
   }
   ```

3. **Guardar con CFE:**
   - NCF se guarda en tabla `compras`
   - Se vincula a tabla `ncf` por prefijo
   - Estado DGII comienza en `NO_ENVIADO`

---

## 📤 Exportación a DGII (Formulario 606)

### Filtros Aplicados
```php
// Solo exporta comprobantes ACEPTADOS
WHERE n.estado_dgii = 'ACEPTADO' 
AND n.estado = 'Activo'
AND c.estado_compra = 'Cerrada'
```

### Estadísticas Mostradas
- ✓ Cantidad total de documentos
- ✓ CFE Aceptados por DGII
- ✓ CFE Rechazados por DGII
- ✓ CFE Pendientes de revisión
- ✓ Montos por estado

### Formatos de Exportación
1. **Excel (.xlsx)** - Formato XML de Office
2. **TXT** - Formato fijo DGII
3. **CSV** - RFC 4180

---

## 🛡️ Validación de Compras

### En formulario 606
```
✓ RNC Proveedor: 9 dígitos (XXX-XXXXXXX)
✓ NCF: 13 caracteres, válido módulo 11
✓ Base sin ITBIS: Presente
✓ ITBIS 18%: Calculado correctamente
✓ Estado CFE: ACEPTADO o NO_ENVIADO
✓ Retenciones: RNC y montos válidos
```

### Validación Técnica (cfe_validacion.php)
- Formato correcto de clave de seguridad (8 dígitos)
- RNC empresa configurado
- Secuencia no excedida (máx 999999999)
- Estado DGII válido

---

## 📊 Dashboard de Resumen (cfe_resumen.php)

Muestra:
- Tarjetas con conteos por estado
- Distribución de montos
- Progreso de validación (%)
- Tabla de CFE activos
- Links a módulos relacionados

---

## ⚙️ Configuración Inicial

### 1. Crear tabla NCF
```bash
# Acceder a:
http://sistema/php/create_ncf_table.php

# Script automáticamente:
- Crea tabla ncf con estructura CFE
- Inserta 8 tipos de comprobantes
- Asigna prefijos A1-H1
- Obtiene RNC de tabla empresa
```

### 2. Habilitar en comprar.php
```php
include_once("../php/ncf_helper.php");

// Selector en formulario
<select id="tipo_ncf" onchange="cargar_prefijo_ncf()">
```

### 3. Integrar en DGII 606
```php
include_once("../php/ncf_helper.php");
include_once("../php/cfe_export_helper.php");

// Query con validación
LEFT JOIN ncf n ON c.ncf LIKE CONCAT(...)
WHERE n.estado_dgii = 'ACEPTADO'
```

---

## 🔗 Menús de Acceso

### Desde Contabilidad
- **Cumplimiento DGII**
  - Declaraciones DGII
  - Formulario 606 (con validación CFE)
  - Formulario 607
  - Formulario 608
  - **✨ Validación CFE** ← NEW

### Desde POS
- **Administrativo**
  - Comprobantes Fiscales (ncf.php)
  - **✨ CFE Resumen** ← NEW
  - **✨ CFE Admin** ← NEW

---

## 🐛 Troubleshooting

### Problema: "CFE no aparece en 606"
**Solución:** Verificar que `estado_dgii = 'ACEPTADO'`

### Problema: "NCF duplicado"
**Solución:** Tabla tiene constraint UNIQUE(prefijo, rnc_empresa)

### Problema: "Dígito validación incorrecto"
**Solución:** Revisar módulo 11, pesos deben ser [7,3,1,7,3,1,7,3,1,7]

### Problema: "RNC no valida"
**Solución:** Formato debe ser XXX-XXXXXXX (9 dígitos)

---

## 📞 Soporte

**Módulos relacionados:**
- `php/dgii_helper.php` - Validación DGII general
- `php/contable_helper.php` - Registro contable de compras
- `pos/catalogo_cuentas.php` - Cuentas contables
- `pos/enlace_cuentas_config.php` - Mapeo de cuentas

**Tablas relacionadas:**
- `compras` - Detalles de compras con campos: rnc_proveedor, ncf, base_sin_itbis, itbis, ret_itbis, ret_renta
- `empresa` - RNC de la empresa
- `ncf` - Estados y validación de comprobantes

---

**Versión:** 1.0  
**Fecha:** 2024  
**Estado:** Producción ✓
