8.0.0-9.0.0.sql 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. --
  2. -- Be carefull to requests order.
  3. -- This file must be loaded by calling /install/index.php page
  4. -- when current version is 9.0.0 or higher.
  5. --
  6. -- To restrict request to Mysql version x.y minimum use -- VMYSQLx.y
  7. -- To restrict request to Pgsql version x.y minimum use -- VPGSQLx.y
  8. -- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new;
  9. -- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol;
  10. -- To rename a column: ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60);
  11. -- To drop a column: ALTER TABLE llx_table DROP COLUMN oldname;
  12. -- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60);
  13. -- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name;
  14. -- To create a unique index ALTER TABLE llx_table ADD UNIQUE INDEX uk_table_field (field);
  15. -- To drop an index: -- VMYSQL4.1 DROP INDEX nomindex on llx_table
  16. -- To drop an index: -- VPGSQL8.2 DROP INDEX nomindex
  17. -- To make pk to be auto increment (mysql): -- VMYSQL4.3 ALTER TABLE llx_table CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT;
  18. -- To make pk to be auto increment (postgres):
  19. -- -- VPGSQL8.2 CREATE SEQUENCE llx_table_rowid_seq OWNED BY llx_table.rowid;
  20. -- -- VPGSQL8.2 ALTER TABLE llx_table ADD PRIMARY KEY (rowid);
  21. -- -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN rowid SET DEFAULT nextval('llx_table_rowid_seq');
  22. -- -- VPGSQL8.2 SELECT setval('llx_table_rowid_seq', MAX(rowid)) FROM llx_table;
  23. -- To set a field as NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NULL;
  24. -- To set a field as NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL;
  25. -- To set a field as NOT NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NOT NULL;
  26. -- To set a field as NOT NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET NOT NULL;
  27. -- To set a field as default NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL;
  28. -- Note: fields with type BLOB/TEXT can't have default value.
  29. -- Missing in 8.0
  30. ALTER TABLE llx_contrat_extrafields ADD INDEX idx_contrat_extrafields (fk_object);
  31. ALTER TABLE llx_facture_rec_extrafields ADD INDEX idx_facture_rec_extrafields (fk_object);
  32. ALTER TABLE llx_accounting_account DROP FOREIGN KEY fk_accounting_account_fk_pcg_version;
  33. ALTER TABLE llx_accounting_account MODIFY COLUMN fk_pcg_version varchar(32) NOT NULL;
  34. ALTER TABLE llx_accounting_system MODIFY COLUMN pcg_version varchar(32) NOT NULL;
  35. ALTER TABLE llx_accounting_account ADD CONSTRAINT fk_accounting_account_fk_pcg_version FOREIGN KEY (fk_pcg_version) REFERENCES llx_accounting_system (pcg_version);
  36. ALTER TABLE llx_facture ADD COLUMN module_source varchar(32);
  37. ALTER TABLE llx_facture ADD COLUMN pos_source varchar(32);
  38. create table llx_facture_rec_extrafields
  39. (
  40. rowid integer AUTO_INCREMENT PRIMARY KEY,
  41. tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  42. fk_object integer NOT NULL,
  43. import_key varchar(14)
  44. ) ENGINE=innodb;
  45. ALTER TABLE llx_actioncomm ADD COLUMN email_subject varchar(255) after email_msgid;
  46. ALTER TABLE llx_actioncomm ADD COLUMN email_tocc varchar(255) after email_to;
  47. ALTER TABLE llx_actioncomm ADD COLUMN email_tobcc varchar(255) after email_tocc;
  48. ALTER TABLE llx_actioncomm MODIFY COLUMN code varchar(50);
  49. -- For 9.0
  50. ALTER TABLE llx_extrafields ADD COLUMN help text NULL;
  51. ALTER TABLE llx_extrafields ADD COLUMN totalizable boolean DEFAULT FALSE after list;
  52. ALTER TABLE llx_product_fournisseur_price ADD COLUMN desc_fourn text after ref_fourn;
  53. ALTER TABLE llx_user ADD COLUMN dateemploymentend date after dateemployment;
  54. ALTER TABLE llx_stock_mouvement ADD COLUMN fk_project integer;
  55. ALTER TABLE llx_c_action_trigger MODIFY COLUMN elementtype varchar(32);
  56. ALTER TABLE llx_c_field_list ADD COLUMN visible tinyint DEFAULT 1 NOT NULL AFTER search;
  57. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('COMPANY_DELETE','Third party deleted','Executed when you delete third party','societe',1);
  58. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPAL_DELETE','Customer proposal deleted','Executed when a customer proposal is deleted','propal',2);
  59. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_DELETE','Customer order deleted','Executed when a customer order is deleted','commande',5);
  60. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_DELETE','Customer invoice deleted','Executed when a customer invoice is deleted','facture',9);
  61. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PROPOSAL_SUPPLIER_DELETE','Price request deleted','Executed when a customer proposal delete','proposal_supplier',10);
  62. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('ORDER_SUPPLIER_DELETE','Supplier order deleted','Executed when a supplier order is deleted','order_supplier',14);
  63. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('BILL_SUPPLIER_DELETE','Supplier invoice deleted','Executed when a supplier invoice is deleted','invoice_supplier',17);
  64. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('CONTRACT_DELETE','Contract deleted','Executed when a contract is deleted','contrat',18);
  65. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('FICHINTER_DELETE','Intervention is deleted','Executed when a intervention is deleted','ficheinter',35);
  66. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_DELETE','Expense report deleted','Executed when an expense report is deleted','expensereport',204);
  67. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202);
  68. insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203);
  69. INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8001', 'Aktieselvskab A/S');
  70. INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8002', 'Anparts Selvskab ApS');
  71. INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8003', 'Personlig ejet selvskab');
  72. INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8004', 'Iværksætterselvskab IVS');
  73. INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8005', 'Interessentskab I/S');
  74. INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8006', 'Holdingselskab');
  75. INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8007', 'Selskab Med Begrænset Hæftelse SMBA');
  76. INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8008', 'Kommanditselskab K/S');
  77. INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle) VALUES (80, '8009', 'SPE-selskab');
  78. ALTER TABLE llx_payment_salary ADD COLUMN ref varchar(30) NULL after rowid;
  79. ALTER TABLE llx_payment_salary ADD COLUMN fk_projet integer DEFAULT NULL after amount;
  80. ALTER TABLE llx_payment_various ADD COLUMN ref varchar(30) NULL after rowid;
  81. ALTER TABLE llx_categorie ADD COLUMN ref_ext varchar(255);
  82. ALTER TABLE llx_paiement ADD COLUMN ext_payment_id varchar(128);
  83. ALTER TABLE llx_paiement ADD COLUMN ext_payment_site varchar(128);
  84. ALTER TABLE llx_societe ADD COLUMN twitter varchar(255) after skype;
  85. ALTER TABLE llx_societe ADD COLUMN facebook varchar(255) after skype;
  86. ALTER TABLE llx_societe ADD COLUMN instagram varchar(255) after skype;
  87. ALTER TABLE llx_societe ADD COLUMN snapchat varchar(255) after skype;
  88. ALTER TABLE llx_societe ADD COLUMN googleplus varchar(255) after skype;
  89. ALTER TABLE llx_societe ADD COLUMN youtube varchar(255) after skype;
  90. ALTER TABLE llx_societe ADD COLUMN whatsapp varchar(255) after skype;
  91. ALTER TABLE llx_socpeople ADD COLUMN twitter varchar(255) after skype;
  92. ALTER TABLE llx_socpeople ADD COLUMN facebook varchar(255) after skype;
  93. ALTER TABLE llx_socpeople ADD COLUMN instagram varchar(255) after skype;
  94. ALTER TABLE llx_socpeople ADD COLUMN snapchat varchar(255) after skype;
  95. ALTER TABLE llx_socpeople ADD COLUMN googleplus varchar(255) after skype;
  96. ALTER TABLE llx_socpeople ADD COLUMN youtube varchar(255) after skype;
  97. ALTER TABLE llx_socpeople ADD COLUMN whatsapp varchar(255) after skype;
  98. ALTER TABLE llx_adherent ADD COLUMN skype varchar(255);
  99. ALTER TABLE llx_adherent ADD COLUMN twitter varchar(255);
  100. ALTER TABLE llx_adherent ADD COLUMN facebook varchar(255);
  101. ALTER TABLE llx_adherent ADD COLUMN instagram varchar(255);
  102. ALTER TABLE llx_adherent ADD COLUMN snapchat varchar(255);
  103. ALTER TABLE llx_adherent ADD COLUMN googleplus varchar(255);
  104. ALTER TABLE llx_adherent ADD COLUMN youtube varchar(255);
  105. ALTER TABLE llx_adherent ADD COLUMN whatsapp varchar(255);
  106. ALTER TABLE llx_user ADD COLUMN skype varchar(255);
  107. ALTER TABLE llx_user ADD COLUMN twitter varchar(255);
  108. ALTER TABLE llx_user ADD COLUMN facebook varchar(255);
  109. ALTER TABLE llx_user ADD COLUMN instagram varchar(255);
  110. ALTER TABLE llx_user ADD COLUMN snapchat varchar(255);
  111. ALTER TABLE llx_user ADD COLUMN googleplus varchar(255);
  112. ALTER TABLE llx_user ADD COLUMN youtube varchar(255);
  113. ALTER TABLE llx_user ADD COLUMN whatsapp varchar(255);
  114. ALTER TABLE llx_website CHANGE COLUMN fk_user_create fk_user_creat integer;
  115. ALTER TABLE llx_website_page CHANGE COLUMN fk_user_create fk_user_creat integer;
  116. ALTER TABLE llx_website ADD COLUMN maincolor varchar(16);
  117. ALTER TABLE llx_website ADD COLUMN maincolorbis varchar(16);
  118. ALTER TABLE llx_website_page ADD COLUMN image varchar(255);
  119. CREATE TABLE llx_takepos_floor_tables(
  120. rowid integer AUTO_INCREMENT PRIMARY KEY,
  121. entity integer DEFAULT 1 NOT NULL,
  122. label varchar(255),
  123. leftpos float,
  124. toppos float,
  125. floor smallint
  126. ) ENGINE=innodb;
  127. UPDATE llx_c_payment_term SET decalage = nbjour, nbjour = 0 where decalage IS NULL AND type_cdr = 2;
  128. UPDATE llx_holiday SET ref = rowid WHERE ref IS NULL;
  129. -- DROP TABLE llx_emailcollector_emailcollectorfilter;
  130. -- DROP TABLE llx_emailcollector_emailcollectoraction;
  131. -- DROP TABLE llx_emailcollector_emailcollector;
  132. CREATE TABLE llx_emailcollector_emailcollector(
  133. -- BEGIN MODULEBUILDER FIELDS
  134. rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
  135. entity integer DEFAULT 1 NOT NULL,
  136. ref varchar(128) NOT NULL,
  137. label varchar(255),
  138. description text,
  139. host varchar(255),
  140. login varchar(128),
  141. password varchar(128),
  142. source_directory varchar(255) NOT NULL,
  143. target_directory varchar(255),
  144. datelastresult datetime,
  145. codelastresult varchar(16),
  146. lastresult varchar(255),
  147. note_public text,
  148. note_private text,
  149. date_creation datetime NOT NULL,
  150. tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  151. fk_user_creat integer NOT NULL,
  152. fk_user_modif integer,
  153. import_key varchar(14),
  154. status integer NOT NULL
  155. -- END MODULEBUILDER FIELDS
  156. ) ENGINE=innodb;
  157. ALTER TABLE llx_emailcollector_emailcollector ADD COLUMN login varchar(128);
  158. ALTER TABLE llx_emailcollector_emailcollector ADD INDEX idx_emailcollector_entity (entity);
  159. ALTER TABLE llx_emailcollector_emailcollector ADD INDEX idx_emailcollector_status (status);
  160. CREATE TABLE llx_emailcollector_emailcollectorfilter(
  161. -- BEGIN MODULEBUILDER FIELDS
  162. rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
  163. fk_emailcollector INTEGER NOT NULL,
  164. type varchar(128) NOT NULL,
  165. rulevalue varchar(128) NULL,
  166. date_creation datetime NOT NULL,
  167. tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  168. fk_user_creat integer NOT NULL,
  169. fk_user_modif integer,
  170. import_key varchar(14),
  171. status integer NOT NULL
  172. -- END MODULEBUILDER FIELDS
  173. ) ENGINE=innodb;
  174. CREATE TABLE llx_emailcollector_emailcollectoraction(
  175. -- BEGIN MODULEBUILDER FIELDS
  176. rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
  177. fk_emailcollector INTEGER NOT NULL,
  178. type varchar(128) NOT NULL,
  179. actionparam varchar(255) NULL,
  180. date_creation datetime NOT NULL,
  181. tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  182. fk_user_creat integer NOT NULL,
  183. fk_user_modif integer,
  184. position integer DEFAULT 0,
  185. import_key varchar(14),
  186. status integer NOT NULL
  187. -- END MODULEBUILDER FIELDS
  188. ) ENGINE=innodb;
  189. ALTER TABLE llx_emailcollector_emailcollectorfilter ADD INDEX idx_emailcollector_fk_emailcollector (fk_emailcollector);
  190. ALTER TABLE llx_emailcollector_emailcollectorfilter ADD CONSTRAINT fk_emailcollectorfilter_fk_emailcollector FOREIGN KEY (fk_emailcollector) REFERENCES llx_emailcollector_emailcollector(rowid);
  191. ALTER TABLE llx_emailcollector_emailcollectoraction ADD INDEX idx_emailcollector_fk_emailcollector (fk_emailcollector);
  192. ALTER TABLE llx_emailcollector_emailcollectoraction ADD CONSTRAINT fk_emailcollectoraction_fk_emailcollector FOREIGN KEY (fk_emailcollector) REFERENCES llx_emailcollector_emailcollector(rowid);
  193. ALTER TABLE llx_emailcollector_emailcollectorfilter ADD UNIQUE INDEX uk_emailcollector_emailcollectorfilter (fk_emailcollector, type, rulevalue);
  194. ALTER TABLE llx_emailcollector_emailcollectoraction ADD UNIQUE INDEX uk_emailcollector_emailcollectoraction (fk_emailcollector, type);
  195. ALTER TABLE llx_societe_rib ADD COLUMN comment varchar(255);
  196. ALTER TABLE llx_societe_rib ADD COLUMN ipaddress varchar(68);
  197. DROP TABLE llx_ticket_logs;
  198. CREATE TABLE llx_pos_cash_fence(
  199. rowid INTEGER AUTO_INCREMENT PRIMARY KEY,
  200. entity INTEGER DEFAULT 1 NOT NULL,
  201. ref VARCHAR(64),
  202. label VARCHAR(255),
  203. opening double(24,8) default 0,
  204. cash double(24,8) default 0,
  205. card double(24,8) default 0,
  206. cheque double(24,8) default 0,
  207. status INTEGER,
  208. date_creation DATETIME NOT NULL,
  209. date_valid DATETIME,
  210. day_close INTEGER,
  211. month_close INTEGER,
  212. year_close INTEGER,
  213. posmodule VARCHAR(30),
  214. posnumber VARCHAR(30),
  215. fk_user_creat integer,
  216. fk_user_valid integer,
  217. tms TIMESTAMP NOT NULL,
  218. import_key VARCHAR(14)
  219. ) ENGINE=innodb;
  220. -- VMYSQL4.3 ALTER TABLE llx_accounting_account MODIFY COLUMN account_number varchar(32) NOT NULL;
  221. -- VPGSQL8.2 ALTER TABLE llx_accounting_account ALTER COLUMN account_number SET NOT NULL;
  222. -- Withdrawals / Prelevements
  223. UPDATE llx_const set name = __ENCRYPT('PRELEVEMENT_END_TO_END')__ where name = __ENCRYPT('END_TO_END')__;
  224. UPDATE llx_const set name = __ENCRYPT('PRELEVEMENT_USTRD')__ where name = __ENCRYPT('USTRD')__;
  225. -- Delete duplicate accounting account, but only if not used
  226. DROP TABLE tmp_llx_accouting_account;
  227. CREATE TABLE tmp_llx_accouting_account AS SELECT MIN(rowid) as MINID, MAX(rowid) as MAXID, account_number, entity, fk_pcg_version, count(*) AS NB FROM llx_accounting_account group BY account_number, entity, fk_pcg_version HAVING count(*) >= 2 order by account_number, entity, fk_pcg_version;
  228. --SELECT * from tmp_llx_accouting_account;
  229. DELETE from llx_accounting_account where rowid in (select minid from tmp_llx_accouting_account where minid NOT IN (SELECT fk_code_ventilation from llx_facturedet) AND minid NOT IN (SELECT fk_code_ventilation from llx_facture_fourn_det) AND minid NOT IN (SELECT fk_code_ventilation from llx_expensereport_det));
  230. -- If there is record in tmp_llx_accouting_account, make a look on each line to do
  231. --update llx_facturedet set fk_code_ventilation = maxid WHERE fk_code_ventilation = minid;
  232. --update llx_facture_fourn_det set fk_code_ventilation = maxid WHERE fk_code_ventilation = minid;
  233. --update llx_expensereport_det set fk_code_ventilation = maxid WHERE fk_code_ventilation = minid;
  234. ALTER TABLE llx_accounting_account DROP INDEX uk_accounting_account;
  235. ALTER TABLE llx_accounting_account ADD UNIQUE INDEX uk_accounting_account (account_number, entity, fk_pcg_version);
  236. UPDATE llx_projet SET fk_opp_status = NULL WHERE fk_opp_status = -1;