Saltar a contenido

Asientos contables

Asientos contables registra todas las anotaciones del libro diario de su organización según el Plan General Contable. Almacena información completa de cada asiento (número, fecha, ejercicio, concepto) y sus movimientos (líneas con subcuenta, debe y haber), garantizando que cada asiento esté cuadrado. Se genera automáticamente desde documentos origen como facturas emitidas/recibidas, cobros, pagos, nóminas, movimientos bancarios y amortización de inmovilizado, respetando la configuración de subcuentas. Integración completa con todos los módulos que generan impacto contable.

Información General

Propiedad Valor
ID 66424ed7-e5b3-4be1-a567-6ace93896a7d
Tabla PostgreSQL tpr_50040132182
Etiqueta Plural Asientos contables
Texto principal automatico
Sección Lista Lista - Asientos contables (d50edc6b-40f8-4d5f-a0d2-91aab8f7bb8c)
Sección Base Base - Asientos contables (c4608471-b749-46fd-a0eb-d82dda66dcc8)

Campos

Total de campos: 35 (10 del sistema, 25 personalizados)

Campos del Sistema

Campo Tipo Rol Columna PostgreSQL Relación Atributos
ID Relación - id Asientos contables -
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
Destinador Relación General pr_50040132181032 🔒 Bloqueado, 👁 Oculto -
Fecha Alta del registro Fecha Y Hora Registro pr_50040132181031 🔴 Obligatorio Autorrellenado (Siempre): Fecha y Hora actual
Autor del alta Relación Registro pr_50040132181027 🔴 Obligatorio Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* )
Hora local Hora Registro pr_50040132181029 🔒 Bloqueado, 👁 Oculto -
Sección de origen Relación Listado pr_50040135265 🔒 Bloqueado, 👁 Oculto -
Numeración / Serie Relación Registro pr_50040137321 - Autorrellenado (Siempre): Campo : Ejercicio / Numeración / Serie
Ubicación Principal Relación Registro pr_50040132181026 👁 Oculto Autorrellenado (Siempre): Campo (Sesión): Ubicación Principal
Haber Decimal Listado pr_40040132391 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico Autorrellenado (Siempre): Sumar (Columna): Haber
Fecha de asiento Fecha General pr_50040132391 🔴 Obligatorio Autorrellenado (Siempre): Fecha actual
Debe Decimal Listado pr_40040132392 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico Autorrellenado (Siempre): Sumar (Columna): Debe
Ejercicio Relación General pr_20040137214 🔴 Obligatorio Autorrellenado (Siempre): Campo (Empresa Actual): Ejercicio
Factura Recibida Relación Relaciones pr_20040550125 - -
Inmovilizado Relación Relaciones pr_50742461001 - -
Registro de origen Relación General pr_50040135264 🔒 Bloqueado, 👁 Oculto -
Número Asiento Texto General pr_50040137323 - -
Tipo de asiento Entero General pr_50040140013 👁 Oculto, 📊 Mayores que 0 Autorrellenado (Siempre): Número entero: 1
Concepto Texto General pr_10040137323 - -
Entidad relacionada Relación Relaciones pr_30040550121 - -
Movimiento bancario Relación Relaciones pr_10040550483 - -
Pago Relación Relaciones pr_10040550486 - -
Cobros Relación Relaciones pr_10040550485 - -
Generar asiento automáticamente Sí/No Relaciones pr_50040560451 - Autorrellenado (Siempre): Constante: Sí
Venta / Ingreso Relación Relaciones pr_20040550126 - -
Nómina Relación Relaciones pr_40679041 - -
Pago de nómina Relación Relaciones pr_40743431001 - -

Scripts

Total de scripts: 9

Código de Scripts

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

Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion

if C.ReferenciaVentaIngreso <> ''
    C.ReferenciaSeccionDeOrigen = S.Sections.VentasIngresos.ID 
    C.ReferenciaRegistroDeOrigen = C.ReferenciaVentaIngreso
