Saltar a contenido

Compras / Gastos

La sección Compras/Gastos constituye el libro registro oficial de facturas recibidas y gastos de la organización, administrando todas las operaciones de adquisición de bienes y servicios, incluyendo facturas, gastos sin factura y rectificativas. Almacena información exhaustiva del documento (número de factura, fecha de expedición, estado), datos del proveedor y fiscales, desglose económico completo (bases imponibles, cuotas IVA, recargos de equivalencia, retenciones, total), productos con cantidades y precios, configuración fiscal (tipo de operación, clave de operación, actividad), parámetros de pago (condiciones, plazos, método, moneda), y vinculación a proyectos. Su objetivo es mantener un registro fiscal completo conforme a normativa, facilitar la gestión de pagos a proveedores, controlar las entradas de inventario y generar automáticamente los asientos contables correspondientes. Se integra con Contabilidad (asientos automáticos), Inventario (entrada de productos), Proyectos (imputación de costes) y Tesorería (gestión de pagos). Cumple con los requisitos del libro registro de facturas recibidas según normativa fiscal española.

Información General

Propiedad Valor
ID 8fac2930-c1ea-48b5-ab89-50a0725e86e2
Tabla PostgreSQL tpr_30040105553
Etiqueta Plural Compras / Gastos
Texto principal automatico
Sección Lista Lista - Compras / Gastos (2c0222d4-998b-4b96-bb25-624280a18e13)
Sección Base Base - Compras / Gastos (340bde1f-cdc9-4471-b55e-44b9c96dd508)

Campos

Total de campos: 134 (10 del sistema, 124 personalizados)

Campos del Sistema

Campo Tipo Rol Columna PostgreSQL Relación Atributos
ID Relación - id Compras / Gastos -
Referencia Texto - nombre - -
Fecha Alta Dato Fecha Y Hora - fecha - -
Editado Fecha Y Hora - fecham - -
Eliminado Sí/No - eliminado - -
Usuario Creador del dato Relación - usuarioid Base - Entidades -
Sección (Relación Sistema) Relación - plantillapid - 🔴 Obligatorio
Posición (Orden) Decimal - posicion - -
Modificado Sí/No - modificado - -
Fecha Indice Actividad Fecha Y Hora - fechaia - -

Campos Personalizados

