Saltar a contenido

Cobros de Ventas

La sección Cobros de Ventas gestiona la recepción de pagos correspondientes a las facturas emitidas, registrando cada transacción de cobro y vinculándola al depósito monetario donde se recibe el dinero (caja o cuenta bancaria). Almacena información completa del cobro incluyendo referencia, fecha, estado de tramitación, importes (cobrado, devolución automática, total cobrado), vinculación comercial (venta asociada, cliente), método de pago (efectivo, tarjeta, transferencia, cheque/pagaré), depósito destino, fechas de gestión (vencimiento, tramitación), empleado responsable, y vinculación contable (asiento contable, movimiento bancario). Su objetivo es controlar el flujo de ingresos de la empresa, gestionar vencimientos de cobro, facilitar la conciliación bancaria y los cierres de caja, y mantener la trazabilidad completa entre ventas, cobros y contabilidad. Se integra con Ventas, Contabilidad (asientos automáticos), Tesorería, Conciliación bancaria y TPV. Soporta cobros parciales, devoluciones automáticas de cambio en efectivo y múltiples métodos de pago por cliente.

Información General

Propiedad Valor
ID 10f52508-2ad5-4afe-9d0b-ef12d5914f10
Tabla PostgreSQL tpr_40040105811
Etiqueta Plural Cobros de Ventas
Texto principal automatico
Sección Base Base - Cobros de Ventas (ce8f1851-5b67-4eb4-b406-b0d92f8bc26c)

Campos

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

Campos del Sistema

Campo Tipo Rol Columna PostgreSQL Relación Atributos
ID Relación - id Cobros de Ventas -
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
Empleado Relación General pr_100401058114 🔴 Obligatorio Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* )
Transacción secundaria Relación General pr_20040114143 🔒 Bloqueado, 👁 Oculto -
Emisión de Cheque o pagaré (Devolución) Relación Avanzado pr_30040106062 👁 Oculto -
Total Cobrado Decimal General pr_300401060613 🔒 Bloqueado, 📊 Cualquier valor numérico -
Importe afectado a depósito Decimal General pr_300401060614 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Hora local Hora Registro pr_100401058118 🔒 Bloqueado, 👁 Oculto -
Fecha de vencimiento Fecha General pr_300401060620 - -
Destinador Relación General pr_100401058123 🔒 Bloqueado, 👁 Oculto -
Depósito monetario Relación General pr_30040106064 🔴 Obligatorio Autorrellenado (Cadena_Rellenada): Campo (Sesión): Depósito preferente · Autorrellenado (Cadena_Rellenada): Campo (Sesión): Puesto de trabajo / Depósito monetario · Autorrellenado (Siempre): Campo (Empresa Actual): Depósito predeterminado para Cobros de Ventas
Transacción monetaria interna Relación General pr_10040106073 🔒 Bloqueado, 👁 Oculto -
Emisión de Cheque o Pagaré Relación Avanzado pr_30040106067 👁 Oculto -
Fecha de tramitación y validación Fecha Y Hora Contabilidad pr_30040106069 - -
Venta Relación General pr_10040105871 🔒 Bloqueado -
Autor del alta Relación Registro pr_100401058116 🔴 Obligatorio Autorrellenado (Siempre): Campo (Sesión): La Entidad ( ID* )
Total pagado (Tramitado) Decimal General pr_300401060616 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Importe afectado a depósito (Tramitado) Decimal General pr_300401060615 🔒 Bloqueado, 👁 Oculto, 📊 Cualquier valor numérico -
Observaciones Texto Observaciones pr_300401060622 - Puede usar este campo, para dejar registro de información que la persona encargada considere importante.
Fecha Alta del registro Fecha Y Hora Registro pr_100401058120 🔴 Obligatorio Autorrellenado (Siempre): Fecha y Hora actual
Fecha contable Fecha Contabilidad pr_50040135704 - -
Asiento contable Relación Contabilidad pr_60040135302 - -
Empleado que tramita y valida Relación Avanzado pr_500401412013 🔒 Bloqueado, 👁 Oculto -
Fecha local de tramitación y validación Fecha General pr_10040141221 🔒 Bloqueado, 👁 Oculto -
Movimiento bancario Relación Contabilidad pr_20040264603 - -
Asignar manualmente la fecha contable Sí/No Contabilidad pr_50040365591 - -
Cobro de suplido Sí/No Contabilidad pr_10040587231 - -
Objetivo cobro Decimal General pr_10662713 👁 Oculto, 📊 Cualquier valor numérico -
Cliente Relación General pr_30040106063 - Autorrellenado (Siempre): Campo : Venta / Cliente
Ubicación Principal Relación Registro pr_100401058115 👁 Oculto Autorrellenado (Siempre): Campo (Sesión): Ubicación Principal
Puesto de trabajo Relación Registro pr_30040106066 - Autorrellenado (Siempre): Campo (Sesión): Puesto de trabajo
Devolución automática Sí/No Registro pr_10662711 - -
Importe Decimal General pr_300401060611 📊 Cualquier valor numérico -
Importe (Devolución) Decimal General pr_300401060612 📊 Cualquier valor numérico -
Método de pago Relación General pr_30040106065 - Autorrellenado (Siempre): Campo (Empresa Actual): Cobros (Método de pago por defecto)
Estado Entero General pr_300401060618 🔴 Obligatorio, 📊 Cualquier valor numérico -
Fecha Dato Fecha Y Hora Registro pr_100401058117 🔴 Obligatorio Autorrellenado (Siempre): Fecha y Hora actual

Scripts

Total de scripts: 9

Código de Scripts

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

Formulario_Iniciado_AgregarNuevo