elseif C.ReferenciaSeccionDeOrigen = S.Sections.VentasIngresos.ID 
    C.ReferenciaVentaIngreso = F.GetRowById(S.Sections.VentasIngresos.ID,C.ReferenciaRegistroDeOrigen)
end if

if C.ReferenciaSeccionDeOrigen <> S.Sections.VentasIngresos.ID o C.ReferenciaVentaIngreso = ''
    salir
end if

if C.GenerarAsientoAutomaticamente = 0
    salir
end if







C.ReferenciaFacturaRecibida = ''



num EsRectificativa = 0

txt Cliente_Cuenta
num Cliente_Debe
num Cliente_Haber


txt Retencion_Cuenta
num Retencion_Debe
num Retencion_Haber


F.DataListLoad(S.Sections.VentasIngresosBase.ID,1,1)
F.DataListLoadAddFilter(S.Sections.VentasIngresosBase.ID,S.Fields.VentasIngresosBase.ID.ID,'=',C.ReferenciaVentaIngreso)

F.ProcessDataList_Ini(S.Sections.VentasIngresosBase.ID)


    C.Concepto = I.VentasIngresosBase.AlgoritmoLegibilidadPrincipalDeVentas
    C.FechaDeAsiento = I.VentasIngresosBase.FechaContable 
    C.ReferenciaEntidadRelacionada = I.VentasIngresosBase.ReferenciaCliente






    @ Se usa ImporteTotalOperacion ya que no debe reflejar el suplido 
    if I.VentasIngresosBase.TipoFactura = S.Enums.tipofactura.rectificativo 

        V.Cliente_Haber = I.VentasIngresosBase.ImporteTotalOperacion * -1
        v.Retencion_Haber = I.VentasIngresosBase.ImporteTotalRetencion * -1
        V.Retencion_Cuenta = I.VentasIngresosBase.ReferenciaRetencion.ReferenciaSubcuentaVentasRectificativas 
        V.EsRectificativa = 1

    else

        V.Cliente_Debe = I.VentasIngresosBase.ImporteTotalOperacion 
        v.Retencion_Debe = I.VentasIngresosBase.ImporteTotalRetencion 
        V.Retencion_Cuenta = I.VentasIngresosBase.ReferenciaRetencion.ReferenciaSubcuentaContableVentas 

    end if


F.ProcessDataList_End







@ Cliente 
F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,v.Cliente_Debe)
F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,v.Cliente_Haber)
txt CuentaCliente = C.ReferenciaEntidadRelacionada.ReferenciaSubcuentaDeCliente
if V.CuentaCliente = ''
    V.CuentaCliente = D.EmpresaActual.ReferenciaSubcuentaPredeterminadaClientes
end if
if V.CuentaCliente = ''
    F.MsgBox('No se ha identificado ninguna subcuenta de cliente. Por favor, elija una en la ficha de la entidad o establezca una subcuenta predeterminada en la configuración de empresas para que se rellene automáticamente.',0)
else
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,v.CuentaCliente)
end 
F.AgregarElemento_Finalizar()



@ Retenciones 
if v.Retencion_Debe <> 0 o V.Retencion_Haber <> 0

    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,v.Retencion_Debe)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,v.Retencion_Haber)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,V.Retencion_Cuenta)
    F.AgregarElemento_Finalizar()

end if



@ Ventas  
F.DataListLoad(S.Reports.Funcionalidad.FacturasEmitidasBasesImponiblesAgrupadasCategorias.ID,1,9999)
F.DataListLoadAddFilter(S.Reports.Funcionalidad.FacturasEmitidasBasesImponiblesAgrupadasCategorias.ID,S.Fields.VentasIngresosBaseLista.RelacionElementoContenedorListador.ID,'=',C.ReferenciaVentaIngreso)
F.ProcessDataList_Ini(S.Reports.Funcionalidad.FacturasEmitidasBasesImponiblesAgrupadasCategorias.ID)




    if V.EsRectificativa = 1

        F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.FacturasEmitidasBasesImponiblesAgrupadasCategorias.SubcuentaDevolucionesID)
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.FacturasEmitidasBasesImponiblesAgrupadasCategorias.TotalconceptoSinimpuestos * -1)
        F.AgregarElemento_Finalizar()

    else

        F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.FacturasEmitidasBasesImponiblesAgrupadasCategorias.VentaSubcuentaID)
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.FacturasEmitidasBasesImponiblesAgrupadasCategorias.TotalconceptoSinimpuestos)
        F.AgregarElemento_Finalizar()

    end if