Campo Tipo Pestaña Columna Atributos Notas
Proyecto General Relación Proyecto pr_10040265801 - -
Campaña Relación Campaña pr_60010158832 - -
Almacén Relación Avanzado pr_30695342 - -
Destinador Relación General pr_300401055575 🔒 Bloqueado, 👁 Oculto -
Hora local Hora Registro pr_300401055570 🔒 Bloqueado, 👁 Oculto -
Base Imponible 1 Decimal Bases pr_4004010567628 🔒 Bloqueado, 📊 Cualquier valor numérico -
Ubicación Principal Relación Registro pr_300401055567 👁 Oculto Autorrellenado (Siempre): Campo (Sesión): Ubicación Principal
Total a pagar Decimal Desarrollo pr_4004010567631 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Base Imponible 1 - Cuota IVA Decimal Bases pr_4004010567635 📊 Cualquier valor numérico -
Total pagado Decimal Desarrollo pr_4004010567634 🔒 Bloqueado, 👁 Oculto, ⚙️ Auto-Calculado, 📊 Cualquier valor numérico -
Base Imponible 3 Decimal Bases pr_4004010567642 🔒 Bloqueado, 📊 Cualquier valor numérico -
Suma (Sin impuestos) Decimal Detalles pr_4004010567640 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Cantidad de productos que deben entrar Decimal Productos pr_4004010567649 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico Autorrellenado (Siempre): Sumar (Columna): Cantidad de productos que deben entrar
Puesto de trabajo Relación Registro pr_4004010567691 👁 Oculto Autorrellenado (Siempre): Campo (Sesión): Puesto de trabajo
Impuesto 2 Relación Bases pr_4004010567690 🔒 Bloqueado -
Total descuentos Decimal Detalles pr_4004010567655 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Total entrados (Destinador) Decimal Desarrollo pr_4004010567672 🔒 Bloqueado, 👁 Oculto, ⚙️ Auto-Calculado, 📊 Cualquier valor numérico -
Total retención Decimal Bases pr_4004010567668 🔒 Bloqueado, 📊 Cualquier valor numérico -
Suma exenta Decimal Bases pr_4004010567602 🔒 Bloqueado, 📊 Cualquier valor numérico -
Base Imponible 3 - Cuota R.E Decimal Bases pr_4004010567610 📊 Cualquier valor numérico -
Base Imponible 2 - Cuota R.E Decimal Bases pr_4004010567605 📊 Cualquier valor numérico -
Presupuesto de compra Relación General pr_20040105794 👁 Oculto -
Total Rectificados (Destinadores) Decimal Desarrollo pr_4004010567615 🔒 Bloqueado, 👁 Oculto, ⚙️ Auto-Calculado, 📊 Cualquier valor numérico -
Suma Exenta - Descuentos de productos Decimal Bases pr_4004010567618 🔒 Bloqueado, 📊 Cualquier valor numérico -
Impuesto 1 Relación Bases pr_4004010567680 🔒 Bloqueado -
Suma exenta - Descuentos generales Decimal Bases pr_4004010567617 🔒 Bloqueado, 📊 Cualquier valor numérico -
Cantidad de productos que se pueden rectificar Decimal Desarrollo pr_4004010567616 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico Autorrellenado (Siempre): Sumar (Columna): Cantidad de productos que pueden devolverse
Autor del alta Relación Registro pr_300401055568 🔴 Obligatorio, 👁 Oculto Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* )
Suma 3 - Descuentos generales Decimal Bases pr_4004010567626 🔒 Bloqueado, 📊 Cualquier valor numérico -
Cantidad de Productos Decimal General pr_4004010567625 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico Autorrellenado (Siempre): Sumar (Columna): Unidades · Número total de productos.
Provincia (Empresa) Texto Datos fiscales pr_100401388211 - Autorrellenado (Siempre): Campo : Datos fiscales (Empresa) / Provincia
Teléfono (Empresa) Texto Datos fiscales pr_10040138824 - Autorrellenado (Siempre): Campo : Datos fiscales (Empresa) / Teléfono
Denominación / Razón Social (Empresa) Texto Datos fiscales pr_100401388210 - Autorrellenado (Siempre): Campo : Datos fiscales (Empresa) / Apellidos y Nombre o Razón social
Código postal (Empresa) Texto Datos fiscales pr_10040138828 - Autorrellenado (Siempre): Campo : Datos fiscales (Empresa) / Código postal
Impuesto predeterminado Relación Detalles pr_30040148968 👁 Oculto Autorrellenado (Cadena_Rellenada): Campo : Proveedor / Impuesto en Compras · Autorrellenado (Cadena_Rellenada): Campo : Tipo de operación / Impuesto predeterminado
Editar manualmente bases imponibles Sí/No Bases pr_50040163131 - -
Marcar como concluida aunque hayan procesos pendientes Sí/No Avanzado pr_50040173901 - -
Total salidos (Destinadores) Decimal Desarrollo pr_10040242021 🔒 Bloqueado, 👁 Oculto, ⚙️ Auto-Calculado, 📊 Cualquier valor numérico -
Cantidad de productos que deben salir Decimal Desarrollo pr_10040242022 👁 Oculto, 📊 Cualquier valor numérico Autorrellenado (Siempre): Sumar (Columna): Cantidad de productos que deben de salir
Total operación Decimal Bases pr_60040256621 🔒 Bloqueado, 📊 Cualquier valor numérico -
Clave de operación Relación Avanzado pr_20040256991 🔴 Obligatorio Autorrellenado (Cadena_Rellenada): Campo : Tipo de operación / Clave predeterminada de operaciones · Autorrellenado (Cadena_Rellenada): Campo : Actividad / Clave predeterminada de operaciones · Autorrellenado (Siempre): Referencia dato: 0 - Operación habitual
Suma descuentos Productos Decimal Detalles pr_20040502504 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Suma descuentos Productos (Con impuestos) Decimal Detalles pr_20040504646 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Peso total Decimal Bases pr_40040504642 🔒 Bloqueado, 📊 Cualquier valor numérico -
Versión sistema de facturación Entero Registro pr_100405048211 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Total descuentos (Con impuestos) Decimal Detalles pr_20040502503 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Gasto suplido en Factura Relación Parámetros pr_20040587221 - -
Estado Relación General pr_4004010567688 - Autorrellenado (Siempre): Referencia dato: Abierta
Archivo Relación Avanzado pr_10681181 - -
Fecha Dato Fecha Y Hora General pr_300401055569 🔴 Obligatorio Autorrellenado (Siempre): Fecha y Hora actual
Proveedor Relación General pr_4004010567681 - -
Suma descuentos Generales (Con impuestos) Decimal Detalles pr_4004010567648 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Suma (Con impuestos) Decimal Detalles pr_60040115043 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Total descuentos (Sin impuestos) Decimal Detalles pr_4004010567659 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Suma descuentos Productos (Sin impuestos) Decimal Detalles pr_4004010567630 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Suma descuentos Generales (Sin impuestos) Decimal Detalles pr_30040148969 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Suma descuentos Generales Decimal Detalles pr_4004010567673 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Suma Decimal Detalles pr_4004010567656 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Fecha Alta del registro Fecha Y Hora Registro pr_300401055572 🔴 Obligatorio, 👁 Oculto Autorrellenado (Siempre): Fecha y Hora actual
Número de factura Texto General pr_60040145291002 - -
Actividad Relación Avanzado pr_30040256141 - Autorrellenado (Cadena_Rellenada): Campo : Tipo de operación / Actividad predeterminada
Empleado Relación Avanzado pr_300401055566 🔴 Obligatorio Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* )
Observaciones y anotaciones Texto Avanzado pr_4004010567693 - -
Número de referencia interna (Completo) Texto Avanzado pr_4004010567694 - -
Total impuestos Decimal General pr_4004010567637 🔒 Bloqueado, 📊 Cualquier valor numérico -
Total Decimal General pr_4004010567608 🔒 Bloqueado, 📊 Cualquier valor numérico -
Subtotal Decimal General pr_4004010567614 🔒 Bloqueado, 📊 Cualquier valor numérico -
Suma 1 - Descuentos generales Decimal Bases pr_4004010567644 🔒 Bloqueado, 📊 Cualquier valor numérico -
Suma 1 - Descuentos de productos Decimal Bases pr_4004010567639 🔒 Bloqueado, 📊 Cualquier valor numérico -
Base Imponible 1 - Cuota R.E Decimal Bases pr_4004010567653 📊 Cualquier valor numérico -
Suma 2 Decimal Bases pr_4004010567650 🔒 Bloqueado, 📊 Cualquier valor numérico -
Suma 2 - Descuentos de productos Decimal Bases pr_4004010567663 🔒 Bloqueado, 📊 Cualquier valor numérico -
Base Imponible 2 Decimal Bases pr_4004010567598 🔒 Bloqueado, 📊 Cualquier valor numérico -
Suma 2 - Descuentos generales Decimal Bases pr_4004010567604 🔒 Bloqueado, 📊 Cualquier valor numérico -
Suma 1 Decimal Bases pr_4004010567612 🔒 Bloqueado, 📊 Cualquier valor numérico -
Base Imponible 2 - Cuota IVA Decimal Bases pr_4004010567622 📊 Cualquier valor numérico -
Total Suplidos Decimal Bases pr_60040256611 🔒 Bloqueado, 📊 Cualquier valor numérico -
Impuesto 3 Relación Bases pr_4004010567684 🔒 Bloqueado -
Base Imponible Exenta Decimal Bases pr_4004010567636 🔒 Bloqueado, 📊 Cualquier valor numérico -
Base Imponible 3 - Cuota IVA Decimal Bases pr_4004010567658 📊 Cualquier valor numérico -
Suma 3 Decimal Bases pr_4004010567669 🔒 Bloqueado, 📊 Cualquier valor numérico -
Provincia (Proveedor) Texto Datos fiscales pr_60040138816 - Autorrellenado (Siempre): Campo : Datos fiscales (Proveedor) / Provincia
Código postal (Proveedor) Texto Datos fiscales pr_600401388110 - Autorrellenado (Siempre): Campo : Datos fiscales (Proveedor) / Código postal
Suma 3 - Descuentos de productos Decimal Bases pr_4004010567620 🔒 Bloqueado, 📊 Cualquier valor numérico -
Datos fiscales (Proveedor) Relación Datos fiscales pr_60040138815 - Autorrellenado (Siempre): Campo : Proveedor / Datos fiscales (Predeterminados)
Teléfono (Proveedor) Texto Datos fiscales pr_10040138822 - Autorrellenado (Siempre): Campo : Datos fiscales (Proveedor) / Teléfono
País (Proveedor) Texto Datos fiscales pr_60040138817 - Autorrellenado (Siempre): Campo : Datos fiscales (Proveedor) / País
NIF (Empresa) Texto Datos fiscales pr_10040138829 - Autorrellenado (Siempre): Campo : Datos fiscales (Empresa) / NIF
Dirección (Empresa) Texto Datos fiscales pr_10040138826 - Autorrellenado (Siempre): Campo : Datos fiscales (Empresa) / Dirección Completa
Denominación / Razón Social (Proveedor) Texto Datos fiscales pr_600401388111 - Autorrellenado (Siempre): Campo : Datos fiscales (Proveedor) / Apellidos y Nombre o Razón social
Municipio (Empresa) Texto Datos fiscales pr_10040138825 - Autorrellenado (Siempre): Campo : Datos fiscales (Empresa) / Municipio
Datos fiscales (Empresa) Relación Datos fiscales pr_10040138827 - Autorrellenado (Cadena_Rellenada): Campo (Empresa Actual): Datos fiscales · Autorrellenado (Siempre): Campo : Ubicación Principal / Datos fiscales
NIF (Proveedor) Texto Datos fiscales pr_600401388112 - Autorrellenado (Siempre): Campo : Datos fiscales (Proveedor) / NIF
Municipio (Proveedor) Texto Datos fiscales pr_60040138818 - Autorrellenado (Siempre): Campo : Datos fiscales (Proveedor) / Municipio
País (Empresa) Texto Datos fiscales pr_10040138823 - Autorrellenado (Siempre): Campo : Datos fiscales (Empresa) / País
Dirección (Proveedor) Texto Datos fiscales pr_60040138819 - Autorrellenado (Siempre): Campo : Datos fiscales (Proveedor) / Dirección Completa
Nómina Relación Avanzado pr_30702761 - -
Fecha expedición Fecha Avanzado pr_40702761002 - -
Asiento contable Relación Avanzado pr_40040135291 - -
Asignar manualmente la fecha contable Sí/No Avanzado pr_10040268922 - -
Impedir autorrellenado destinadores Sí/No General pr_20736581 👁 Oculto -
Forma de rectificación Entero Parámetros pr_50732771 📊 Cualquier valor numérico -
Numeración / Serie Relación Parámetros pr_4004010567689 - Autorrellenado (Siempre): Campo : Tipo de operación / Numeración (Ordinarias)
Compra a rectificar Relación Parámetros pr_200402418410 - -
Cumplimiento ID Texto Parámetros pr_50732774 👁 Oculto -
Ha sido sustituida Sí/No Parámetros pr_50732773 🔒 Bloqueado -
Tipo factura Entero Parámetros pr_200402418512 🔴 Obligatorio, 📊 Cualquier valor numérico Autorrellenado (Siempre): Número entero: 1
Tipo de operación Relación General pr_4004010567677 🔴 Obligatorio Autorrellenado (Cadena_Rellenada): Campo : Proveedor / Tipo predeterminado de compra · Autorrellenado (Siempre): Campo (Empresa Actual): Tipo predeterminado de compra
Condición de pago (Días) Entero Parámetros pr_40040176522 📊 Cualquier valor numérico Autorrellenado (Siempre): Campo : Proveedor / Plazo días pago Compras
Fecha contable Fecha Avanzado pr_40040135702 - -
Fecha operación Fecha Avanzado pr_40746721 - -
Descuento Entidad % Decimal Parámetros pr_4004010567674 📊 Positivos o 0 Autorrellenado (Siempre): Campo : Proveedor / Descuento % (Venta)
Aplicar recago de equivalencia Sí/No Parámetros pr_4004010567706 - Autorrellenado (Siempre): Campo : Proveedor / Comprar con recargo de equivalencia
Moneda extranjera Relación Parámetros pr_10040454262 - Autorrellenado (Siempre): Campo : Proveedor / Moneda en compras
Retención Relación Parámetros pr_4004010567686 - Autorrellenado (Cadena_Rellenada): Campo : Proveedor / Retención en Compras · Autorrellenado (Siempre): Campo : Actividad / Retención en Compras
Precios con impuestos incluidos Sí/No Parámetros pr_4004010567704 - -
Impuesto (General Aplicado) Relación Parámetros pr_40695811008 - -
Descuento General % Decimal Parámetros pr_4004010567629 📊 Positivos o 0 Autorrellenado (Siempre): Campo : Proveedor / Descuento % (Compras)
Condiciones de pago Texto Parámetros pr_40040176524 - Autorrellenado (Siempre): Campo : Proveedor / Condiciones pago Compras
Fecha de vencimiento Fecha Parámetros pr_40040176523 - -
Categoría (General) Relación Parámetros pr_40695811007 - -
Cambio moneda extranjera Decimal Parámetros pr_10040454261 📊 Cualquier valor numérico -
Sustituida por Relación Avanzado pr_60764231003 🔒 Bloqueado -
Vigente Sí/No General pr_20764242 🔒 Bloqueado, 👁 Oculto Autorrellenado (Siempre): Constante: Sí

