/** * CONTPAQi Integration Module * * Conector completo para integracion con los sistemas CONTPAQi: * - CONTPAQi Contabilidad * - CONTPAQi Comercial (ventas/compras) * - CONTPAQi Nominas * * ESTRUCTURA DE TABLAS CONSULTADAS: * * ============================================================================ * CONTPAQi CONTABILIDAD * ============================================================================ * * Empresas * - CIDEMPRESA: ID interno * - CCODIGOEMPRESA: Codigo de empresa * - CNOMBREEMPRESA: Nombre * - CRFC: RFC * - CRUTADATOS: Base de datos de la empresa * * Cuentas (Catalogo de cuentas contables) * - CIDCUENTA: ID de cuenta * - CCODIGOCUENTA: Codigo (ej: 1101-001) * - CNOMBRECUENTA: Nombre * - CTIPOCUENTA: 1=Activo, 2=Pasivo, 3=Capital, 4=Ingreso, 5=Costo, 6=Gasto, 7=Orden * - CNATURALEZA: 1=Deudora, 2=Acreedora * - CNIVEL: Nivel jerarquico * - CCUENTAPADRE: Cuenta padre * - CESDECATALOGO: 1=Cuenta de detalle * - CCODIGOAGRUPADOR: Codigo agrupador SAT * * Polizas (Encabezado) * - CIDPOLIZA: ID poliza * - CTIPOPOLIZA: 1=Ingresos, 2=Egresos, 3=Diario, 4=Orden * - CNUMPOLIZA: Numero * - CFECHA: Fecha * - CCONCEPTO: Descripcion * - CIDEJERCICIO: Ano fiscal * - CIDPERIODO: Mes (1-13) * - CAFECTADA: Si esta aplicada a saldos * - CUUIDCFDI: UUID del CFDI relacionado * * MovPolizas (Detalle de polizas) * - CIDMOVPOLIZA: ID movimiento * - CIDPOLIZA: Poliza padre * - CNUMEROPARTIDA: Numero de linea * - CCODIGOCUENTA: Cuenta contable * - CCONCEPTO: Descripcion * - CCARGO: Importe cargo * - CABONO: Importe abono * - CREFERENCIA: Referencia (num cheque, factura, etc) * - CUUIDCFDI: UUID CFDI * - CRFCTERCERO: RFC del tercero * * SaldosCuentas * - CIDCUENTA: Cuenta * - CIDEJERCICIO: Ejercicio * - CIDPERIODO: Periodo * - CSALDOINICIAL: Saldo inicial * - CCARGOS: Total cargos * - CABONOS: Total abonos * - CSALDOFINAL: Saldo final * * ============================================================================ * CONTPAQi COMERCIAL * ============================================================================ * * admClientes (Clientes y Proveedores - tabla unificada) * - CIDCLIENTEPROVEEDOR: ID * - CCODIGOCLIENTE: Codigo * - CRAZONSOCIAL: Razon social * - CRFC: RFC * - CTIPOCLIENTE: 1=Cliente, 2=ClienteProveedor, 3=Proveedor * - CREGIMENFISCAL: Regimen fiscal * - CUSOCFDI: Uso CFDI predeterminado * - CLIMITECREDITO: Limite de credito * - CDIASCREDITO: Dias de credito * - CSALDOACTUAL: Saldo actual * * admDomicilios (Direcciones) * - CIDDOMICILIO: ID * - CIDCLIENTEPROVEEDOR: Cliente/Proveedor * - CTIPO: Tipo de direccion * - CCALLE, CNUMEROEXTERIOR, CCOLONIA, CCODIGOPOSTAL, etc. * * admProductos (Catalogo de productos) * - CIDPRODUCTO: ID * - CCODIGOPRODUCTO: Codigo * - CNOMBREPRODUCTO: Nombre * - CTIPOPRODUCTO: 1=Producto, 2=Paquete, 3=Servicio * - CUNIDADMEDIDA: Unidad * - CCLAVESAT: Clave SAT * - CPRECIOBASE: Precio base * - CULTIMOCOSTO: Ultimo costo * - CCOSTOPROMEDIO: Costo promedio * - CTASAIVA: Tasa de IVA * * admDocumentos (Facturas, Notas, Remisiones, etc.) * - CIDDOCUMENTO: ID * - CIDCONCEPTODOCUMENTO: Tipo de documento * - CSERIEFASCICULO: Serie * - CFOLIO: Folio * - CFECHA: Fecha * - CIDCLIENTEPROVEEDOR: Cliente/Proveedor * - CSUBTOTAL, CDESCUENTO, CIVA, CTOTAL: Totales * - CUUID: UUID del CFDI * - CFORMAPAGO, CMETODOPAGO: Forma y metodo de pago * - CPENDIENTE: Saldo pendiente * - CCANCELADO: Si esta cancelado * * admMovimientos (Detalle de productos en documentos) * - CIDMOVIMIENTO: ID * - CIDDOCUMENTO: Documento padre * - CIDPRODUCTO: Producto * - CUNIDADES: Cantidad * - CPRECIO: Precio unitario * - CDESCUENTO: Descuento * - CIMPORTE: Importe * - CIVA: IVA * * admAlmacenes (Almacenes) * - CIDALMACEN: ID * - CCODIGOALMACEN: Codigo * - CNOMBREALMACEN: Nombre * * admExistencias (Inventario por almacen) * - CIDPRODUCTO: Producto * - CIDALMACEN: Almacen * - CEXISTENCIA: Cantidad * * ============================================================================ * CONTPAQi NOMINAS * ============================================================================ * * nomEmpleados (Catalogo de empleados) * - CIDEMPLEAD: ID * - CCODIGOEMPLEADO: Codigo/Numero * - CNOMBRE, CAPELLIDOPATERNO, CAPELLIDOMATERNO: Nombre * - CRFC, CCURP, CNSS: Identificadores * - CFECHAALTA, CFECHABAJA: Fechas * - CTIPOCONTRATO: Tipo de contrato * - CTIPOREGIMEN: Regimen (Sueldos, Asimilados, etc.) * - CPERIODICIDADPAGO: Periodicidad * - CSALARIODIARIO: Salario diario * - CSALARIODIAINTEGRADO: SDI * - CDEPARTAMENTO, CPUESTO: Puesto * - CBANCO, CCLABE: Datos bancarios * * nomPeriodos (Periodos de nomina) * - CIDPERIODO: ID * - CNUMEROPERIODO: Numero de periodo * - CEJERCICIO: Ano * - CFECHAINICIO, CFECHAFIN, CFECHAPAGO: Fechas * - CTIPONOMINA: 1=Ordinaria, 2=Extraordinaria * * nomNominas (Nomina por empleado/periodo) * - CIDNOMINA: ID * - CIDEMPLEAD: Empleado * - CIDPERIODO: Periodo * - CTOTALPERCEPCIONES, CTOTALDEDUCCIONES: Totales * - CNETO: Neto a pagar * - CUUID: UUID del CFDI de nomina * * nomMovimientos (Percepciones y deducciones) * - CIDMOVIMIENTO: ID * - CIDNOMINA: Nomina * - CTIPOMOVIMIENTO: 1=Percepcion, 2=Deduccion, 3=OtroPago * - CIDTIPOMOVIMIENTO: ID del tipo * - CIMPORTE: Importe * - CIMPORTEGRAVADO, CIMPORTEEXENTO: Gravado/Exento * * nomTiposPercepcion (Catalogo de percepciones) * - CIDTIPOPERCEPCION: ID * - CCLAVE: Clave * - CCONCEPTO: Descripcion * - CTIPOPERCEPCIONSAT: Clave SAT * * nomTiposDeduccion (Catalogo de deducciones) * - CIDTIPODEDUCCION: ID * - CCLAVE: Clave * - CCONCEPTO: Descripcion * - CTIPODEDUCCIONSAT: Clave SAT * * ============================================================================ * * @example * ```typescript * import { * createCONTPAQiClient, * createContabilidadConnector, * createComercialConnector, * createNominasConnector, * createCONTPAQiSyncService, * } from './services/integrations/contpaqi'; * * // Crear cliente * const client = createCONTPAQiClient({ * host: 'localhost', * port: 1433, * user: 'sa', * password: 'password', * database: 'ctCONTPAQi', * }); * * // Conectar a una empresa * const empresas = await client.getEmpresas('Contabilidad'); * await client.connectToEmpresa(empresas[0]); * * // Usar conectores especificos * const contabilidad = createContabilidadConnector(client); * const cuentas = await contabilidad.getCatalogoCuentas(); * const balanza = await contabilidad.getBalanzaComprobacion({ ejercicio: 2024, periodo: 12 }); * * // Sincronizar a Horux * const syncService = createCONTPAQiSyncService({ dbPool, getSchemaName }); * const result = await syncService.syncToHorux({ * tenantId: 'xxx', * connectionConfig: { ... }, * productos: ['Contabilidad', 'Comercial'], * fechaDesde: new Date('2024-01-01'), * fechaHasta: new Date('2024-12-31'), * }); * ``` */ // Types export * from './contpaqi.types.js'; // Schemas export * from './contpaqi.schema.js'; // Client export { CONTPAQiClient, createCONTPAQiClient, getCONTPAQiPoolManager, closeCONTPAQiConnections, testCONTPAQiConnection, } from './contpaqi.client.js'; // Connectors export { ContabilidadConnector, createContabilidadConnector, } from './contabilidad.connector.js'; export { ComercialConnector, createComercialConnector, } from './comercial.connector.js'; export { NominasConnector, createNominasConnector, } from './nominas.connector.js'; // Sync Service export { CONTPAQiSyncService, createCONTPAQiSyncService, type CONTPAQiSyncServiceConfig, } from './contpaqi.sync.js';