Sistema de Gestión de Negocios "Hexa"

Base de datos de conocimiento.

usuario usuariows incorrecto

Los métodos XDoc en Hexa V.9

El objeto XDoc, de la clase cXDoc, agrupa procesos que crean, transforman, validan y eliminan documentos de Hexa. Incluye pedidos, albaranes y facturas, gestión de recibos y pagos, contratos, fabricación y facturación de proyectos. Sus operaciones pueden actualizar movimientos, existencias, vencimientos y contabilidad.

En los métodos con Condicion, Orden y Opciones, el criterio SQL se indica sin WHERE y el orden sin ORDER BY, salvo las particularidades descritas en cada caso. Opciones contiene valores con el formato Nombre=Valor; los textos con espacios se delimitan con comillas simples. Una condición vacía puede abarcar todos los registros. Los ejemplos utilizan datos ilustrativos.

Los métodos disponibles son los siguientes:

  • XDoc.CreaDocumento(Documento, Persona, Fecha, Concepto, Estado, ContadorEspecial)

    Crea la cabecera de Pedido, Albaran, Factura, sus equivalentes de proveedor o AlbaranInterno. Persona es el cliente o proveedor y puede ser cero para un albarán interno. Fecha, Concepto y Estado definen los datos iniciales; ContadorEspecial selecciona un contador alternativo. Comprueba persona y cierre contable, consume numeración y actualiza los datos dependientes de la persona. Devuelve un texto con Prefijo y Numero o el motivo de rechazo.

    Ejemplo:

    Main = XDoc.CreaDocumento("Pedido", 1234, DateSerial(2026, 9, 30), "Pedido de ejemplo", "Pendiente", "")
  • XDoc.CreaDocumentoLinea(Documento, Prefijo, Numero, Proyecto, Contrato, Fecha, Articulo, NumeroSerie, Lote, DenominacionArticulo, Cantidad, PrecioArticulo, Descuento, Calcular, Agrupar, Asignar)

    Añade una línea al documento Prefijo/Numero o un movimiento a Proyecto. Contrato permite asociar el contrato; Fecha se utiliza directamente para movimientos de proyecto. Articulo debe existir. NumeroSerie y Lote añaden el detalle de unidad o lote. Si DenominacionArticulo está vacía obtiene la denominación correspondiente a la persona.

    Cantidad, PrecioArticulo y Descuento determinan la base. PrecioArticulo=Nothing permite obtener el precio del cliente o proveedor, mientras que cero fuerza un precio cero. Calcular recalcula, Agrupar permite acumular una línea compatible y Asignar solicita la asignación al stock. Devuelve un texto con el código del movimiento o el error.

    Ejemplo:

    Main = XDoc.CreaDocumentoLinea("Pedido", "A", 1234, "", 0, DateSerial(2026, 9, 30), "ART001", "", "", "", 2, 10, 0, True, False, True)
  • XDoc.ValDoc(Condicion, Orden, Opciones)

    Valida o desvalida los documentos seleccionados. Documento en Opciones admite pedidos, albaranes y facturas de clientes o proveedores; Desvalidar=Si invierte el proceso. Comprueba el cierre contable y el estado, calcula o anula los totales y realiza las operaciones asociadas de vencimientos y contabilización cuando corresponden. Devuelve Procesados y No procesados.

    Ejemplo:

    Main = XDoc.ValDoc("Prefijo='A' AND Numero=1234", "Numero", "Documento=Factura Desvalidar=No")
  • XDoc.FAP(Condicion, Orden, Opciones)

    Convierte, copia o agrupa documentos comerciales. Origen y Destino en Opciones deben ser Pedido, Albaran, Factura o sus equivalentes de proveedor. Condicion y Orden seleccionan los documentos de origen. PrefijoExistente y NumeroExistente permiten añadir al destino existente, que debe estar sin validar. PersonaDestino permite cambiar la persona y es necesaria al cambiar entre cliente y proveedor.

    FechaDestino usa por defecto la fecha de trabajo; ConceptoDestino, EstadoFinal, NombreDoc y Especial ajustan la cabecera y el contador. Agrupar agrupa documentos. CalcularLineas, SumarLineas y CalcularDocumento controlan los cálculos. IgnorarEstado e IgnorarRiesgos omiten las comprobaciones correspondientes. Invertir cambia signos al copiar entre documentos del mismo tipo; Referencia conserva la referencia original; TramitarMovimientos permite usar cantidades a tramitar fuera de pedidos y LotesUnidades copia esos detalles. Comprueba el cierre contable y devuelve los documentos generados o las incidencias.

    Ejemplo:

    Main = XDoc.FAP("Prefijo='A' AND Numero=1234", "Prefijo, Numero", "Origen=Pedido Destino=Albaran CalcularLineas=Si SumarLineas=Si CalcularDocumento=Si")
  • XDoc.BFAP(Condicion, Orden, Opciones)

    Borra los documentos seleccionados del tipo indicado por Documento en Opciones. Admite pedidos, albaranes, facturas, sus variantes de proveedor, AlbaranInterno y OrdenFabricacion. Comprueba su estado mediante EstFAP, salvo BorradoForzado=Si. NoVariarExistencias=Si evita la variación de existencias al eliminar. Trata movimientos, relaciones y vencimientos según el tipo de documento y devuelve CantidadBorrados o el error.

    Ejemplo:

    Main = XDoc.BFAP("Prefijo='A' AND Numero=1234", "Numero", "Documento=Pedido BorradoForzado=No NoVariarExistencias=No")
  • XDoc.GenVtos(Condicion, Orden, Opciones)

    Genera los vencimientos y la descripción de pago de los documentos indicados por Documento en Opciones. Para Factura crea recibos y para FacturaProveedor pagos, eliminando primero los anteriores relacionados. Omite provisiones de fondos. Eliminar=Si solo elimina los vencimientos existentes.

    Inverso=Si, para facturas de clientes, interpreta DescripcionPago como grupos de fecha, importe y forma de pago separados por punto y coma. En el modo normal utiliza las condiciones de pago del documento y la configuración NumeraReciboFactura. Devuelve el resultado preparado por el proceso o el error; no debe asumirse que un texto vacío signifique que no se han modificado registros.

    Ejemplo:

    Main = XDoc.GenVtos("Prefijo='A' AND Numero=1234", "Numero", "Documento=Factura Eliminar=No Inverso=No")
  • XDoc.MarcaRecibo(Condicion, Orden, Opciones)

    Modifica el estado de los recibos seleccionados. Accion en Opciones admite Banco, AnularBanco, Recibido, NoRecibido, Tramitado, NoTramitado, Descontado, NoDescontado, Cobrado, NoCobrado, CobradoDescontado, NoCobradoDescontado, Devuelto y NoDevuelto.

    BancoCobro asigna el banco; FechaRecepcion, FechaTramitacion, FechaDescontado, FechaCobro, FechaDisponible y FechaDevolucion corresponden a cada gestión. FormaPago indica la forma real y Gastos modifica los gastos. Comprueba fechas, bancos, estado y cierre contable, y puede contabilizar, descontabilizar o duplicar recibos devueltos según la acción y configuración. Devuelve un texto del proceso o el error.

    Ejemplo:

    Main = XDoc.MarcaRecibo("Prefijo='A' AND Numero=1234", "Numero", "Accion=Cobrado BancoCobro=1 FechaCobro='30/09/2026'")
  • XDoc.MarcaPago(Condicion, Orden, Opciones)

    Modifica los registros seleccionados de Pago. Accion admite Banco, AnularBanco, Enviado, NoEnviado, Tramitado, NoTramitado, Pagado y NoPagado. Opciones: BancoPago, FechaRecepcion para el envío, FechaTramitacion, FechaPago y FormaPago. Para Pagado, si no se especifica una fecha válida utiliza el vencimiento; una forma de pago vacía o "Copia Prevista" copia la prevista. Comprueba el cierre y llama a contabilización cuando está activada. Devuelve un resumen del marcado o el error.

    Ejemplo:

    Main = XDoc.MarcaPago("Prefijo='P' AND Numero=1234", "Numero", "Accion=Pagado BancoPago=1 FechaPago='30/09/2026'")
  • XDoc.DuplicaRecibo(ReciboPrefijo, ReciboNumero)

    Duplica el recibo identificado por ReciboPrefijo y ReciboNumero, dejando la copia sin cobrar ni devolver. Rechaza recibos ya duplicados y registra la relación entre ambos. Utiliza NumeraReciboFactura y, cuando está configurada, ReciboDevueltoFormaPago. Devuelve "Duplicado a " y la nueva referencia.

    Ejemplo:

    Main = XDoc.DuplicaRecibo("A", 1234)
  • XDoc.CompensaRecibos(Condicion, Orden, Opciones)

    Compensa recibos positivos y negativos de un mismo cliente, marcándolos como cobrados y dividiendo alguno cuando es necesario para ajustar el importe. Requiere Condicion no vacía, un único cliente y recibos no cobrados ni incobrables. Opciones: BancoCobro, FechaCobro y FormaPago. Comprueba el banco y devuelve el detalle del saldo y las operaciones realizadas.

    Ejemplo:

    Main = XDoc.CompensaRecibos("Cliente=1234 AND Cobrado=0", "Vencimiento", "BancoCobro=1 FechaCobro='30/09/2026' FormaPago='Compensacion'")
  • XDoc.DivideRecibo(ReciboPrefijo, ReciboNumero, ImporteRestante, NuevaFormaPago)

    Deja ImporteRestante en el recibo original y crea otro con la diferencia respecto a su importe anterior. NuevaFormaPago permite cambiar la forma de pago del nuevo recibo. La numeración depende de NumeraReciboFactura. Devuelve un texto con ambos importes y el identificador nuevo.

    Ejemplo:

    Main = XDoc.DivideRecibo("A", 1234, 100, "Transferencia")
  • XDoc.DividePago(PagoPrefijo, PagoNumero, ImporteRestante)

    Deja ImporteRestante en el pago original y crea otro pago por la diferencia con el importe anterior. Utiliza la configuración de numeración y devuelve un texto con los importes y el nuevo número.

    Ejemplo:

    Main = XDoc.DividePago("P", 1234, 100)
  • XDoc.MarcaPedidoEstado(Condicion, Orden, Opciones)

    Aplica Accion a los pedidos seleccionados y llama a MarcaMovPrevEstado para sus líneas con Cantidad='Todo'. Proveedor='Proveedor' en Opciones selecciona pedidos de proveedor; vacío selecciona clientes. La cabecera admite cualquier texto de Accion, pero las cantidades solo cambian para acciones reconocidas por MarcaMovPrevEstado. Devuelve la cantidad procesada.

    Ejemplo:

    Main = XDoc.MarcaPedidoEstado("Prefijo='A' AND Numero=1234", "Numero", "Accion=Pendiente")
  • XDoc.MarcaMovPrevEstado(Condicion, Orden, Opciones)

    Modifica cantidades de MovimientoPrevisto. Accion admite Pendiente, Tramitar, Anular, Tramitado y Cantidad. Cantidad en Opciones puede ser un número o Todo, excepto para cambiar la cantidad total. Comprueba que la cantidad solicitada sea compatible con las ya tramitadas o anuladas, desasigna y reasigna existencias alrededor del cambio y devuelve un resumen de registros modificados.

    Ejemplo:

    Main = XDoc.MarcaMovPrevEstado("PedidoPrefijo='A' AND PedidoNumero=1234", "Codigo", "Accion=Tramitar Cantidad=Todo")
  • XDoc.CreaPedidoLineasHistorico(Prefijo, Numero, Maximo, CantidadMinima, FechaMaxima)

    Intenta añadir al pedido Prefijo/Numero artículos del histórico de facturas del cliente. Maximo limita el número de artículos y CantidadMinima filtra la suma de unidades. Aunque se llama FechaMaxima, el filtro utiliza movimientos con fecha posterior o igual a ese valor.

    El código actual obtiene el cliente del campo Numero del pedido en lugar de Cliente, utiliza sintaxis de Access en parte de las consultas y no actualiza el stock. Estas particularidades pueden impedir que la generación corresponda al histórico esperado.

  • XDoc.CreaContrato(Persona, TipoPersona, Fecha, Concepto)

    Crea un contrato para Persona, comprobando su existencia en TipoPersona. Cliente utiliza Contrato y Proveedor su variante. Asigna numeración, Fecha, Concepto y los datos iniciales de IVA, y actualiza datos dependientes. Devuelve el número del contrato creado o el error.

    Ejemplo:

    Main = XDoc.CreaContrato(1234, "Cliente", DateSerial(2026, 9, 30), "Mantenimiento")
  • XDoc.ValContr(Condicion, Orden, Opciones)

    Valida o desvalida contratos calculando o anulando sus totales. TipoPersona en Opciones selecciona Cliente o Proveedor; Desvalidar=Si anula la validación. Aplica Condicion y Orden a la tabla de contratos correspondiente y devuelve Procesados y No procesados.

    Ejemplo:

    Main = XDoc.ValContr("Numero=25", "Numero", "TipoPersona=Cliente Desvalidar=No")
  • XDoc.GenFacContr(Condicion, Orden, Opciones)

    Genera documentos de las líneas de contrato con vencimiento hasta FechaHasta, que es obligatoria en Opciones. TipoPersona selecciona clientes o proveedores; Especial permite elegir contador; GenerarAlbaran=Si genera albaranes y ProporcionMes=Si aplica el prorrateo previsto para el primer periodo. Revisa fechas y cierre contable, avanza las próximas fechas y puede generar vencimientos y contabilizar las facturas. Devuelve el número de documentos de contrato generados o el error.

    Ejemplo:

    Main = XDoc.GenFacContr("Numero=25", "Numero", "TipoPersona=Cliente FechaHasta='30/09/2026' GenerarAlbaran=No")
  • XDoc.BContr(Condicion, Orden, Opciones)

    Borra los contratos seleccionados y sus líneas. TipoPersona en Opciones selecciona Cliente o Proveedor. Devuelve CantidadBorrados o el texto del error.

    Ejemplo:

    Main = XDoc.BContr("Numero=25", "Numero", "TipoPersona=Cliente")
  • XDoc.SimpAlbInt(Condicion, Orden, Opciones)

    Simplifica los albaranes internos seleccionados reuniendo movimientos del mismo artículo y reorganizando sus detalles de lotes y unidades. Desasigna y vuelve a asignar existencias alrededor de la modificación. Opciones no se utiliza. Devuelve "Albaranes Internos Simplificados=" y la cantidad.

    Ejemplo:

    Main = XDoc.SimpAlbInt("Prefijo='I' AND Numero=25", "Numero", "")
  • XDoc.CreaOF(Fecha, Descripcion, Estado, ContadorEspecial)

    Crea una OrdenFabricacion con Fecha, Descripcion y Estado, utilizando ContadorEspecial para su numeración. Devuelve un texto con Prefijo y Numero o un error de creación.

    Ejemplo:

    Main = XDoc.CreaOF(DateSerial(2026, 9, 30), "Fabricacion de ejemplo", "Pendiente", "")
  • XDoc.CreaOFLinea(Prefijo, Numero, Articulo, DenominacionArticulo, Cantidad)

    Añade un MovimientoPrevisto a la orden Prefijo/Numero, con Articulo y Cantidad. Comprueba la existencia de la orden y del artículo. Si DenominacionArticulo está vacía utiliza la del artículo. Devuelve el resultado con Codigo del movimiento creado.

    Ejemplo:

    Main = XDoc.CreaOFLinea("OF", 25, "ART001", "", 10)
  • XDoc.AIOF(Condicion, Orden, Opciones)

    Genera albaranes internos de producción a partir de las órdenes de fabricación seleccionadas y sus cantidades a tramitar. Desarrollar=Si en Opciones permite producir recursivamente componentes que quedarían con existencias negativas. Actualiza movimientos previstos, cantidades y estado de la orden y simplifica el albarán. Devuelve los contadores de generados, estado incorrecto y ausencia de cantidades a fabricar.

    Ejemplo:

    Main = XDoc.AIOF("Prefijo='OF' AND Numero=25", "Numero", "Desarrollar=No")
  • XDoc.DesarrollaComponentes(Articulo, Denominacion, Cantidad, AlbaranInternoPrefijo, AlbaranInternoNumero, OFPrefijo, OFNumero, Desarrollar)

    Procedimiento auxiliar público de producción. Genera los movimientos del artículo y sus componentes por Cantidad, vinculándolos al albarán interno y a la orden indicados. Desarrollar permite la generación recursiva de componentes con stock insuficiente. Es un Sub y no devuelve resultado.

  • XDoc.MarcaOFEstado(Condicion, Orden, Opciones)

    Aplica Accion de Opciones a las órdenes seleccionadas y la transmite a MarcaMovPrevEstado con Cantidad='Todo'. Para Accion=Anular establece el estado final Anulado. Devuelve el número de órdenes procesadas.

    Ejemplo:

    Main = XDoc.MarcaOFEstado("Prefijo='OF' AND Numero=25", "Numero", "Accion=Pendiente")
  • XDoc.DupOF(Condicion, Orden, Opciones)

    Duplica las órdenes seleccionadas creando otras con fecha de trabajo, estado Pendiente y descripción que referencia la original. Copia artículos, denominaciones y cantidades de sus líneas y marca toda la cantidad para tramitar. Opciones no se utiliza. Devuelve la cantidad de órdenes procesadas.

    Ejemplo:

    Main = XDoc.DupOF("Prefijo='OF' AND Numero=25", "Numero", "")
  • XDoc.FacProy8(Condicion, Orden, Opciones)

    Genera facturas a partir de la dedicación facturable de los proyectos seleccionados. Opciones: Agrupar reúne proyectos del mismo cliente y exige ordenar inicialmente por Proyecto.Cliente cuando hay varios; FacturaPrefijo y FacturaNumero permiten añadir a una factura sin validar; SoloTarea, FechaDesde y FechaHasta limitan la dedicación.

    AgruparDedicacion, DesglosarArticulos e IndicarUnidades controlan las líneas. IncluirAlbaranes, IncluirGastos e IncluirSuplidos amplían los conceptos tratados; CerrarProyecto permite el cierre cuando procede y CalcularDocumento solicita el cálculo final. Utiliza ArticuloProyecto y XDocFacProyDenominacion, marca la dedicación facturada y puede generar vencimientos y contabilización.

    La implementación conserva referencias SQL inconsistentes, como Artoiculo y Dedicaion, y ramas que mezclan FacturaNumero con el número generado. Su resultado depende de la rama ejecutada; devuelve un informe de lo realizado o de la incidencia.

  • XDoc.CambiaClienteCodigo(Codigo, NuevoCodigo)

    Cambia Codigo por NuevoCodigo, que debe ser positivo, libre y corresponder a un cliente original existente. Rechaza clientes con albaranes, facturas o recibos según sus comprobaciones. Actualiza también Contacto, Almacen, Pedido, MovimientoPrevisto y Proyecto. Devuelve un resumen de registros afectados. Las comprobaciones de Albaran y Factura usan Count(Codigo), lo que requiere ese campo en dichas tablas.

    Ejemplo:

    Main = XDoc.CambiaClienteCodigo(1234, 5678)
  • XDoc.CambiaProyectoCodigo(Codigo, NuevoCodigo)

    Cambia el código de un proyecto existente por otro que no exista y actualiza las referencias de Tarea, Dedicacion, DedicacionPrevista y Cita. Devuelve un mensaje de cambio o de rechazo. No recorre automáticamente otras tablas que puedan contener referencias al proyecto.

    Ejemplo:

    Main = XDoc.CambiaProyectoCodigo("P2026", "P2026B")

Indice: Las clases y sus métodos en Hexa V.9

Volver a la búsqueda anterior