Scripts

Total de scripts: 20

Código de Scripts

Lógica de negocio ejecutada en los formularios automáticamente

Campo_Cambiado

if C.ReferenciaPresupuestoDeCompra <> ''
        C.ReferenciaProyectoGeneral = C.ReferenciaPresupuestoDeCompra.ReferenciaProyectoGeneral 
    end if

Campos utilizados: - Compras / Gastos > Presupuesto de compra

Campo_PreAgregarRelacion

F.CopiarAgregarRelacion(S.Fields.DatosFiscalesBase.ReferenciaEntidad.ID,C.ReferenciaProveedor)

Campos utilizados: - Compras / Gastos > Datos fiscales (Proveedor)

Campo_ComboAplicarFiltro

F.CampoDesplegableAplicarFiltro(S.Fields.TiposDeMovimientoBase.Seccion.ID,'=',S.Sections.TiposDeComprasGastos.ID)

Campos utilizados: - Compras / Gastos > Tipo de operación

Campo_PreAgregarRelacion

F.CopiarAgregarRelacion(S.Fields.EntidadesBase.Proveedor.ID,'1')

Campos utilizados: - Compras / Gastos > Proveedor

Campo_ComboAplicarFiltro

F.CampoDesplegableAplicarFiltro(S.Fields.DatosFiscalesBase.ReferenciaEntidad.ID,'=',C.ReferenciaProveedor)

