Initial commit of BudgetPro

This commit is contained in:
Javi
2026-05-24 23:21:33 +02:00
commit f3096faee6
575 changed files with 90288 additions and 0 deletions
+548
View File
@@ -0,0 +1,548 @@
#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
/* Interesa??
// Proveedores:
"SUPPLIER_ID_0 VARCHAR(10), " // 23. ID del proveedor
"SUPPLIER_NAME_0 VARCHAR(60), " // 24. Nombre del proveedor
"SUPPLIER_REFERENCE_0 VARCHAR(20), " // 25. Ref. del elemento que tiene el proveedor
"SUPPLIER_REAL_PRICE_0 FLOAT, " // 26. PVP
"SUPPLIER_DISCOUNT_0 FLOAT, " // 27. Descuento
"SUPPLIER_PURCHASE_PRICE_0 FLOAT, " // 28. Precio compra
"SUPPLIER_MINIMUM_AMOUNT_0 FLOAT, " // 29. Cantidad mínima de pedido
"SUPPLIER_DATE_UPDATE_0 DATE, " // 30. Fecha de actualización del precio
"SUPPLIER_ID_1 VARCHAR(10), " // 18. ID del proveedor
"SUPPLIER_NAME_1 VARCHAR(60), " // 19. Nombre del proveedor
"SUPPLIER_REFERENCE_1 VARCHAR(20), " // 20. Ref. del elemento que tiene el proveedor
"SUPPLIER_REAL_PRICE_1 FLOAT, " // 21. PVP
"SUPPLIER_DISCOUNT_1 FLOAT, " // 22. Descuento
"SUPPLIER_PURCHASE_PRICE_1 FLOAT, " // 23. Precio compra
"SUPPLIER_MINIMUM_AMOUNT_1 FLOAT, " // 24. Cantidad mínima de pedido
"SUPPLIER_DATE_UPDATE_1 DATE, " // 25. Fecha de actualización del precio
"SUPPLIER_ID_2 VARCHAR(10), " // 18. ID del proveedor
"SUPPLIER_NAME_2 VARCHAR(60), " // 19. Nombre del proveedor
"SUPPLIER_REFERENCE_2 VARCHAR(20), " // 20. Ref. del elemento que tiene el proveedor
"SUPPLIER_REAL_PRICE_2 FLOAT, " // 21. PVP
"SUPPLIER_DISCOUNT_2 FLOAT, " // 22. Descuento
"SUPPLIER_PURCHASE_PRICE_2 FLOAT, " // 23. Precio compra
"SUPPLIER_MINIMUM_AMOUNT_2 FLOAT, " // 24. Cantidad mínima de pedido
"SUPPLIER_DATE_UPDATE_2 DATE, " // 25. Fecha de actualización del precio
"SUPPLIER_ID_3 VARCHAR(10), " // 18. ID del proveedor
"SUPPLIER_NAME_3 VARCHAR(60), " // 19. Nombre del proveedor
"SUPPLIER_REFERENCE_3 VARCHAR(20), " // 20. Ref. del elemento que tiene el proveedor
"SUPPLIER_REAL_PRICE_3 FLOAT, " // 21. PVP
"SUPPLIER_DISCOUNT_3 FLOAT, " // 22. Descuento
"SUPPLIER_PURCHASE_PRICE_3 FLOAT, " // 23. Precio compra
"SUPPLIER_MINIMUM_AMOUNT_3 FLOAT, " // 24. Cantidad mínima de pedido
"SUPPLIER_DATE_UPDATE_3 DATE, " // 25. Fecha de actualización del precio
"SUPPLIER_ID_4 VARCHAR(10), " // 18. ID del proveedor
"SUPPLIER_NAME_4 VARCHAR(60), " // 19. Nombre del proveedor
"SUPPLIER_REFERENCE_4 VARCHAR(20), " // 20. Ref. del elemento que tiene el proveedor
"SUPPLIER_REAL_PRICE_4 FLOAT, " // 21. PVP
"SUPPLIER_DISCOUNT_4 FLOAT, " // 22. Descuento
"SUPPLIER_PURCHASE_PRICE_4 FLOAT, " // 23. Precio compra
"SUPPLIER_MINIMUM_AMOUNT_4 FLOAT, " // 24. Cantidad mínima de pedido
"SUPPLIER_DATE_UPDATE_4 DATE, " // 25. Fecha de actualización del precio
"SUPPLIER_ID_5 VARCHAR(10), " // 18. ID del proveedor
"SUPPLIER_NAME_5 VARCHAR(60), " // 19. Nombre del proveedor
"SUPPLIER_REFERENCE_5 VARCHAR(20), " // 20. Ref. del elemento que tiene el proveedor
"SUPPLIER_REAL_PRICE_5 FLOAT, " // 21. PVP
"SUPPLIER_DISCOUNT_5 FLOAT, " // 22. Descuento
"SUPPLIER_PURCHASE_PRICE_5 FLOAT, " // 23. Precio compra
"SUPPLIER_MINIMUM_AMOUNT_5 FLOAT, " // 24. Cantidad mínima de pedido
"SUPPLIER_DATE_UPDATE_5 DATE, " // 25. Fecha de actualización del precio
"SUPPLIER_ID_6 VARCHAR(10), " // 18. ID del proveedor
"SUPPLIER_NAME_6 VARCHAR(60), " // 19. Nombre del proveedor
"SUPPLIER_REFERENCE_6 VARCHAR(20), " // 20. Ref. del elemento que tiene el proveedor
"SUPPLIER_REAL_PRICE_6 FLOAT, " // 21. PVP
"SUPPLIER_DISCOUNT_6 FLOAT, " // 22. Descuento
"SUPPLIER_PURCHASE_PRICE_6 FLOAT, " // 23. Precio compra
"SUPPLIER_MINIMUM_AMOUNT_6 FLOAT, " // 24. Cantidad mínima de pedido
"SUPPLIER_DATE_UPDATE_6 DATE, " // 25. Fecha de actualización del precio
"SUPPLIER_ID_7 VARCHAR(10), " // 18. ID del proveedor
"SUPPLIER_NAME_7 VARCHAR(60), " // 19. Nombre del proveedor
"SUPPLIER_REFERENCE_7 VARCHAR(20), " // 20. Ref. del elemento que tiene el proveedor
"SUPPLIER_REAL_PRICE_7 FLOAT, " // 21. PVP
"SUPPLIER_DISCOUNT_7 FLOAT, " // 22. Descuento
"SUPPLIER_PURCHASE_PRICE_7 FLOAT, " // 23. Precio compra
"SUPPLIER_MINIMUM_AMOUNT_7 FLOAT, " // 24. Cantidad mínima de pedido
"SUPPLIER_DATE_UPDATE_7 DATE, " // 25. Fecha de actualización del precio
"SUPPLIER_ID_8 VARCHAR(10), " // 18. ID del proveedor
"SUPPLIER_NAME_8 VARCHAR(60), " // 19. Nombre del proveedor
"SUPPLIER_REFERENCE_8 VARCHAR(20), " // 20. Ref. del elemento que tiene el proveedor
"SUPPLIER_REAL_PRICE_8 FLOAT, " // 21. PVP
"SUPPLIER_DISCOUNT_8 FLOAT, " // 22. Descuento
"SUPPLIER_PURCHASE_PRICE_8 FLOAT, " // 23. Precio compra
"SUPPLIER_MINIMUM_AMOUNT_8 FLOAT, " // 24. Cantidad mínima de pedido
"SUPPLIER_DATE_UPDATE_8 DATE, " // 25. Fecha de actualización del precio
"SUPPLIER_ID_9 VARCHAR(10), " // 18. ID del proveedor
"SUPPLIER_NAME_9 VARCHAR(60), " // 19. Nombre del proveedor
"SUPPLIER_REFERENCE_9 VARCHAR(20), " // 20. Ref. del elemento que tiene el proveedor
"SUPPLIER_REAL_PRICE_9 FLOAT, " // 21. PVP
"SUPPLIER_DISCOUNT_9 FLOAT, " // 22. Descuento
"SUPPLIER_PURCHASE_PRICE_9 FLOAT, " // 23. Precio compra
"SUPPLIER_MINIMUM_AMOUNT_9 FLOAT, " // 24. Cantidad mínima de pedido
"SUPPLIER_DATE_UPDATE_9 DATE, " // 97. Fecha de actualización del precio
*/
"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
"TYPE VARCHAR(2) NOT NULL, " // 1. Tipo de documento:
"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
"BUYDOCUMENT_CODE VARCHAR(10) NOT NULL, " // 1. ID Documento de compra
"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 ("
"ID INTEGER PRIMARY KEY AUTOINCREMENT, " // 0. ID
"CODE VARCHAR(20) NOT NULL, " // 1. ID
"TITLE VARCHAR(100) NOT NULL, " // 2. Título
"CUSTOMER_CODE VARCHAR(10) NOT NULL, " // 3. ID Cliente
"CUSTOMER_NAME VARCHAR(60) NOT NULL, " // 4. Nombre del cliente
"START_DATE DATE DEFAULT CURRENT_DATE, " // 5. Fecha de Inicio
"DURATION DATE, " // 6. Fecha de Inicio
"STATE VARCHAR(10), " // 7. Estado
// Dirección de la obra
"CONTACT VARCHAR(60), " // 8. Contacto
"ADDRESS1 VARCHAR(40), " // 9. Dir L1
"ADDRESS2 VARCHAR(40), " // 10. Dir L2
"POSTCODE VARCHAR(9), " // 11. CP
"CITY VARCHAR(80), " // 12. Ciudad
"PHONE VARCHAR(20), " // 13. Telefono
"MOBILE VARCHAR(20), " // 14. Movil
"EMAIL VARCHAR(60), " // 15. e-mail
"pyGantt BLOB" // 16. Imagen
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 25. Fecha de creación
"CREATEDBY VARCHAR(100)"
");";
const QString tProjectControl = "CREATE TABLE PROJECTCONTROL ("
"ID INTEGER PRIMARY KEY AUTOINCREMENT, " // 01. ID
"pcPYCODE VARCHAR(20) NOT NULL, " // 02. ID
"pcELID VARCHAR(20) NOT NULL, " // 03. ID
"pcELTITLE VARCHAR(100) NOT NULL, " // 04. ID Cliente
"pcELTOTAL FLOAT, " // 05. Nombre del cliente
"pcELINSTALLED FLOAT, " // 06. Fecha de Inicio
"pcELREST FLOAT, " // 07. Fecha de Inicio
"pcELUNIT VARCHAR(2), " // 08. Estado
"pcELDATE DATE DEFAULT CURRENT_DATE, " // 09. Estado
"pcELTYPE VARCHAR(3), "
"pcELNODEINDEX INTEGER, "
"pcTASK VARCHAR(50), "
"pcCREATEDBY VARCHAR(100), "
"CREATEDAT DATETIME DEFAULT CURRENT_DATE"
");";
//----------------------- 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
"STATE BOOLEAN DEFAULT FALSE, " // 04. Activo o inactivo
"CATEGORY VARCHAR(30), " // 05. Categoría
"PRICEPERHOUR FLOAT, " // 06. Precio Hora
"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 ("
"coID INTEGER PRIMARY KEY AUTOINCREMENT, " // 01. ID
"coCode VARCHAR(20) NOT NULL, " // 02. Code
"coNombre VARCHAR(60) NOT NULL, " // 03. Nombre
"coApellido VARCHAR(60) NOT NULL, " // 04. Apellidos
"coForma VARCHAR(10), " // 05. Forma
"coPuesto VARCHAR(20), " // 06. Puesto
"coclCode VARCHAR(20), " // 07. Código Empresa
"coclNom VARCHAR(100), " // 08. Nombre Empresa
"coTel VARCHAR(20), " // 09. Teléfono fijo
"coMovil VARCHAR(20), " // 10. Teléfono móvil
"coFax VARCHAR(20), " // 11. Fax
"coEMail VARCHAR(60)," // 12. e-mail
"coImage BLOB," // 13. Imagen
"CREATEDAT DATE DEFAULT CURRENT_DATE, " // 25. Fecha de creación
"CREATEDBY VARCHAR(100)"
");";
const QStringList dbTables = {tDBInfo, tEmpresaInfo, tThird, tElemento, tElemComp, tUnidad, tPropuestaVenta, tDataPropuestaVenta,
tDocVenta, tDataDocVenta, tDocCompra, tDataDocCompra, tContact};
const QStringList dbTableNames = {"DBINFO", "ENTERPRISESINFO", "THIRD", "ELEMENT", "ELEMENTCOMPOSITION", "UNIT", "SALEPROPOSAL", "SALEPROPOSALDATA",
"SALEDOCUMENT", "SALEDOCUMENTDATA", "BUYDOCUMENT", "BUYDOCUMENTDATA", "CONTACT"};
#endif // SQLTABLE_H