Notas de Crédito A/B — CAE online

Stock/NCredito (Tcl) → afip.tcl → TiFacturaOnline → AFIP · 2 bugs + fix (RTI002461 y monotributo) · 25/09/2026

SQL Server (sucursal + upft) Directorio ./Afip + config NCredito / Stock.tcl combo TipoTicket A=3,6 · B=0,1,2,4,5 (fix) devolucionClienteNuevo Stock_Procesos.tcl ⚠ bug 2: monotributo=B → fix CAI.GetTipoImpresion Finalizar → CAE.Insert 3 o 6 → CreditoA (fix) CAE.GetNro PV + Contador por CreditoA / CreditoB afip.tcl generarXmlIn NC A=3 · NC B=8 asoc. FA=1 · FB=6 SolicitarCAE.bat TiFacturaOnlineSvc.jar suc: jar 2025 ✓ condIVA TiFacturaOnline WS 132.145.161.70:8087 AFIP / ARCA FECAESolicitar upft..dE_TResu SEL_dE_TResu.TicketReal cCuit + cTipoFactura ✓ oAccionesResumen SEL_CAE_GetTipo cControl = iClientType oContadores / mCai SEL_CAE_GetNro CreditoA=125 ✓ vigente SEL_CAE_GetInfo Acciones ⋈ TResu ⋈ mClientes ⚠ bug 1: join por id → fix CUIT mParametros Impresora.Tipo suc 40 = Fiscal ✓ afip.cfg XmlTemplate ./Afip/ CAE_BatchToExec Afip/*.template trx_master · detalle comprobanteasociado xml-trx-out.xml leerXmlOut 10013 DocTipo debe ser 80 SOAP Legend Frontend Security Backend Cloud External Database

Bug 1 · DocTipo (RTI002461)

  • • Suc 20, Factura A 4153-21 → AFIP 10013 DocTipo≠80
  • • SEL_CAE_GetInfo: mClientes.iId = tr.iNroCliente
  • • iNroCliente es id del POS (872 ≠ 14058 local)
  • • Suc 20: 0 de ~280 tickets A cruzan con mClientes
  • • Fix: DocNro = dE_TResu.cCuit, DocTipo 80, cliente por CUIT

Bug 2 · Monotributo

  • • POS emite Factura A a iClientType 6 (31 tickets)
  • • NC trataba A solo al tipo 3
  • • Combo 'Factura A' → ticket no encontrado (error)
  • • Combo 'Factura B' → NC B con CondIVA 6 (inválida en B)
  • • Fix: A = 3,6 en arrTipoTicket, GetTipoImpresion, GetInfo

Archivos cambiados

  • • Stock_SqlScript.tcl: SEL_CAE_GetInfo (.bak)
  • • Stock_Procesos.tcl: arrTipoTicket L115 + GetTipoImpresion (.bak)
  • • Prod verificado: 28 .tbc == code/ (salvo versión miAppServer 202201a≠c)
  • • NC B de CF/Exento: sin cambios
  • • Pendiente: test 1525512 → compilar AppServer → deploy

Descartado

  • • Condición IVA receptor / jar (suc: jar 2025 ✓)
  • • Numeración y CAI CreditoA
  • • Modo no fiscal (Impresora.Tipo = Fiscal)
  • • fix-nc-a.zip: solo evaluaXmlError es útil

Abierto

  • • Ticket 217845: finalizar 1 NC, anular resto
  • • Anular 1525120 (tomó ticket B 212222, otra venta)
  • • NC B: join por id puede dar CUIT de otro cliente
  • • Antes de compilar: General_Version en miAppServer.tcl

Validación post-deploy: ¿salió una NC A?

Tres fuentes, de la más rápida a la definitiva. Correr en la sucursal actualizada.

0 · ¿Salió al menos una NC de cualquier tipo?

SELECT CASE WHEN r.cControl IN ('3', '6') THEN 'NC A' ELSE 'NC B' END AS Tipo,
       SUM(CASE WHEN c.cComprobanteCAI IS NOT NULL THEN 1 ELSE 0 END) AS ConCAE,
       SUM(CASE WHEN c.cComprobanteCAI IS NULL THEN 1 ELSE 0 END) AS SinCAE,
       MAX(r.fFecha) AS Ultima
FROM oAccionesResumen r
JOIN mAcciones a ON a.iId = r.iIdAccion AND a.cTipoImpresion = 'Credito'
LEFT JOIN oCai c ON c.iIdAccionResumen = r.iId
WHERE r.fFecha >= '2026-09-25'  -- fecha del deploy
GROUP BY CASE WHEN r.cControl IN ('3', '6') THEN 'NC A' ELSE 'NC B' END

Por log: cualquier aprobación posterior al deploy, A (03) o B (08):

rg -o "<caeBarCode>30503579274(03|08)\d+</caeBarCode><caeFchVto>\d+</caeFchVto><fchProceso>2026092[5-9]\d+" TiFacturaOnlineSvc.log

1 · Base: NC A con CAE desde el deploy

SELECT r.iId, r.fFecha, r.iStatus, r.cControl AS TipoCliente,
       r.iComprobanteOrigen AS NroFiscalOri, r.iIdDestino AS POS,
       c.cComprobanteCAI AS CAE, c.fFechaVencimiento, c.cComprobante AS NroNC
FROM oAccionesResumen r
JOIN mAcciones a ON a.iId = r.iIdAccion AND a.cTipoImpresion = 'Credito'
LEFT JOIN oCai c ON c.iIdAccionResumen = r.iId
WHERE r.cControl IN ('3', '6') AND r.fFecha >= '2026-09-25'  -- fecha del deploy
ORDER BY r.iId DESC

El contador CreditoA tiene que haber avanzado:

SELECT cTipoComprobante, cComprobante FROM oContadores WHERE cTipoComprobante LIKE 'Credito%'

2 · Archivos Afip/ justo después de emitir

xml-trx-in.xml debe tener:

<tipoComprobante><id>3</id></tipoComprobante>
<tipoDocumento><id>80</id></tipoDocumento>
<nroDocumento>20204135704</nroDocumento>   <!-- CUIT 11 digitos -->

xml-trx-out.xml debe tener:

<afipCAE><cae>...</cae> ... <resultado>A</resultado></afipCAE>

Se pisan en cada NC: revisarlos antes de la siguiente.

3 · Log AFIP (definitivo): Afip/logs/TiFacturaOnlineSvc.log

El caeBarCode = CUIT CYRE (11) + tipo (2) + PV (4) + CAE (14) + vto (8) + dígito. NC A aprobada ⇒ empieza con 3050357927403 (NC B = 08).

rg -o "<caeBarCode>3050357927403\d+</caeBarCode><caeFchVto>\d+</caeFchVto><fchProceso>2026092\d+" TiFacturaOnlineSvc.log