F.ProcessDataList_End


@ IVA 
F.ProcessDataList_Ini(S.Sections.VentasIngresosBase.ID)







    if V.EsRectificativa = 1


        if I.VentasIngresosBase.ImporteBaseImponible1CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto1.ReferenciaSubcuentaRectificacionesVentas)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.VentasIngresosBase.ImporteBaseImponible1CuotaIVA * -1)
            F.AgregarElemento_Finalizar()
        end if

        if I.VentasIngresosBase.ImporteBaseImponible1CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto1.ReferenciaSubcuentaRectificacionesVentasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.VentasIngresosBase.ImporteBaseImponible1CuotaRE * -1)
            F.AgregarElemento_Finalizar()
        end if

        if I.VentasIngresosBase.ImporteBaseImponible2CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto2.ReferenciaSubcuentaRectificacionesVentas)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.VentasIngresosBase.ImporteBaseImponible2CuotaIVA * -1)
            F.AgregarElemento_Finalizar()
        end if

        if I.VentasIngresosBase.ImporteBaseImponible2CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto2.ReferenciaSubcuentaRectificacionesVentasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.VentasIngresosBase.ImporteBaseImponible2CuotaRE * -1)
            F.AgregarElemento_Finalizar()
        end if

        if I.VentasIngresosBase.ImporteBaseImponible3CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto3.ReferenciaSubcuentaRectificacionesVentas)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.VentasIngresosBase.ImporteBaseImponible3CuotaIVA * -1)
            F.AgregarElemento_Finalizar()
        end if

        if I.VentasIngresosBase.ImporteBaseImponible3CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto3.ReferenciaSubcuentaRectificacionesVentasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.VentasIngresosBase.ImporteBaseImponible3CuotaRE * -1)
            F.AgregarElemento_Finalizar()
        end if




    else


        if I.VentasIngresosBase.ImporteBaseImponible1CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto1.ReferenciaSubcuentaVentas)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.VentasIngresosBase.ImporteBaseImponible1CuotaIVA)
            F.AgregarElemento_Finalizar()
        end if

        if I.VentasIngresosBase.ImporteBaseImponible1CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto1.ReferenciaSubcuentaRectificacionesVentasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.VentasIngresosBase.ImporteBaseImponible1CuotaRE)
            F.AgregarElemento_Finalizar()
        end if

        if I.VentasIngresosBase.ImporteBaseImponible2CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto2.ReferenciaSubcuentaVentas)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.VentasIngresosBase.ImporteBaseImponible2CuotaIVA)
            F.AgregarElemento_Finalizar()
        end if

        if I.VentasIngresosBase.ImporteBaseImponible2CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto2.ReferenciaSubcuentaRectificacionesVentasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.VentasIngresosBase.ImporteBaseImponible2CuotaRE)
            F.AgregarElemento_Finalizar()
        end if

        if I.VentasIngresosBase.ImporteBaseImponible3CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto3.ReferenciaSubcuentaVentas)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.VentasIngresosBase.ImporteBaseImponible3CuotaIVA)
            F.AgregarElemento_Finalizar()
        end if

        if I.VentasIngresosBase.ImporteBaseImponible3CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.VentasIngresosBase.ReferenciaImpuesto3.ReferenciaSubcuentaRectificacionesVentasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.VentasIngresosBase.ImporteBaseImponible3CuotaRE)
            F.AgregarElemento_Finalizar()
        end if

    end if 

