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 | Sí |
| 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