Al eliminar un contacto, desvincularlo de clientes y proveedores.
Los clientes están vinculados con contactos a través de las columnas idcontactofact e idcontactoenv, que son respectivamente la dirección de facturación principal y la dirección de envío principal.
No es posible añadir ahí una clave ajena porque ya hay claves ajenas de contactos a clientes y al contrario es un problema de cara a nuevas instalaciones, que al crear la tabla, añaden también todas las claves ajenas.
La solución a este problema es añadir en el delete() del modelo Contacto una consulta SQL para desvincular clientes con este contacto. Desvincular también de proveedores.
Para entregar esta tarea haz un pull request con los cambios en
https://github.com/NeoRazorX/facturascripts
Puntos de soporte: +5