F.ProcessDataList_End

Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion

if C.ReferenciaPago <> ''
    C.ReferenciaSeccionDeOrigen = S.Sections.PagosDeCompras.ID 
    C.ReferenciaRegistroDeOrigen = C.ReferenciaPago
elseif C.ReferenciaSeccionDeOrigen = S.Sections.PagosDeCompras.ID 
    C.ReferenciaPago = F.GetRowById(S.Sections.PagosDeCompras.ID,C.ReferenciaRegistroDeOrigen)
else
    salir
end if

if C.ReferenciaSeccionDeOrigen <> S.Sections.PagosDeCompras.ID o C.ReferenciaPago = ''
    salir
end if

if C.GenerarAsientoAutomaticamente = 0
    salir
end if


C.Concepto = C.ReferenciaPago.AlgoritmoLegibilidadPrincipalPagoDeCompra 


if C.ReferenciaPago.ReferenciaProveedor <> ''
    C.ReferenciaEntidadRelacionada = C.ReferenciaPago.ReferenciaProveedor 
else
    C.ReferenciaEntidadRelacionada = C.ReferenciaPago.ReferenciaCompra.ReferenciaProveedor 
end if
C.FechaDeAsiento = C.ReferenciaPago.FechaContable 

num total = C.ReferenciaPago.ImporteTotalPagado 




txt SubcuentaProveedor = C.ReferenciaEntidadRelacionada.ReferenciaSubcuentaDeProveedor

if V.SubcuentaProveedor = ''
    V.SubcuentaProveedor = C.empresa.ReferenciaSubcuentaPredeterminadaProveedores 
end if

if V.total > 0


    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,v.total)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,v.SubcuentaProveedor)
    F.AgregarElemento_Finalizar()



    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,v.total)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,C.ReferenciaPago.ReferenciaDepositoMonetario.ReferenciaSubcuenta)
    F.AgregarElemento_Finalizar()



else


    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,v.total * -1)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,C.ReferenciaPago.ReferenciaDepositoMonetario.ReferenciaSubcuenta)
    F.AgregarElemento_Finalizar()



    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,v.total * -1)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,v.SubcuentaProveedor)
    F.AgregarElemento_Finalizar()


end if

Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion

if C.ReferenciaFacturaRecibida <> ''
    C.ReferenciaSeccionDeOrigen = S.Sections.ComprasGastos.ID 
    C.ReferenciaRegistroDeOrigen = C.ReferenciaFacturaRecibida
elseif C.ReferenciaSeccionDeOrigen = S.Sections.ComprasGastos.ID 
    C.ReferenciaFacturaRecibida = F.GetRowById(S.Sections.ComprasGastos.ID,C.ReferenciaRegistroDeOrigen)
end if

if C.ReferenciaSeccionDeOrigen <> S.Sections.ComprasGastos.ID o C.ReferenciaFacturaRecibida = ''
    salir
end if

if C.GenerarAsientoAutomaticamente = 0
    salir
end if







C.ReferenciaVentaIngreso = ''



num EsRectificativa = 0

txt Proveedor_Cuenta
num Proveedor_Debe
num Proveedor_Haber


txt Retencion_Cuenta
num Retencion_Debe
num Retencion_Haber


F.DataListLoad(S.Sections.ComprasGastosBase.ID,1,1)
F.DataListLoadAddFilter(S.Sections.ComprasGastosBase.ID,S.Fields.ComprasGastosBase.ID.ID,'=',C.ReferenciaFacturaRecibida)