Campos utilizados: - Compras / Gastos > Datos fiscales (Proveedor)

Campo_Cambiado

if C.TipoFactura = S.Enums.tipofactura.ordinario 
    C.ReferenciaNumeracionSerie = C.ReferenciaTipoDeOperacion.ReferenciaNumeracionOrdinarias 
elseif C.TipoFactura = S.Enums.tipofactura.rectificativo 
    C.ReferenciaNumeracionSerie = C.ReferenciaTipoDeOperacion.ReferenciaNumeracionRectificativas 
end if

Campos utilizados: - Compras / Gastos > Tipo factura - Compras / Gastos > Tipo de operación

Campo_ComboAplicarFiltro

if C.ReferenciaProveedor <> ''
     F.CampoDesplegableAplicarFiltro(S.Fields.ArrendamientosBase.ReferenciaEntidadArrendadora.ID,'=',C.ReferenciaProveedor)
     F.ListadoAvisoDesplegable('Mostrando arrendamientos del proveedor seleccionado.',1)
 else
     F.ListadoAvisoDesplegable('Mostrando arrendamientos del proveedor seleccionado.',0)
 end if

Campos utilizados: - Compras / Gastos > Arrendamiento (Obsoleto)

Campo_Cambiado

if C.ReferenciaProveedor = ''

    C.ReferenciaProveedor = C.ReferenciaArrendamientoObsoleto.ReferenciaEntidadArrendadora 