if C.ReferenciaVenta.FechaDeVencimiento <> ''
    if C.ReferenciaVenta.FechaDeVencimiento > D.DatosEspeciales.FechaActual 
        C.Estado = S.Enums.estadotransaccion.pendiente 
        C.FechaDeVencimiento = C.ReferenciaVenta.FechaDeVencimiento 
    end if
end if


if C.ReferenciaMovimientoBancario <> ''

    F.EjecutarScript(s.ScriptsSections.CobrosDeVentas.MovimientoBancario.ID)

end if





if C.ReferenciaVenta.ImporteTotal > 0

    if C.ReferenciaVenta.ReferenciaCliente.ReferenciaDepositoParaPagoDeVentas <> ''
        C.ReferenciaDepositoMonetario = C.ReferenciaVenta.ReferenciaCliente.ReferenciaDepositoParaPagoDeVentas 
    end if

    if C.ReferenciaVenta.ReferenciaCliente.ReferenciaMetodoDePagoVenta <> ''
        C.ReferenciaMetodoDePago = C.ReferenciaVenta.ReferenciaCliente.ReferenciaMetodoDePagoVenta 
    end if

elseif C.ReferenciaVenta.ImporteTotal < 0



    if C.ReferenciaVenta.ReferenciaCliente.ReferenciaDepositoParaPagoDeVentasRectificativas <> ''
        C.ReferenciaDepositoMonetario = C.ReferenciaVenta.ReferenciaCliente.ReferenciaDepositoParaPagoDeVentasRectificativas 
    end if

    if C.ReferenciaVenta.ReferenciaCliente.ReferenciaMetodoDePagoDeVentasRectificativa <> ''
        C.ReferenciaMetodoDePago = C.ReferenciaVenta.ReferenciaCliente.ReferenciaMetodoDePagoDeVentasRectificativa 
    end if


    C.ImporteImporte = C.ReferenciaVenta.ImporteTotal

end if

Campo_Cambiado

C.Estado = S.Enums.estadotransaccion.tramitado 
C.FechaDeTramitacionYValidacion = C.ReferenciaMovimientoBancario.FechaDato

Campos utilizados: - Cobros de Ventas > Movimiento bancario

Formulario_Iniciado_AgregarNuevo_PostRellenadoImportacion

if C.ReferenciaDestinador = S.Destinadores.VentasIngresos.CobroDeVenta.ID  y C.ImporteImporte = 0
    if C.ReferenciaVenta <> ''
        C.ReferenciaCliente = C.ReferenciaVenta.ReferenciaCliente 



        num aCobrar = C.ReferenciaVenta.ImporteTotalACobrar - C.ReferenciaVenta.ImporteTotalCobrado 


        C.ImporteImporte = V.aCobrar 


        if V.aCobrar > 0
            C.ImporteObjetivoCobro = V.aCobrar 
        end if



    end if 
end if

if C.ReferenciaMetodoDePago = 'b8bed667-c2ff-4b65-8227-fab2e8f93052'
    C.DevolucionAutomatica = 1
end if

Campo_PreAgregarRelacion

F.Guardar

F.CopiarAgregarRelacion(S.Fields.AsientosContablesBase.ReferenciaCobros.ID,C.ID)

Campos utilizados: - Cobros de Ventas > Asiento contable

Campo_Cambiado

if C.ReferenciaMetodoDePago.ReferenciaDepositoOpcional <> ''
    C.ReferenciaDepositoMonetario = C.ReferenciaMetodoDePago.ReferenciaDepositoOpcional
end if

Campos utilizados: - Cobros de Ventas > Método de pago

Indefinido

if F.CampoHaSidoModificado(S.Fields.CobrosDeVentas.ReferenciaEmisionDeChequeOPagare.ID)
    if C.ReferenciaEmisionDeChequeOPagare  <> '' y  C.ReferenciaEmisionDeChequeOPagare.Anulado  = 0 

        F.MsgBox('No puede cancelar el cobro, porque ha seleccionado un cheque y este no está cancelado, cancele el cheque o desasocielo, para poder continuar.',0)
        F.CancelarEvento 

    End If
End If



if F.CampoHaSidoModificado(S.Fields.CobrosDeVentas.ReferenciaEmisionDeChequeOPagareDevolucion.ID)
    if C.ReferenciaEmisionDeChequeOPagareDevolucion  <> '' y  C.ReferenciaEmisionDeChequeOPagareDevolucion.Anulado  = 0 

        F.MsgBox('No puede cancelar el cobro, porque ha seleccionado un cheque y este no está cancelado, cancele el cheque o desasocielo, para poder continuar.',0)
        F.CancelarEvento 

    End If
End If

Formulario_TickRecalculo

if C.Estado = S.Enums.estadotransaccion.tramitado 
    C.ImporteTotalPagadoTramitado = C.ImporteTotalCobrado 
else
    C.ImporteTotalPagadoTramitado = 0
End If






@ b8bed667-c2ff-4b65-8227-fab2e8f93052 = Efectivo

if C.ImporteObjetivoCobro > 0
    if C.DevolucionAutomatica y C.ReferenciaMetodoDePago = 'b8bed667-c2ff-4b65-8227-fab2e8f93052'
        If C.ImporteImporte > C.ImporteObjetivoCobro 
            C.ImporteImporteDevolucion = C.ImporteImporte - C.ImporteObjetivoCobro 
        ElseIf C.ImporteObjetivoCobro < 0 
            C.ImporteImporteDevolucion = C.ImporteObjetivoCobro - C.ImporteImporte
        Else
            C.ImporteImporteDevolucion = 0
        End If
    end if 
    F.CampoBloqueadoMotivo(S.Fields.CobrosDeVentas.ImporteImporteDevolucion.ID,'Automático.',C.DevolucionAutomatica)
end if

← Volver al índice