F.ProcessDataList_Ini(S.Sections.ComprasGastosBase.ID)


    C.Concepto = I.ComprasGastosBase.AlgoritmoLegibilidadPrincipalFacturaCompraGasto 
    C.FechaDeAsiento = I.ComprasGastosBase.FechaContable 
    C.ReferenciaEntidadRelacionada = I.ComprasGastosBase.ReferenciaProveedor


    if I.ComprasGastosBase.TipoFactura = S.Enums.tipofactura.rectificativo 

        V.proveedor_Debe = I.ComprasGastosBase.ImporteTotal * -1 
        v.Retencion_Debe = I.ComprasGastosBase.ImporteTotalRetencion * -1
        V.Retencion_Cuenta = I.ComprasGastosBase.ReferenciaRetencion.ReferenciaSubcuentaComprasRectificativas
        V.EsRectificativa = 1

    else

        V.proveedor_Haber = I.ComprasGastosBase.ImporteTotal 
        v.Retencion_Haber = I.ComprasGastosBase.ImporteTotalRetencion 
        V.Retencion_Cuenta = I.ComprasGastosBase.ReferenciaRetencion.ReferenciaSubcuentaContableCompras 

    end if


F.ProcessDataList_End






txt SubcuentaProveedor = C.ReferenciaEntidadRelacionada.ReferenciaSubcuentaDeProveedor

if V.SubcuentaProveedor = ''
    V.SubcuentaProveedor = D.EmpresaActual.ReferenciaSubcuentaPredeterminadaProveedores 
end if




@ Cliente 
F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,v.proveedor_Debe)
F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,v.proveedor_Haber)
if V.SubcuentaProveedor = ''
    F.MsgBox('No se ha identificado ninguna subcuenta de proveedor. Por favor, elija una en la ficha de la entidad o establezca una subcuenta predeterminada en la configuración de empresas para que se rellene automáticamente.',0)
else
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,v.SubcuentaProveedor)
end 
F.AgregarElemento_Finalizar()



@ Retenciones 
if v.Retencion_Debe <> 0 o V.Retencion_Haber <> 0

    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,v.Retencion_Debe)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,v.Retencion_Haber)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,V.Retencion_Cuenta)
    F.AgregarElemento_Finalizar()

end if



@ Ventas  
F.DataListLoad(S.Reports.Funcionalidad.FacturasRecibidasBasesImponiblesAgrupadasCategorias.ID,1,9999)
F.DataListLoadAddFilter(S.Reports.Funcionalidad.FacturasRecibidasBasesImponiblesAgrupadasCategorias.ID,S.Fields.ComprasGastosBaseLista.RelacionElementoContenedorListador.ID,'=',C.ReferenciaFacturaRecibida)
F.ProcessDataList_Ini(S.Reports.Funcionalidad.FacturasRecibidasBasesImponiblesAgrupadasCategorias.ID)



     num importe = I.FacturasRecibidasBasesImponiblesAgrupadasCategorias.TotalconceptoSinimpuestos
     txt cuenta = I.FacturasRecibidasBasesImponiblesAgrupadasCategorias.SubcuentaID



    if I.FacturasRecibidasBasesImponiblesAgrupadasCategorias.Tipo = S.Enums.cotizacionfilatipo.suplido 
        if V.EsRectificativa = 1
            V.cuenta = I.FacturasRecibidasBasesImponiblesAgrupadasCategorias.SuplidoSubcuentadeProveedorID 
            V.importe = I.FacturasRecibidasBasesImponiblesAgrupadasCategorias.TotalconceptoSinimpuestos * -1
        else
            V.cuenta = I.FacturasRecibidasBasesImponiblesAgrupadasCategorias.SuplidoSubcuentadeProveedorID
            V.importe = I.FacturasRecibidasBasesImponiblesAgrupadasCategorias.TotalconceptoSinimpuestos 
        end if
    else

        if V.EsRectificativa = 1
            V.cuenta = I.FacturasRecibidasBasesImponiblesAgrupadasCategorias.SubcuentaDevolucionesID
            V.importe = I.FacturasRecibidasBasesImponiblesAgrupadasCategorias.TotalconceptoSinimpuestos * -1
        else
            V.cuenta = I.FacturasRecibidasBasesImponiblesAgrupadasCategorias.SubcuentaID
            V.importe = I.FacturasRecibidasBasesImponiblesAgrupadasCategorias.TotalconceptoSinimpuestos 
        end if

    end if



    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,V.cuenta)
    if V.EsRectificativa = 1
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,V.importe)
    else
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,V.importe)
    end if
    F.AgregarElemento_Finalizar()




