Skip to main content

Facturación y cobro de contratos de proyectos

Descripción

El objetivo es optimizar el proceso de facturación y cobro cuando la empresa vende suscripciones y/o servicios. En estos casos la facturación es mensual y se cobran los mismos items cada mes, con la opción de descuento si se pagan antes de un día del mes. Hay tres momentos clave en este proceso:

  1. La configuración de los cobros del proyecto (fecha, monto, detalle), en el sistema se llaman contratos
  2. La facturación
  3. El cobro

Esta adición fue solicitada para operar los cobros de un colegio.

Configuración de los contratos

Tomando en cuenta que hay que operar la factura y luego revisar que esté correcta, decidimos que es mejor que el encargado de revisar configure los códigos, descripciones y montos a facturar en cada contrato del proyecto, así el operador no tendrá que decidir, sino que usará lo configurado.

Para el caso en que se ofrece un descuento por pago antes del día límite, cada contrato requiere dos montos: el normal y el descontado, también cada línea de detalle requiere configurar el precio normal y el descuento

Facturación

Hay dos modalidades de facturación:

  1. Facturar para luego cobrar (típico de servicios que se pueden cancelar o interrumpir entre meses).
  2. Facturar lo cobrado (típico de contratos que no se pueden interrumpir).

Cuando se factura y luego se cobra, como ya está configurado el detalle de cada contrato del proyecto, lo único necesario es generar las facturas que corresponden al mes.

Cuando se factura hasta que se cobra, lo que corresponde es operar la transacción bancaria y luego generar y asociar las facturas de lo cobrado.

Cobro

En la modalidad 1 (Facturar y luego cobrar), se asocia la factura ya hecha al cobro. El cobro puede cubrir una parte de la factura y no es necesario saber a qué contrato corresponde cada factura, ya que se emite una factura por contrato; las facturas emitidas con saldo por cobrar aparecerán en el estado de cuenta del proyecto.

En la modalidad 2 (Facturar lo cobrado), al recibir el cobro el proceso es el siguiente:

  1. Operar la transacción bancaria.
  2. Elegir los proyectos a los cuales aplicar el cobro.
  3. Si hay facturas anteriores con saldo en estos proyectos, liquidar desde la más antigua a la más reciente, y si varias tienen la misma antigüedad del mayor al menor saldo.
  4. Si aún queda algo del monto de la transacción por liquidar, elegir los contratos más antiguos por facturar de estos proyectos, y si hay varios de la misma antigüedad el de mayor a menor monto.
  5. Aplicar el monto restante de la transacción a los contratos, si se cubre más de uno facturar todos los que alcancen aunque no se cubra el último completo.
  6. Al aplicar el monto de la transacción a los contratos, se verifica el día del mes de la transacción contra el mes del contrato. Si el mes/año de la transacción es el mismo del contrato, se compara el día límite configurado para usar montos con descuento. Si el mes/año de la transacción es anterior al del contrato se utiliza el monto descontado.
  7. Si aplica a descuento por la fecha límite, pero no cubre el total de la factura, no se marca como descontado, se utiliza el precio normal.
  8. Generar una factura que incluya los contratos aplicados a la transacción. Por cada contrato se agregará a la misma factura el detalle configurado y cada contrato quedará marcado como facturado por la factura generada.
  9. La factura será por el monto total del contrato asociado aunque el monto de la transacción no lo cubra. Esto es porque cada contrato se factura una vez y luego quedará la factura con un saldo por cobrar.
  10. Asociar la factura generada a la transacción por el monto elegido.