end if

Campos utilizados: - Compras / Gastos > Arrendamiento (Obsoleto)

Campo_PreAgregarRelacion

F.CopiarAgregarRelacion(S.Fields.TiposRetencionesCapitalMobiliarioBase.ReferenciaEntidad.id,C.ReferenciaProveedor)

Campos utilizados: - Compras / Gastos > Reto. Capital Mobiliario (Obsoleto)

Campo_ComboAplicarFiltro

F.CampoDesplegableAplicarFiltro(S.Fields.TiposRetencionesCapitalMobiliarioBase.ReferenciaEntidad.ID,'=',C.ReferenciaProveedor)

Campos utilizados: - Compras / Gastos > Reto. Capital Mobiliario (Obsoleto)

Campo_PreAgregarRelacion

F.CopiarAgregarRelacion(S.Fields.ArrendamientosBase.ReferenciaEntidadArrendadora.ID,C.ReferenciaProveedor)

Campos utilizados: - Compras / Gastos > Arrendamiento (Obsoleto)

Campo_Cambiado

num ImpuestosIncluidosNulable = C.ReferenciaProveedor.InclusionDeImpuestosEnCompras 
if V.ImpuestosIncluidosNulable <> 0
    num ImpuestosIncluidos = 0
    if V.ImpuestosIncluidosNulable = S.Enums.impuestosconfiguracion.incluidos 
        V.ImpuestosIncluidos = 1
    end if 
    if F.CountItemList = 0
        C.PreciosConImpuestosIncluidos = V.ImpuestosIncluidos 
    else
        if V.ImpuestosIncluidos <> C.PreciosConImpuestosIncluidos
            F.MsgBox('El proveedor seleccionado tiene una configuración de inclusión de impuestos distintos a la compra.',1)
        end if
    end if