F.ProcessDataList_End


@ IVA 
F.ProcessDataList_Ini(S.Sections.ComprasGastosBase.ID)






    if V.EsRectificativa = 1


        if I.ComprasGastosBase.ImporteBaseImponible1CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto1.ReferenciaSubcuentaRectificacionesCompras)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.ComprasGastosBase.ImporteBaseImponible1CuotaIVA * -1)
            F.AgregarElemento_Finalizar()
        end if

        if I.ComprasGastosBase.ImporteBaseImponible1CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto1.ReferenciaSubcuentaRectificacionesComprasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.ComprasGastosBase.ImporteBaseImponible1CuotaRE * -1)
            F.AgregarElemento_Finalizar()
        end if


        if I.ComprasGastosBase.ImporteBaseImponible2CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto2.ReferenciaSubcuentaRectificacionesCompras)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.ComprasGastosBase.ImporteBaseImponible2CuotaIVA * -1)
            F.AgregarElemento_Finalizar()
        end if

        if I.ComprasGastosBase.ImporteBaseImponible2CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto2.ReferenciaSubcuentaRectificacionesComprasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.ComprasGastosBase.ImporteBaseImponible2CuotaRE * -1)
            F.AgregarElemento_Finalizar()
        end if


        if I.ComprasGastosBase.ImporteBaseImponible3CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto3.ReferenciaSubcuentaRectificacionesCompras)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.ComprasGastosBase.ImporteBaseImponible3CuotaIVA * -1)
            F.AgregarElemento_Finalizar()
        end if

        if I.ComprasGastosBase.ImporteBaseImponible3CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto3.ReferenciaSubcuentaRectificacionesComprasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.ComprasGastosBase.ImporteBaseImponible3CuotaRE * -1)
            F.AgregarElemento_Finalizar()
        end if




    else


        if I.ComprasGastosBase.ImporteBaseImponible1CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto1.ReferenciaSubcuentaCompras)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.ComprasGastosBase.ImporteBaseImponible1CuotaIVA)
            F.AgregarElemento_Finalizar()
        end if

        if I.ComprasGastosBase.ImporteBaseImponible1CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto1.ReferenciaSubcuentaComprasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.ComprasGastosBase.ImporteBaseImponible1CuotaRE)
            F.AgregarElemento_Finalizar()
        end if

        if I.ComprasGastosBase.ImporteBaseImponible2CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto2.ReferenciaSubcuentaCompras)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.ComprasGastosBase.ImporteBaseImponible2CuotaIVA)
            F.AgregarElemento_Finalizar()
        end if

        if I.ComprasGastosBase.ImporteBaseImponible2CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto2.ReferenciaSubcuentaComprasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.ComprasGastosBase.ImporteBaseImponible2CuotaRE)
            F.AgregarElemento_Finalizar()
        end if

        if I.ComprasGastosBase.ImporteBaseImponible3CuotaIVA <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto3.ReferenciaSubcuentaCompras)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.ComprasGastosBase.ImporteBaseImponible3CuotaIVA)
            F.AgregarElemento_Finalizar()
        end if

        if I.ComprasGastosBase.ImporteBaseImponible3CuotaRE <> 0
            F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.ComprasGastosBase.ReferenciaImpuesto3.ReferenciaSubcuentaComprasRE)
            F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.ComprasGastosBase.ImporteBaseImponible3CuotaRE)
            F.AgregarElemento_Finalizar()
        end if

    end if 


F.ProcessDataList_End

Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion

if C.ReferenciaCobros <> ''
    C.ReferenciaSeccionDeOrigen = S.Sections.CobrosDeVentas.ID 
    C.ReferenciaRegistroDeOrigen = C.ReferenciaCobros
