549 lines
34 KiB
C
549 lines
34 KiB
C
|
|
#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
|