end if

Campos utilizados: - Compras / Gastos > Proveedor

Campo_Click

if C.empresa.ReferenciaMoneda.CodigoISO4217 = ''

    F.MsgBox('Debe indicar una moneda en la configuración de la empresa.',1)

elseif C.ReferenciaMonedaExtranjera.CodigoISO4217 = ''

    F.MsgBox('Debe seleccionar una moneda.',1)
else

    C.CambioMonedaExtranjeraObsoleto = F.CurrencyChange(C.empresa.ReferenciaMoneda.CodigoISO4217,C.ReferenciaMonedaExtranjera.CodigoISO4217,C.FechaContable)
end if

Campos utilizados: - Botón

Campo_PreAgregarRelacion

F.Guardar()
F.CopiarAgregarRelacion(S.Fields.AsientosContablesBase.ReferenciaFacturaRecibida.ID,C.ID)

Campos utilizados: - Compras / Gastos > Asiento contable

Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion

if C.ImpedirAutorrellenadoDestinadores 
    salir
end if 


if C.ReferenciaDestinador = S.Destinadores.ComprasGastos.CompraRectificativa.ID 
    if C.ReferenciaCompraARectificar <> ''

        C.ReferenciaProveedor = C.ReferenciaCompraARectificar.ReferenciaProveedor
        C.ReferenciaRetencion = C.ReferenciaCompraARectificar.ReferenciaRetencion
        C.ReferenciaTipoDeOperacion = C.ReferenciaCompraARectificar.ReferenciaTipoDeOperacion
        C.ReferenciaImpuestoPredeterminado = C.ReferenciaCompraARectificar.ReferenciaImpuestoPredeterminado
        C.ReferenciaUbicacionPrincipal = F.GetRowById(S.Sections.Ubicaciones.ID,C.ReferenciaCompraARectificar.ReferenciaUbicacionPrincipal)
        C.ReferenciaDatosFiscalesEmpresa = C.ReferenciaCompraARectificar.ReferenciaDatosFiscalesEmpresa
        C.ReferenciaDatosFiscalesProveedor = C.ReferenciaCompraARectificar.ReferenciaDatosFiscalesProveedor
        C.ReferenciaMonedaExtranjera = C.ReferenciaCompraARectificar.ReferenciaMonedaExtranjera 
        C.ReferenciaClaveDeOperacion = C.ReferenciaCompraARectificar.ReferenciaClaveDeOperacion 


        C.DescuentoGeneralPorciento = C.ReferenciaCompraARectificar.DescuentoGeneralPorciento
        C.DescuentoEntidadPorciento = C.ReferenciaCompraARectificar.DescuentoEntidadPorciento

        C.AplicarRecagoDeEquivalencia = C.ReferenciaCompraARectificar.AplicarRecagoDeEquivalencia 
        C.PreciosConImpuestosIncluidos = C.ReferenciaCompraARectificar.PreciosConImpuestosIncluidos


        C.TipoFactura = S.Enums.tipofactura.rectificativo 



    end if 


end if