elseif C.ReferenciaSeccionDeOrigen = S.Sections.CobrosDeVentas.ID 
    C.ReferenciaCobros = F.GetRowById(S.Sections.CobrosDeVentas.ID,C.ReferenciaRegistroDeOrigen)
end if

if C.ReferenciaSeccionDeOrigen <> S.Sections.CobrosDeVentas.ID o C.ReferenciaCobros = ''
    salir
end if

if C.GenerarAsientoAutomaticamente = 0
    salir
end if




C.Concepto = C.ReferenciaCobros.AlgoritmoLegibilidadPrincipalDeCobroDeVenta 

C.ReferenciaEntidadRelacionada = C.ReferenciaCobros.ReferenciaCliente 
C.ReferenciaPago = ''
C.FechaDeAsiento = C.ReferenciaCobros.FechaContable 


num total = C.ReferenciaCobros.ImporteTotalCobrado 

txt CuentaCliente = C.ReferenciaEntidadRelacionada.ReferenciaSubcuentaDeCliente

if C.ReferenciaCobros.CobroDeSuplido
    V.CuentaCliente = C.ReferenciaEntidadRelacionada.ReferenciaSubcuentaSuplidos 
else
    if V.CuentaCliente = ''
        V.CuentaCliente = D.EmpresaActual.ReferenciaSubcuentaPredeterminadaClientes
    end if
end if



if V.total > 0


    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,v.total)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,C.ReferenciaCobros.ReferenciaDepositoMonetario.ReferenciaSubcuenta)
    F.AgregarElemento_Finalizar()



    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,v.total)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,V.CuentaCliente)
    F.AgregarElemento_Finalizar()



else



    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,v.total * -1)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,V.CuentaCliente)
    F.AgregarElemento_Finalizar()

    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,v.total * -1)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,C.ReferenciaCobros.ReferenciaDepositoMonetario.ReferenciaSubcuenta)
    F.AgregarElemento_Finalizar()



end if

Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion

if C.ReferenciaNomina <> ''
    C.ReferenciaSeccionDeOrigen = S.Sections.Nominas.ID 
    C.ReferenciaRegistroDeOrigen = C.ReferenciaNomina 
elseif C.ReferenciaSeccionDeOrigen = S.Sections.Nominas.ID 
    C.ReferenciaNomina = F.GetRowById(S.Sections.Nominas.ID,C.ReferenciaRegistroDeOrigen)
end if

if C.ReferenciaSeccionDeOrigen <> S.Sections.Nominas.ID o C.ReferenciaNomina = ''
    salir
end if

if C.GenerarAsientoAutomaticamente = 0
    salir
end if

C.FechaDeAsiento = C.ReferenciaNomina.FechaContable 






F.DataListLoad(S.Reports.Funcionalidad.DatosContabilizacionNominasDebe.ID,1,9999,C.ReferenciaNomina)
F.ProcessDataList_Ini(S.Reports.Funcionalidad.DatosContabilizacionNominasDebe.Id)

    if I.DatosContabilizacionNominasDebe.CuentaDebeID <> ''
        F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.DatosContabilizacionNominasDebe.CuentaDebeID)
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,I.DatosContabilizacionNominasDebe.ImportealDebe)
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,0)
        F.AgregarElemento_Finalizar()
    end if

F.ProcessDataList_End



F.DataListLoad(S.Reports.Funcionalidad.DatosContabilizacionNominasHaber.ID,1,9999,C.ReferenciaNomina)
F.ProcessDataList_Ini(S.Reports.Funcionalidad.DatosContabilizacionNominasHaber.Id)

    if I.DatosContabilizacionNominasHaber.CuentaHaberID <> ''
        F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,I.DatosContabilizacionNominasHaber.CuentaHaberID)
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,0)
        F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,I.DatosContabilizacionNominasHaber.ImportealHaber)
        F.AgregarElemento_Finalizar()
    end if