Implementación
  1. Los contratos de proyectos se asocian con una venta al momento de generarla.
  2. Una venta puede estar asociada a varios contratos.
  3. Se puede quitar y poner la venta asociada a los contratos (para limpiar o hacer el proceso manualmente).
  4. Las vistas de qué contratos están facturados es en Proyectos->Contratos y en EditarVenta->Contratos Proyectos
  5. La fecha y número de factura asociada al contrato aparece en el estado de cuenta de proyecto, y en los reportes de Cuentas por Cobrar de Proyectos y de Cobros de Proyectos entre Fechas.
  6. Aunque un contrato esté asociado a una venta, es necesario llevar el estado de cuenta del proyecto a través de la transacción bancaria>proyectos y venta>proyectos; porque está separada la cuenta de facturado y cobrado.
  7. Los contratos que tienen venta asociada, también tienen un cheque de "descuento_aplicado" para que el sistema sepa qué monto se usó al facturar. Esto se pone automático al facturar desde la transacción bancaria, pero también se puede modificar directamente en el contrato desde Proyectos->Contratos.
  8. Si se quita la venta de un contrato, se quita también el cheque de "descontado" del contrato.
  9. El parámetro general de día límite para descuentos en proyectos se puede desactivar con 0.

Al cobrar los contratos se generan las ventas necesarias y aparecen asociadas a la transacción. Si me arrepiento y quiero borrarlas para volverlo a hacer, tengo que borrar la asociación y luego las ventas. Para no tener que hacer esto manualmente, hay un botón para eliminar las ventas asociadas desde la misma pantalla.

Parámetros Generales
Nombre
Uso
requerir_detalle_en_contratos_proyectos 

Al facturar proyectos desde Asociados Transacción, lo impide si el proyecto elegido no tiene configurado detalles en sus contratos

Default: false

dia_limite_descuentos_proyectos

El último día del mes antes del cual aplica el monto descontado de contratos de proyectos, puede ser:

  1. Sin descuentos -> 0
  2. Último día del mes -> 30
  3. Día específico -> 1-29

Estas restricciones están implementadas con el check constraint dia_limite_descuentos_proyectos en la misma tabla

Default: 0

serie_proyectos

Serie a utilizar al generar facturas desde cobrar_contratos_proyectos

Default: 0

no_facturar_cobro_parcial_proyectos

No generar factura si el monto por aplicar no cubre el monto del contrato.

Si está desactivado: genera la factura por el monto total del contrato y la asocia a la transacción bancaria por el monto aplicado.

Si está activo: no genera la factura, cancela la operación y da un mensaje.

Permisos
id
Nombre
Descripción
Tipo

Aplicar descuento a contrato
Aplicar/Quitar descuento a contrato de proyectos Proyectos

Contratos proyectos
Agregar, editar, eliminar contratos de proyectos
Proyectos

Presupuestos proyectos
Agregar, editar, eliminar presupuestos de proyectos Proyectos

Editar proyectos
Agregar, editar, eliminar fichas de proyectos
Proyectos
Base de datos
Tipo
Nombre
Uso
Tabla
contratos
Lista de contratos de un proyecto, con monto y fecha de cobro
Tabla
contratos_detalle
Será el detalle de la venta (lineas_ventas)  al facturar un contrato
Tabla
contratos_impresion
Será la impresión del detalle de la venta (lineas_ventas_impresion) al facturar un contrato
Función
actualizar_orden_contratos_impresion
Ordenar los contratos_impresion
Trigger
trg_actualizar_orden_contratos_impresion Aplicar orden al insertar o eliminar contratos_impresion
Función
duplicar_contrato_proyectos
Duplicar un contrato con todo y detalle e impresión, incrementando fecha, número y descripción.
Error
Q3003
Error de facturación y cobro de contratos de proyectos
 .NET
Carpeta
Archivo
Descripción
gen/Proyectos
Contrato.vb
Acceso a la tabla contratos
gen/Proyectos
ContratoDetalle.vb
Acceso a la tabla contratos_detalle
gen/Proyectos
ContratoImpresion.vb
Acceso a la tabla contratos_impresion
src/Proyectos Contrato.vb
Métodos auxiliares de Contrato
Gui/Proyectos EditarContratos.vb
Editar contratos de un proyecto