if C.ReferenciaDestinador = S.Destinadores.PresupuestosDeComprasYGastos.CompraGastoDePresupuesto.ID 
    if C.ReferenciaPresupuestoDeCompra <> ''

        C.ReferenciaProveedor = C.ReferenciaPresupuestoDeCompra.ReferenciaProveedor
        C.ReferenciaRetencion = C.ReferenciaPresupuestoDeCompra.ReferenciaRetencion
        C.ReferenciaUbicacionPrincipal = F.GetRowById(S.Sections.Ubicaciones.ID,C.ReferenciaPresupuestoDeCompra.ReferenciaUbicacionPrincipal)
        C.ReferenciaDatosFiscalesEmpresa = C.ReferenciaPresupuestoDeCompra.ReferenciaDatosFiscalesEmpresa
        C.ReferenciaDatosFiscalesProveedor = C.ReferenciaPresupuestoDeCompra.ReferenciaDatosFiscalesProveedor
        C.ReferenciaMonedaExtranjera = C.ReferenciaPresupuestoDeCompra.ReferenciaMonedaExtranjera 


        C.DescuentoGeneralPorciento = C.ReferenciaPresupuestoDeCompra.DescuentoGeneralPorciento
        C.DescuentoEntidadPorciento = C.ReferenciaPresupuestoDeCompra.DescuentoEntidadPorciento

        C.AplicarRecagoDeEquivalencia = C.ReferenciaPresupuestoDeCompra.AplicarRecagoDeEquivalencia 
        C.PreciosConImpuestosIncluidos = C.ReferenciaPresupuestoDeCompra.PreciosConImpuestosIncluidos


        C.ReferenciaDatosFiscalesEmpresa = C.ReferenciaPresupuestoDeCompra.ReferenciaDatosFiscalesEmpresa
        C.ReferenciaDatosFiscalesProveedor = C.ReferenciaPresupuestoDeCompra.ReferenciaDatosFiscalesProveedor



    end if 
end if

Formulario_PreACeptar

num DistintosImpuestos = F.Columna_ContarDistintosRellenados(S.Fields.ComprasGastosLista.ReferenciaImpuestos.id)

 if V.DistintosImpuestos > 3


     F.MsgBox('No puede registrar facturas con más de 3 distintos impuestos aplicados.',1)
     F.CancelarEvento
     salir

 end if







 if F.CampoHaSidoModificado(S.Fields.ComprasGastos.NumeroDeFactura.id) y C.NIFProveedor <> '' y C.NumeroDeFactura <> ''

     F.DataListLoad(S.Sections.ComprasGastos.ID,1,1)
     F.DataListLoadAddFilter(S.Sections.ComprasGastos.ID,S.Fields.ComprasGastos.NumeroDeFactura.ID,'=',C.NumeroDeFactura)
     F.DataListLoadAddFilter(S.Sections.ComprasGastos.ID,S.Fields.ComprasGastos.NIFProveedor.ID,'=',C.NIFProveedor)



     num CantidadDeRegistro = 0

     F.ProcessDataList_Ini(S.Sections.ComprasGastos.ID)
         V.CantidadDeRegistro = 1

     F.ProcessDataList_End 


     if V.CantidadDeRegistro = 1

         if F.PreguntarSiNo('Número repetido de factura','Ya se ha registrado en el sistema una factura con el mísmo número y Proveedor. ¿Desea agregarla igualmente?',1) = 0


             F.CancelarEvento


         end if

     end if


 end if







 txt Mensaje = ''


 if C.ImporteTotal < 0 y C.TipoFactura = S.Enums.tipofactura.ordinario 

     V.Mensaje = 'El importe de la factura a resultado negativo pero la factura no está marcada como rectificativa.  El sistema espera que las facturas en negativo estén marcadas como "Rectificativas". ¿Desea continuar?'

 elseif C.ImporteTotal > 0 y C.TipoFactura = S.Enums.tipofactura.rectificativo 

     V.Mensaje = 'El importe de la factura a resultado positivo pero la factura está marcada como rectificativa.  El sistema espera que las facturas en positivo no estén marcadas como "Rectificativas". ¿Desea continuar?'

 end if


 if V.Mensaje <> ''


     if F.PreguntarSiNoCancelar('Aviso',v.Mensaje,1) <> 1

         F.CancelarEvento

     end if


 end if

Campo_ComboAplicarFiltro