F.ProcessDataList_End

Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion

if C.ReferenciaInmovilizado <> ''
    C.ReferenciaSeccionDeOrigen = S.Sections.Inmovilizado.ID 
    C.ReferenciaRegistroDeOrigen = C.ReferenciaInmovilizado
elseif C.ReferenciaSeccionDeOrigen = S.Sections.Inmovilizado.ID 
    C.ReferenciaInmovilizado = F.GetRowById(S.Sections.Inmovilizado.ID,C.ReferenciaRegistroDeOrigen)
end if

if C.ReferenciaSeccionDeOrigen <> S.Sections.Inmovilizado.ID o C.ReferenciaInmovilizado = ''
    salir
end if

if C.GenerarAsientoAutomaticamente = 0
    salir
end if




num importeAmortizacion = 0


if C.ReferenciaInmovilizado.VidaDelActivoAños > 0
    V.importeAmortizacion = F.Round((C.ReferenciaInmovilizado.ImporteCoste - C.ReferenciaInmovilizado.ImporteValorResidual) / C.ReferenciaInmovilizado.VidaDelActivoAños,2)
end if


F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,C.ReferenciaInmovilizado.ReferenciaCuentaDotacionAmortizacion)
F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,v.importeAmortizacion)
F.AgregarElemento_Finalizar()

F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,C.ReferenciaInmovilizado.ReferenciaCuentaAmortizacionAcumulada)
F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,v.importeAmortizacion)
F.AgregarElemento_Finalizar()

Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion

if C.ReferenciaMovimientoBancario <> ''
    C.ReferenciaSeccionDeOrigen = S.Sections.MovimientosBancarios.ID 
    C.ReferenciaRegistroDeOrigen = C.ReferenciaMovimientoBancario
elseif C.ReferenciaSeccionDeOrigen = S.Sections.MovimientosBancarios.ID 
    C.ReferenciaMovimientoBancario = F.GetRowById(S.Sections.MovimientosBancarios.ID,C.ReferenciaRegistroDeOrigen)
else
    salir
end if

if C.ReferenciaSeccionDeOrigen <> S.Sections.MovimientosBancarios.ID o C.ReferenciaMovimientoBancario = ''
    salir
end if

if C.GenerarAsientoAutomaticamente = 0
    salir
end if




num total = C.ReferenciaMovimientoBancario.ImporteImporteTotal 



if V.total > 0


    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,v.total)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,C.ReferenciaMovimientoBancario.ReferenciaDeposito.ReferenciaSubcuenta)
    F.AgregarElemento_Finalizar()



    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,v.total)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,C.ReferenciaMovimientoBancario.ReferenciaSubcuentaParaContrapartida)
    F.AgregarElemento_Finalizar()



else

    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,v.total * -1)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,C.ReferenciaMovimientoBancario.ReferenciaSubcuentaParaContrapartida)
    F.AgregarElemento_Finalizar()



    F.AgregarElemento_Iniciar(S.Sections.AsientosContablesLista.ID)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteDebe.ID,0)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ImporteHaber.ID,v.total * -1)
    F.AgregarElemento_Valor(S.Fields.AsientosContablesLista.ReferenciaSubcuenta.ID,C.ReferenciaMovimientoBancario.ReferenciaDeposito.ReferenciaSubcuenta)
    F.AgregarElemento_Finalizar()



end if

Formulario_PreACeptar

if C.ImporteDebe <> C.ImporteHaber


    F.MsgBox('El asiento no está cuadrado, la cantidad debe y haber deben ser iguales.',1)
    F.CancelarEvento
    salir



End If





if C.FechaDeAsiento < C.ReferenciaEjercicio.InicioEjercicio or C.FechaDeAsiento > C.ReferenciaEjercicio.FinDeEjercicio 

    F.MsgBox('No se puede guardar el asiento, ya que la fecha contable está fuera del periodo del ejercicio seleccionado.',1)
    F.CancelarEvento
    salir

End If

← Volver al índice