2026-05-24 23:21:33 +02:00
|
|
|
#ifndef SQLTABLE_H
|
|
|
|
|
#define SQLTABLE_H
|
|
|
|
|
|
|
|
|
|
#include <QString>
|
|
|
|
|
#include <QStringList>
|
|
|
|
|
|
|
|
|
|
const QString DBInfoCommand = "INSERT INTO DBINFO (VERSION, SUBVERSION) VALUES (:VERSION, :SUBVERSION);";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//--------------- BASE DE DATOS DE EMPRESAS, LISTADO ------------------------
|
|
|
|
|
const QString tEmpresas = "CREATE TABLE ENTERPRISES ("
|
|
|
|
|
"NAME VARCHAR (100) NOT NULL, " // 00. Nombre
|
|
|
|
|
"CIF VARCHAR (20) NOT NULL, " // 01. Nombre
|
|
|
|
|
"DBNAME VARCHAR (100) NOT NULL, " // 02. Nombre
|
|
|
|
|
"PATH VARCHAR (100) NOT NULL, " // 03. Nombre
|
|
|
|
|
"CREATEDAT DATETIME DEFAULT (CURRENT_TIMESTAMP), " // 04. Nombre
|
|
|
|
|
"CREATEDBY VARCHAR (100), " // 05. Nombre
|
|
|
|
|
"PRIMARY KEY (NAME, CIF)"
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
//--------------- BASE DE DATOS DE USUARIOS ------------------------
|
|
|
|
|
const QString tDBUsers = "CREATE TABLE USERS ("
|
|
|
|
|
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
|
|
|
|
|
"NAME VARCHAR(60), " // 01. Nombre
|
|
|
|
|
"SURNAME VARCHAR(60), " // 02. Apellidos
|
|
|
|
|
"USERNAME VARCHAR(60) NOT NULL UNIQUE, " // 03. Forma
|
|
|
|
|
"PASSWORD VARCHAR(60), " // 04. Forma
|
|
|
|
|
"USERTYPE INTEGER, " // 05. Forma
|
|
|
|
|
"PERMITS VARCHAR(350), " // 06. Forma
|
|
|
|
|
"LOCKED BOOLEAN, " // 07. Forma
|
|
|
|
|
"PICTURE BLOB, " // 08. Forma
|
|
|
|
|
"CREATEDAT DATETIME DEFAULT (CURRENT_TIMESTAMP)," // 09. Fecha de creación
|
|
|
|
|
"CREATEDBY VARCHAR(100)"
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
//------------ informción básica de la databse -----------------------------
|
|
|
|
|
const QString tDBInfo = "CREATE TABLE DBINFO ("
|
|
|
|
|
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
|
|
|
|
|
"VERSION VARCHAR(3) NOT NULL, "
|
|
|
|
|
"SUBVERSION VARCHAR(3) NOT NULL, "
|
|
|
|
|
"CREATEDAT DATETIME DEFAULT (CURRENT_TIMESTAMP)" // 25. Fecha de creación
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
//----------------------- INFORMACION DE LA EMPRESA -------------------------
|
|
|
|
|
const QString tEmpresaInfo = "CREATE TABLE ENTERPRISESINFO ("
|
|
|
|
|
"ID INTEGER PRIMARY KEY AUTOINCREMENT, " // 00. ID
|
|
|
|
|
"NAME VARCHAR(100) NOT NULL, " // 01. Nombre de la empresa
|
|
|
|
|
"CIF VARCHAR(10) NOT NULL, " // 02. CIF
|
|
|
|
|
|
|
|
|
|
"ADDRESS VARCHAR(40), " // 03. Línea Dirección 1
|
|
|
|
|
"POSTCODE VARCHAR(10), " // 04. Código postal
|
|
|
|
|
"CITY VARCHAR(80), " // 05. Ciudad
|
|
|
|
|
"PROVINCE VARCHAR(80), " // 06. Provincia
|
|
|
|
|
"COUNTRY VARCHAR(80), " // 07. Pais
|
|
|
|
|
|
|
|
|
|
"PHONE VARCHAR(20), " // 08. Teléfono
|
|
|
|
|
"MOBILE VARCHAR(20), " // 09. Movil
|
|
|
|
|
"FAX VARCHAR(20), " // 10. Fax
|
|
|
|
|
"EMAIL VARCHAR(60), " // 11. e-mail
|
|
|
|
|
"WEB VARCHAR(60), " // 12. Web
|
|
|
|
|
|
|
|
|
|
"CIF_COMMUNITY VARCHAR(10), " // 13. CIF Comunitario
|
|
|
|
|
"IAE VARCHAR(10), " // 14. IAE
|
|
|
|
|
"CNAE VARCHAR(10), " // 15. CNAE
|
|
|
|
|
"DCNAE VARCHAR(200), " // 16. Descripción CNAE
|
|
|
|
|
|
|
|
|
|
"LOGO1 BLOB, " // 17. Logo1
|
|
|
|
|
"LOGO2 BLOB, " // 18. Logo2
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATETIME DEFAULT (CURRENT_TIMESTAMP), " // 19. Fecha de creación
|
|
|
|
|
"CREATEDBY VARCHAR(100)"
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
//----------------------- THIRD -------------------------------------------
|
|
|
|
|
const QString tThird = "CREATE TABLE THIRD ("
|
|
|
|
|
"ID INTEGER PRIMARY KEY AUTOINCREMENT, " // 00. ROW ID
|
|
|
|
|
|
|
|
|
|
"FORM VARCHAR(25), " // 01. Forma
|
|
|
|
|
"CIF VARCHAR(20), " // 02. CIF
|
|
|
|
|
"NAME VARCHAR(128) NOT NULL, " // 03. Nombre del cliente
|
|
|
|
|
"NICKNAME VARCHAR(128), " // 04. Nombre del cliente
|
|
|
|
|
"FAMILY VARCHAR(25), " // 05. Familia de clientes
|
|
|
|
|
"INTRA_FC VARCHAR(20), " // 06. Intracommunitary fiscal code
|
|
|
|
|
"STATE INT NOT NULL," // 07. Estado
|
|
|
|
|
|
|
|
|
|
"CLIENT_STATE INT NOT NULL, " // 08. intracommunitary fiscal code
|
|
|
|
|
"CLIENT_CODE VARCHAR(20), " // 09. intracommunitary fiscal code
|
|
|
|
|
"CLIENT_ACCOUNT VARCHAR (24), " // 10. intracommunitary fiscal code
|
|
|
|
|
|
|
|
|
|
"SUPPLIER_STATE INT NOT NULL, " // 11. intracommunitary fiscal code
|
|
|
|
|
"SUPPLIER_CODE VARCHAR(20), " // 12. Code
|
|
|
|
|
"SUPPLIER_ACCOUNT VARCHAR (24), " // 13. intracommunitary fiscal code
|
|
|
|
|
|
|
|
|
|
// Dirección del cliente:
|
|
|
|
|
"ADDRESS VARCHAR(40), " // 14. Línea Dirección 1
|
|
|
|
|
"POSTCODE VARCHAR(9), " // 15. Código postal
|
|
|
|
|
"CITY VARCHAR(80), " // 16. Ciudad
|
|
|
|
|
"PROVINCE VARCHAR(80), " // 17. Provincia
|
|
|
|
|
"COUNTRY_ID VARCHAR(2), " // 18. Diminutivo del pais
|
|
|
|
|
|
|
|
|
|
"PHONE VARCHAR(20), " // 19. Teléfono
|
|
|
|
|
"MOBILE VARCHAR(20), " // 20. Movil
|
|
|
|
|
"FAX VARCHAR(20), " // 21. Fax
|
|
|
|
|
"EMAIL VARCHAR(60), " // 22. e-mail
|
|
|
|
|
"WEBSIDE VARCHAR(60), " // 23. Web
|
|
|
|
|
|
|
|
|
|
"PAYMENT_METHOD VARCHAR(40), " // 24. Forma de Pago
|
|
|
|
|
"PAYMENT_TYPE VARCHAR(40), " // 25. Forma de Pago
|
|
|
|
|
|
|
|
|
|
"LOGO BLOB, " // 26. Imagen
|
|
|
|
|
"NOTE_PUBLIC TEXT, " // 27. intracommunitary fiscal code
|
|
|
|
|
"NOTE_PRIVATE TEXT, " // 28. intracommunitary fiscal code
|
|
|
|
|
|
|
|
|
|
"UPDATEDAT DATE DEFAULT CURRENT_DATE, " // 29. Fecha de creación
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 30. Fecha de creación
|
|
|
|
|
"CREATEDBY VARCHAR(100) " // 31. intracommunitary fiscal code
|
|
|
|
|
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
//----------------------- ELEMENTO ------------------------------------------
|
|
|
|
|
const QString tElemento = "CREATE TABLE ELEMENT ("
|
|
|
|
|
"CODE VARCHAR(20) UNIQUE PRIMARY KEY, " // 00. Code
|
|
|
|
|
"TYPE1 VARCHAR(2) NOT NULL, " // 01. Tipo
|
|
|
|
|
"TYPE2 VARCHAR(2) NOT NULL, " // 02. Tipo
|
|
|
|
|
"TITLE VARCHAR(100) NOT NULL, " // 03. Resumen
|
|
|
|
|
"DESCRIPTION BLOB, " // 04. Descripción
|
|
|
|
|
"FAMILY_ID VARCHAR(9), " // 05. ID de Familia
|
|
|
|
|
"UNIT_ID VARCHAR(9), " // 06. ID de Unidad
|
|
|
|
|
|
|
|
|
|
"DATE_UPDATE DATE DEFAULT CURRENT_DATE, " // 07. Fecha de la última modificación
|
|
|
|
|
"REAL_PRICE FLOAT, " // 08. PVP de compra
|
|
|
|
|
"DISCOUNT FLOAT, " // 09. Descuento frente a PVP
|
|
|
|
|
"PURCHASE_PRICE FLOAT, " // 10. Precio de compra
|
|
|
|
|
"BENEFIT FLOAT, " // 11. Beneficio respecto al PC
|
|
|
|
|
"TAX FLOAT, " // 12. IVA
|
|
|
|
|
"SALE_PRICE FLOAT, " // 13. Precio de venta
|
|
|
|
|
|
|
|
|
|
"BARCODE VARCHAR(20), " // 14. Código de Barras
|
|
|
|
|
"IMAGE BLOB, " // 15. Imagen
|
|
|
|
|
"STATE BOOLEAN DEFAULT TRUE, " // 16. Elemento inactivo
|
|
|
|
|
|
|
|
|
|
"MANUFACTURER VARCHAR(40), " // 17. Fabricante o marca
|
|
|
|
|
"GAMMA VARCHAR(40), " // 18. Gama
|
|
|
|
|
|
|
|
|
|
// Tamaño:
|
|
|
|
|
"WEIGHT FLOAT, " // 19. ID proveedor por defecto
|
|
|
|
|
"HEIGHT FLOAT, " // 20. ID proveedor por defecto
|
|
|
|
|
"WIDTH FLOAT, " // 21. ID proveedor por defecto
|
|
|
|
|
"LENGHT FLOAT, " // 22. ID proveedor por defecto
|
|
|
|
|
|
|
|
|
|
"SUPPLIER_DEFAULT VARCHAR(10), " // 98. CODE proveedor por defecto
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 25. Fecha de creación
|
|
|
|
|
"CREATEDBY VARCHAR(100)"
|
|
|
|
|
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
//------------ COMPOSICIÓN DE UNIDADES DE OBRA ------------------------------
|
|
|
|
|
const QString tElemComp = "CREATE TABLE ELEMENTCOMPOSITION ("
|
|
|
|
|
"ID INTEGER," // 00. Número de línea
|
|
|
|
|
"CODE VARCHAR(20) NOT NULL, " // 01. ID de la Unidad de obra
|
|
|
|
|
"ELEMENT_CODE VARCHAR(20) NOT NULL, " // 02. ID del elemento
|
|
|
|
|
"ELEMENT_AMOUNT FLOAT, " // 03. Cantidad del elemento
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 04. Fecha de su creación
|
|
|
|
|
"CREATEDBY VARCHAR (100)," // 05. Fecha de su creación
|
|
|
|
|
|
|
|
|
|
"PRIMARY KEY(ID, CODE, ELEMENT_CODE));";
|
|
|
|
|
|
|
|
|
|
//------------ PROVEEDOR DEL ELEMENTO -------------------------------------------
|
|
|
|
|
const QString tSupplier = "CREATE TABLE Supplier ("
|
|
|
|
|
"ELEMENT_CODE VARCHAR(20) NOT NULL, " // 00. Code del elemento
|
|
|
|
|
|
|
|
|
|
"THIRD_CODE VARCHAR(20) NOT NULL, " // 01. Code del proveedor
|
|
|
|
|
"THIRD_NAME VARCHAR(60), " // 03. Nombre del proveedor
|
|
|
|
|
|
|
|
|
|
"REFERENCE VARCHAR(20), " // 04. Ref. del elemento que tiene el proveedor
|
|
|
|
|
"REAL_PRICE FLOAT, " // 05. PVP
|
|
|
|
|
"DISCOUNT FLOAT, " // 06. Descuento
|
|
|
|
|
"PURCHASE_PRICE FLOAT, " // 07. Precio compra
|
|
|
|
|
"MINIMUM_AMOUNT FLOAT, " // 08. Cantidad mínima de pedido
|
|
|
|
|
"DATE_UPDATE DATE, " // 09. Fecha de actualización del precio
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 10. Fecha de creación
|
|
|
|
|
"CREATEDBY VARCHAR(100), "
|
|
|
|
|
|
|
|
|
|
"PRIMARY KEY(ELEMENT_CODE, THIRD_CODE)"
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
//----------------------- FORMAS -------------------------------------------
|
|
|
|
|
const QString tForma = "CREATE TABLE FORM ("
|
|
|
|
|
"ID VARCHAR(10) NOT NULL UNIQUE, " // 00. Abreviación de la forma
|
|
|
|
|
"DESCRIPTION VARCHAR(60) NOT NULL, " // 01. Descripción más amplia
|
|
|
|
|
"PRIMARY KEY(ID));";
|
|
|
|
|
|
|
|
|
|
//----------------------- FAMILIAS DE PROVEEDORES ---------------------------
|
|
|
|
|
const QString tFamProv = "CREATE TABLE SUPPLIERFAMILIES ("
|
|
|
|
|
"ID VARCHAR(10) NOT NULL UNIQUE, " // 00. Abreviatura de la familia
|
|
|
|
|
"DESCRIPTION VARCHAR(60) NOT NULL, " // 01. Descripción
|
|
|
|
|
"PRIMARY KEY(ID));";
|
|
|
|
|
|
|
|
|
|
//----------------------- FAMILIAS DE CLIENTES -----------------------------
|
|
|
|
|
const QString tFamCli = "CREATE TABLE CUSTOMERFAMILIES ("
|
|
|
|
|
"ID VARCHAR(10) NOT NULL UNIQUE, " // 00. Code del elemento
|
|
|
|
|
"DESCRIPTION VARCHAR(60) NOT NULL, " // 00. Code del elemento
|
|
|
|
|
"PRIMARY KEY(ID));";
|
|
|
|
|
|
|
|
|
|
//----------------------- FAMILIAS DE ELEMENTOS ----------------------------
|
|
|
|
|
const QString tFamEle = "CREATE TABLE ELEMENTFAMILIES ("
|
|
|
|
|
"ID VARCHAR(10) NOT NULL UNIQUE," // 00. Code del elemento
|
|
|
|
|
"DESCRIPTION VARCHAR(60) NOT NULL, " // 00. Code del elemento
|
|
|
|
|
"PRIMARY KEY(ID));";
|
|
|
|
|
|
|
|
|
|
//----------------------- UNIDADES ------------------------------------------
|
|
|
|
|
const QString tUnidad = "CREATE TABLE UNIT ("
|
|
|
|
|
"ID VARCHAR(10) NOT NULL UNIQUE," // 00. Code del elemento
|
|
|
|
|
"DESCRIPTION VARCHAR(60) NOT NULL, " // 00. Code del elemento
|
|
|
|
|
"PRIMARY KEY(ID));";
|
|
|
|
|
|
|
|
|
|
//---------------------- DOCUMENTOS DE VENTA - PROPUESTAS --------------------------------
|
|
|
|
|
const QString tPropuestaVenta = "CREATE TABLE SALEPROPOSAL ("
|
|
|
|
|
"ID INTEGER PRIMARY KEY AUTOINCREMENT, " // 0. ID
|
|
|
|
|
"TYPE VARCHAR(2) NOT NULL, " // 1. Tipo de documento: PR - Presu, FA - Factura,
|
|
|
|
|
"CODE VARCHAR(20) NOT NULL UNIQUE, " // 2. ID documento
|
|
|
|
|
"TITLE VARCHAR(100) NOT NULL, " // 3. Nombre documento
|
|
|
|
|
"VERSION INTEGER, " // 6. Nombre proveedor
|
|
|
|
|
|
|
|
|
|
"CUSTOMER_CODE VARCHAR(20) NOT NULL, " // 4. ID cliente
|
|
|
|
|
"CUSTOMER_NAME VARCHAR(100) NOT NULL, " // 5. Nombre cliente ??
|
|
|
|
|
"PROJECT_CODE VARCHAR(20), " // 6. ID del proyecto
|
|
|
|
|
"PROJECT_TITLE VARCHAR(100), " // 6. Nombre proveedor ??
|
|
|
|
|
|
|
|
|
|
"COST DOUBLE, " // 10. Precio total Compra
|
|
|
|
|
"PRICE DOUBLE, " // 11. Precio total Venta sin iva
|
|
|
|
|
"TAX INTEGER, " // 12. IVA
|
|
|
|
|
"STATE VARCHAR(10), " // 13. Estado
|
|
|
|
|
"STATE_NUMBER INTEGER, " // 14. Número del estado
|
|
|
|
|
|
|
|
|
|
"DESCRIPTION BLOB, " // 4. Descripción
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 7. Fecha creación
|
|
|
|
|
"VALIDUNTILL DATE DEFAULT CURRENT_DATE, " // 8. Valido hasta la fecha
|
|
|
|
|
"DELIVERY_DATE DATE DEFAULT CURRENT_DATE, " // 9. Fecha de expedición
|
|
|
|
|
"CREATEDBY VARCHAR(100)"
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
const QString tDataPropuestaVenta = "CREATE TABLE SALEPROPOSALDATA ("
|
|
|
|
|
"ID INTEGER NOT NULL, " // 0. Número de la línea
|
|
|
|
|
"SALEDOCUMENT_CODE VARCHAR(20) NOT NULL, " // 1. ID Documento de compra
|
|
|
|
|
"VERSION INTEGER, " // 6. Nombre proveedor
|
|
|
|
|
|
|
|
|
|
"NODEINDEX VARCHAR(10), " // 2. Indice
|
|
|
|
|
"ELEMENT_CODE VARCHAR(20), " // 3. ID del elemento
|
|
|
|
|
"ELEMENT_TYPE VARCHAR(2), " // 4. Tipo de elemento
|
|
|
|
|
"ELEMENT_INDEX INTEGER, " // 5. Indice del elemento
|
|
|
|
|
"ELEMENT_TITLE VARCHAR(100), " // 6. Título del elemento
|
|
|
|
|
"ELEMENT_DESCRIPTION BLOB, " // 7. Descripción del elemento
|
|
|
|
|
"ELEMENT_UNIT_AMOUNT FLOAT, " // 8. Cantidad unitaria del elemento
|
|
|
|
|
"ELEMENT_TOTAL_AMOUNT FLOAT, " // 9. Cantidad total
|
|
|
|
|
"ELEMENT_UNIT VARCHAR(2), " // 10. ID de la unidad
|
|
|
|
|
"ELEMENT_PRICE FLOAT, " // 11. Precio del elemento
|
|
|
|
|
|
|
|
|
|
"BENEFIT FLOAT, " // 12. Beneficio
|
|
|
|
|
"DISCOUNT FLOAT, " // 13. Descuento
|
|
|
|
|
|
|
|
|
|
"TAX FLOAT, " // 13. Descuento
|
|
|
|
|
"PRINT BOOLEAN DEFAULT (TRUE)," // 13. Descuento
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 14. Fecha de creación
|
|
|
|
|
"CREATEDBY VARCHAR(100), "
|
|
|
|
|
|
|
|
|
|
"PRIMARY KEY(ID, SALEDOCUMENT_CODE));";
|
|
|
|
|
|
|
|
|
|
//---------------------- DOCUMENTOS DE VENTA --------------------------------
|
|
|
|
|
const QString tDocVenta = "CREATE TABLE SALEDOCUMENT ("
|
|
|
|
|
"ID INTEGER PRIMARY KEY AUTOINCREMENT, " // 0. ID
|
|
|
|
|
"TYPE VARCHAR(2) NOT NULL, " // 1. Tipo de documento: PR - Presu, FA - Factura,
|
|
|
|
|
"CODE VARCHAR(20) NOT NULL UNIQUE, " // 2. ID documento
|
|
|
|
|
"TITLE VARCHAR(100) NOT NULL, " // 3. Nombre documento
|
|
|
|
|
"VERSION INTEGER, " // 6. Nombre proveedor
|
|
|
|
|
|
|
|
|
|
"CUSTOMER_CODE VARCHAR(20) NOT NULL, " // 4. ID cliente
|
|
|
|
|
"CUSTOMER_NAME VARCHAR(100) NOT NULL, " // 5. Nombre cliente ??
|
|
|
|
|
"PROJECT_CODE VARCHAR(20), " // 6. ID del proyecto
|
|
|
|
|
"PROJECT_TITLE VARCHAR(100), " // 6. Nombre proveedor ??
|
|
|
|
|
|
|
|
|
|
"COST DOUBLE, " // 10. Precio total Compra
|
|
|
|
|
"PRICE DOUBLE, " // 11. Precio total Venta sin iva
|
|
|
|
|
"TAX INTEGER, " // 12. IVA
|
|
|
|
|
"STATE VARCHAR(10), " // 13. Estado
|
|
|
|
|
"STATE_NUMBER INTEGER, " // 14. Número del estado
|
|
|
|
|
|
|
|
|
|
"DESCRIPTION BLOB, " // 4. Descripción
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 7. Fecha creación
|
|
|
|
|
"VALIDUNTILL DATE DEFAULT CURRENT_DATE, " // 8. Valido hasta la fecha
|
|
|
|
|
"DELIVERY_DATE DATE DEFAULT CURRENT_DATE, " // 9. Fecha de expedición
|
|
|
|
|
"CREATEDBY VARCHAR(100)"
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
const QString tDataDocVenta = "CREATE TABLE SALEDOCUMENTDATA ("
|
|
|
|
|
"ID INTEGER NOT NULL, " // 0. Número de la línea
|
|
|
|
|
"SALEDOCUMENT_CODE VARCHAR(20) NOT NULL, " // 1. ID Documento de compra
|
|
|
|
|
"VERSION INTEGER, " // 6. Nombre proveedor
|
|
|
|
|
|
|
|
|
|
"NODEINDEX VARCHAR(10), " // 2. Indice
|
|
|
|
|
"ELEMENT_CODE VARCHAR(20), " // 3. ID del elemento
|
|
|
|
|
"ELEMENT_TYPE VARCHAR(2), " // 4. Tipo de elemento
|
|
|
|
|
"ELEMENT_INDEX INTEGER, " // 5. Indice del elemento
|
|
|
|
|
"ELEMENT_TITLE VARCHAR(100), " // 6. Título del elemento
|
|
|
|
|
"ELEMENT_DESCRIPTION BLOB, " // 7. Descripción del elemento
|
|
|
|
|
"ELEMENT_UNIT_AMOUNT FLOAT, " // 8. Cantidad unitaria del elemento
|
|
|
|
|
"ELEMENT_TOTAL_AMOUNT FLOAT, " // 9. Cantidad total
|
|
|
|
|
"ELEMENT_UNIT VARCHAR(2), " // 10. ID de la unidad
|
|
|
|
|
"ELEMENT_PRICE FLOAT, " // 11. Precio del elemento
|
|
|
|
|
|
|
|
|
|
"BENEFIT FLOAT, " // 12. Beneficio
|
|
|
|
|
"DISCOUNT FLOAT, " // 13. Descuento
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 14. Fecha de creación
|
|
|
|
|
"CREATEDBY VARCHAR(100), "
|
|
|
|
|
|
|
|
|
|
"PRIMARY KEY(ID, SALEDOCUMENT_CODE));";
|
|
|
|
|
|
|
|
|
|
//---------------------- DOCUMENTOS DE COMPRA --------------------------------
|
|
|
|
|
const QString tDocCompra = "CREATE TABLE BUYDOCUMENT ("
|
|
|
|
|
"ID INTEGER PRIMARY KEY AUTOINCREMENT, " // 0. ID
|
2026-06-10 00:22:41 +02:00
|
|
|
"TYPE VARCHAR(2)\tNOT NULL, " // 1. Tipo de documento:
|
2026-05-24 23:21:33 +02:00
|
|
|
"CODE VARCHAR(20) NOT NULL, " // 2. Código documento
|
|
|
|
|
"SUPPLIER_CODE VARCHAR(20) NOT NULL, " // 3. Código proveedor
|
|
|
|
|
"SUPPLIER_NAME VARCHAR(100) NOT NULL, " // 4. Nombre proveedor
|
|
|
|
|
"PROJECT_CODE VARCHAR(20), " // 5. ID del proyecto
|
|
|
|
|
"PROJECT_NAME VARCHAR(100), " // 6. Referecia del proveedor(en caso de albarán o factura)
|
|
|
|
|
|
|
|
|
|
"REFERENCE VARCHAR(50), " // 6. Referecia del proveedor(en caso de albarán o factura)
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 7. Fecha creación
|
|
|
|
|
"VALIDUNTILL DATE DEFAULT CURRENT_DATE, " // 8. Fecha de entrega
|
|
|
|
|
|
|
|
|
|
"PRICE DOUBLE, " // 9. Precio total Compra
|
|
|
|
|
//"dcPVP DOUBLE, " // 10. Precio total Compra sin iva
|
|
|
|
|
"TAX INTEGER, " // 11. IVA
|
|
|
|
|
|
|
|
|
|
"DESCRIPTION BLOB, " // 4. Descripción
|
|
|
|
|
"CREATEDBY VARCHAR(100) "
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
const QString tDataDocCompra = "CREATE TABLE BUYDOCUMENTDATA ("
|
|
|
|
|
"ID INTEGER NOT NULL, " // 0. ID linea
|
2026-06-10 00:22:41 +02:00
|
|
|
"BUYDOCUMENT_CODE\tVARCHAR(10)\tNOT NULL, " // 1. ID Documento de compra
|
2026-05-24 23:21:33 +02:00
|
|
|
"ELEMENT_CODE VARCHAR(20), " // 2. ID del elemento
|
|
|
|
|
"ELEMENT_SUPPLIER_CODE VARCHAR(20), " // 3. ID del elemento que tiene el proveedor
|
|
|
|
|
"ELEMENT_NAME VARCHAR(100), " // 4. Descripción del elemento
|
|
|
|
|
"ELEMENT_MANUFACTURER VARCHAR(40), " // 5. Fabricante
|
|
|
|
|
"ELEMENT_AMOUNT FLOAT, " // 6. Cantidad
|
|
|
|
|
"ELEMENT_UNIT VARCHAR(2), " // 7. ID de la unidad
|
|
|
|
|
"ELEMENT_REAL_PRICE FLOAT, " // 8. PVP de compra del elemento
|
|
|
|
|
"ELEMENT_DISCOUNT FLOAT, " // 9. Descuento
|
|
|
|
|
"ELEMENT_PURCHASE_PRICE FLOAT, " // 10. Precio de Compra del elemento
|
|
|
|
|
"DELIVERY_DATE DATE, " // 11. Fecha de Entrega del elemento
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 14. Fecha de creación
|
|
|
|
|
"CREATEDBY VARCHAR(100), "
|
|
|
|
|
|
|
|
|
|
"PRIMARY KEY(ID, BUYDOCUMENT_CODE));";
|
|
|
|
|
|
|
|
|
|
//----------------------- PROYECTO -----------------------------------------
|
|
|
|
|
const QString tProyecto = "CREATE TABLE PROJECT ("
|
2026-06-10 00:22:41 +02:00
|
|
|
"ID\tINTEGER PRIMARY KEY AUTOINCREMENT, " // 0. ID
|
|
|
|
|
"CODE\tVARCHAR(20) NOT NULL, " // 1. ID
|
|
|
|
|
"TITLE\tVARCHAR(100) NOT NULL, " // 2. Título
|
|
|
|
|
"CUSTOMER_CODE\tVARCHAR(10) NOT NULL, " // 3. ID Cliente
|
|
|
|
|
"CUSTOMER_NAME\tVARCHAR(60) NOT NULL, " // 4. Nombre del cliente
|
|
|
|
|
"START_DATE\tDATE DEFAULT CURRENT_DATE, " // 5. Fecha de Inicio
|
|
|
|
|
"DURATION\tDATE, " // 6. Fecha de Inicio
|
|
|
|
|
"STATE\tVARCHAR(10), " // 7. Estado
|
2026-05-24 23:21:33 +02:00
|
|
|
|
|
|
|
|
// Dirección de la obra
|
2026-06-10 00:22:41 +02:00
|
|
|
"CONTACT\tVARCHAR(60), " // 8. Contacto
|
|
|
|
|
"ADDRESS1\tVARCHAR(40), " // 9. Dir L1
|
|
|
|
|
"ADDRESS2\tVARCHAR(40), " // 10. Dir L2
|
|
|
|
|
"POSTCODE\tVARCHAR(9), " // 11. CP
|
|
|
|
|
"CITY\tVARCHAR(80), " // 12. Ciudad
|
|
|
|
|
"PHONE\tVARCHAR(20), " // 13. Telefono
|
|
|
|
|
"MOBILE\tVARCHAR(20), " // 14. Movil
|
|
|
|
|
"EMAIL\tVARCHAR(60), " // 15. e-mail
|
2026-05-24 23:21:33 +02:00
|
|
|
|
|
|
|
|
"pyGantt BLOB" // 16. Imagen
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 25. Fecha de creación
|
|
|
|
|
"CREATEDBY VARCHAR(100)"
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
const QString tProjectControl = "CREATE TABLE PROJECTCONTROL ("
|
2026-06-10 00:22:41 +02:00
|
|
|
"ID\tINTEGER PRIMARY KEY AUTOINCREMENT, " // 01. ID
|
|
|
|
|
"pcPYCODE\tVARCHAR(20) NOT NULL, " // 02. ID
|
|
|
|
|
"pcELID\tVARCHAR(20) NOT NULL, " // 03. ID
|
2026-05-24 23:21:33 +02:00
|
|
|
"pcELTITLE VARCHAR(100) NOT NULL, " // 04. ID Cliente
|
2026-06-10 00:22:41 +02:00
|
|
|
"pcELTOTAL\tFLOAT, " // 05. Nombre del cliente
|
2026-05-24 23:21:33 +02:00
|
|
|
"pcELINSTALLED FLOAT, " // 06. Fecha de Inicio
|
2026-06-10 00:22:41 +02:00
|
|
|
"pcELREST\tFLOAT, " // 07. Fecha de Inicio
|
|
|
|
|
"pcELUNIT\tVARCHAR(2), " // 08. Estado
|
|
|
|
|
"pcELDATE\tDATE DEFAULT CURRENT_DATE, " // 09. Estado
|
2026-05-24 23:21:33 +02:00
|
|
|
"pcELTYPE VARCHAR(3), "
|
|
|
|
|
"pcELNODEINDEX INTEGER, "
|
|
|
|
|
"pcTASK VARCHAR(50), "
|
|
|
|
|
|
|
|
|
|
"pcCREATEDBY VARCHAR(100), "
|
|
|
|
|
"CREATEDAT DATETIME DEFAULT CURRENT_DATE"
|
|
|
|
|
");";
|
|
|
|
|
|
2026-06-10 00:22:41 +02:00
|
|
|
//----------------------- PROJECTDOCUMENT ------------------------------------
|
|
|
|
|
const QString tProjectDocument = "CREATE TABLE PROJECTDOCUMENT ("
|
|
|
|
|
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
|
|
|
|
|
"PROJECT_CODE VARCHAR(20) NOT NULL, "
|
|
|
|
|
"DOC_TYPE VARCHAR(2) NOT NULL, "
|
|
|
|
|
"DOC_CODE VARCHAR(20) NOT NULL, "
|
|
|
|
|
"CREATEDBY VARCHAR(100), "
|
|
|
|
|
"CREATEDAT DATETIME DEFAULT CURRENT_TIMESTAMP"
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
//----------------------- PROJECTBUDGET --------------------------------------
|
|
|
|
|
const QString tProjectBudget = "CREATE TABLE PROJECTBUDGET ("
|
|
|
|
|
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
|
|
|
|
|
"PROJECT_CODE VARCHAR(20) NOT NULL, "
|
|
|
|
|
"CONCEPT VARCHAR(200), "
|
|
|
|
|
"AMOUNT FLOAT, "
|
|
|
|
|
"CREATEDBY VARCHAR(100), "
|
|
|
|
|
"CREATEDAT DATETIME DEFAULT CURRENT_TIMESTAMP"
|
|
|
|
|
");";
|
|
|
|
|
|
2026-05-24 23:21:33 +02:00
|
|
|
//----------------------- TRABAJADOR ---------------------------------------
|
|
|
|
|
const QString tTrabajador = "CREATE TABLE EMPLOYEE ("
|
|
|
|
|
"ID INTEGER PRIMARY KEY AUTOINCREMENT, " // 01. ID
|
|
|
|
|
"SURNAME VARCHAR(60) NOT NULL, " // 02. Apellidos
|
|
|
|
|
"NAME VARCHAR(60) NOT NULL, " // 03. Nombre
|
2026-06-10 00:22:41 +02:00
|
|
|
"STATE\tBOOLEAN\tDEFAULT FALSE, " // 04. Activo o inactivo
|
2026-05-24 23:21:33 +02:00
|
|
|
"CATEGORY VARCHAR(30), " // 05. Categoría
|
2026-06-10 00:22:41 +02:00
|
|
|
"PRICEPERHOUR\tFLOAT, " // 06. Precio Hora
|
2026-05-24 23:21:33 +02:00
|
|
|
"NOTES BLOB," // 07. Notas
|
|
|
|
|
"PICTURE BLOB,"
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 25. Fecha de creación
|
|
|
|
|
"CREATEDBY VARCHAR(100)"
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
//----------------------- CONTACTOS -----------------------------------------
|
|
|
|
|
const QString tContact = "CREATE TABLE CONTACT ("
|
2026-06-10 00:22:41 +02:00
|
|
|
"coID\tINTEGER PRIMARY KEY AUTOINCREMENT, " // 01. ID
|
|
|
|
|
"coCode\tVARCHAR(20) NOT NULL, " // 02. Code
|
|
|
|
|
"coNombre\tVARCHAR(60) NOT NULL, " // 03. Nombre
|
|
|
|
|
"coApellido\tVARCHAR(60) NOT NULL, " // 04. Apellidos
|
|
|
|
|
"coForma\tVARCHAR(10), " // 05. Forma
|
|
|
|
|
|
|
|
|
|
"coPuesto\tVARCHAR(20), " // 06. Puesto
|
|
|
|
|
"coclCode\tVARCHAR(20), " // 07. Código Empresa
|
2026-05-24 23:21:33 +02:00
|
|
|
"coclNom VARCHAR(100), " // 08. Nombre Empresa
|
2026-06-10 00:22:41 +02:00
|
|
|
"coTel\tVARCHAR(20), " // 09. Teléfono fijo
|
|
|
|
|
"coMovil\tVARCHAR(20), " // 10. Teléfono móvil
|
|
|
|
|
"coFax\tVARCHAR(20), " // 11. Fax
|
|
|
|
|
"coEMail\tVARCHAR(60)," // 12. e-mail
|
2026-05-24 23:21:33 +02:00
|
|
|
"coImage BLOB," // 13. Imagen
|
|
|
|
|
|
|
|
|
|
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 25. Fecha de creación
|
|
|
|
|
"CREATEDBY VARCHAR(100)"
|
|
|
|
|
");";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-06-09 23:26:35 +02:00
|
|
|
//----------------------- TEMPLATE -----------------------------------------
|
|
|
|
|
const QString tTemplate = "CREATE TABLE TEMPLATE ("
|
|
|
|
|
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
|
|
|
|
|
"NAME VARCHAR(100) NOT NULL, "
|
|
|
|
|
"DESCRIPTION VARCHAR(500), "
|
|
|
|
|
"DOCUMENT_TYPE VARCHAR(20) NOT NULL, "
|
|
|
|
|
"WIDTH_MM FLOAT DEFAULT 210, "
|
|
|
|
|
"HEIGHT_MM FLOAT DEFAULT 297, "
|
|
|
|
|
"MARGIN_TOP FLOAT DEFAULT 20, "
|
|
|
|
|
"MARGIN_BOTTOM FLOAT DEFAULT 20, "
|
|
|
|
|
"MARGIN_LEFT FLOAT DEFAULT 20, "
|
|
|
|
|
"MARGIN_RIGHT FLOAT DEFAULT 20, "
|
|
|
|
|
"CONTENT TEXT, "
|
|
|
|
|
"IS_DEFAULT BOOLEAN DEFAULT 0, "
|
|
|
|
|
"CREATEDBY VARCHAR(100), "
|
|
|
|
|
"CREATEDAT DATETIME DEFAULT CURRENT_TIMESTAMP, "
|
|
|
|
|
"UPDATEDAT DATETIME DEFAULT CURRENT_TIMESTAMP"
|
|
|
|
|
");";
|
|
|
|
|
|
2026-05-24 23:21:33 +02:00
|
|
|
const QStringList dbTables = {tDBInfo, tEmpresaInfo, tThird, tElemento, tElemComp, tUnidad, tPropuestaVenta, tDataPropuestaVenta,
|
2026-06-10 00:22:41 +02:00
|
|
|
tDocVenta, tDataDocVenta, tDocCompra, tDataDocCompra, tContact, tTemplate, tProjectDocument, tProjectBudget};
|
2026-05-24 23:21:33 +02:00
|
|
|
|
|
|
|
|
const QStringList dbTableNames = {"DBINFO", "ENTERPRISESINFO", "THIRD", "ELEMENT", "ELEMENTCOMPOSITION", "UNIT", "SALEPROPOSAL", "SALEPROPOSALDATA",
|
2026-06-10 00:22:41 +02:00
|
|
|
"SALEDOCUMENT", "SALEDOCUMENTDATA", "BUYDOCUMENT", "BUYDOCUMENTDATA", "CONTACT", "TEMPLATE", "PROJECTDOCUMENT", "PROJECTBUDGET"};
|
2026-05-24 23:21:33 +02:00
|
|
|
|
2026-06-10 00:22:41 +02:00
|
|
|
#endif // SQLTABLE_H
|