F.CampoDesplegableAplicarFiltro(S.Fields.EntidadesBase.Proveedor.id,'=',1)
F.CampoDesplegableActivarQuitarFiltros('Proveedores')

Campos utilizados: - Compras / Gastos > Proveedor

Formulario_TickRecalculo

if C.ReferenciaGastoSuplidoEnFactura <> ''
    C.ImporteTotalAPagar = 0
else


    num totalAPAgar = C.ImporteTotal 


    if C.ReferenciaImpuesto1.InversionDelSujetoPasivo
        V.totalAPAgar = V.totalAPAgar - C.ImporteBaseImponible1CuotaIVA 
        V.totalAPAgar = V.totalAPAgar - C.ImporteBaseImponible1CuotaRE 
    end if
    if C.ReferenciaImpuesto2.InversionDelSujetoPasivo
        V.totalAPAgar = V.totalAPAgar - C.ImporteBaseImponible2CuotaIVA 
        V.totalAPAgar = V.totalAPAgar - C.ImporteBaseImponible2CuotaRE 
    end if
    if C.ReferenciaImpuesto3.InversionDelSujetoPasivo
        V.totalAPAgar = V.totalAPAgar - C.ImporteBaseImponible3CuotaIVA 
        V.totalAPAgar = V.totalAPAgar - C.ImporteBaseImponible3CuotaRE 
    end if



    C.ImporteTotalAPagar = V.totalAPAgar
end if




if F.CampoHaSidoAfectadoEntreTicks(S.Fields.ComprasGastos.CondicionDePagoDias.id) o F.CampoHaSidoAfectadoEntreTicks(S.Fields.ComprasGastos.FechaContable.id)
    if C.CondicionDePagoDias > 0
        C.FechaDeVencimiento = F.Date_AddDays(C.FechaContable,C.CondicionDePagoDias)
    end if
end if



txt MotivoBloqueoVencimiento = 'La fecha de vencimiento se configura automáticamente segundo las condiciones de pago y la fecha de la compra.'
if C.CondicionDePagoDias > 0
    F.CampoBloqueadoMotivo(S.Fields.ComprasGastos.FechaDeVencimiento.ID,v.MotivoBloqueoVencimiento,1)
else
    F.CampoBloqueadoMotivo(S.Fields.ComprasGastos.FechaDeVencimiento.ID,v.MotivoBloqueoVencimiento,0)
end if





num BloqueoVentaRec
txt BloqueoVentaRecDesc = 'Esta casilla está reservada para ventas rectificativas.'
if C.TipoFactura = S.Enums.tipofactura.rectificativo o C.ReferenciaCompraARectificar <> ''
    V.BloqueoVentaRec = 0
else
    V.BloqueoVentaRec = 1
end if

F.CampoBloqueadoMotivo(S.Fields.ComprasGastos.ReferenciaCompraARectificar.ID,v.BloqueoVentaRecDesc,v.BloqueoVentaRec)
F.CampoBloqueadoMotivo(S.Fields.ComprasGastos.FormaDeRectificacion.ID,v.BloqueoVentaRecDesc,v.BloqueoVentaRec)



num obligatorioCamposRectificativos

if C.TipoFactura = S.Enums.tipofactura.rectificativo
    V.obligatorioCamposRectificativos = 1
else
    V.obligatorioCamposRectificativos = 0
end if


F.CampoObligatorioMotivo(S.Fields.ComprasGastos.ReferenciaCompraARectificar.ID,'Necesario en facturas rectificativas.',v.obligatorioCamposRectificativos)
F.CampoObligatorioMotivo(S.Fields.ComprasGastos.FormaDeRectificacion.ID,'Necesario en facturas rectificativas.',v.obligatorioCamposRectificativos)




if C.ReferenciaCompraARectificar <> ''
    C.ReferenciaDestinador = S.Destinadores.ComprasGastos.CompraRectificativa.ID 
else
    C.ReferenciaDestinador = ''
end if 





num Obligado = 1

if C.ReferenciaTipoDeOperacion.EsUnMovimientoSinFactura = 1
    V.Obligado = 0
end if

F.CampoObligatorioMotivo(S.Fields.ComprasGastos.NumeroDeFactura.ID,'Las facturas deben tener el número de factura, si no es el caso, puede marcarla como gasto sin factura.',v.Obligado)

← Volver al índice