Fix: SQL compatibility, increase size for incoterms/code (#36049)

* Fix: SQL compatibility, increase size for incoterms/code

- Modify llx_c_incoterms table to increase code field length
- Use `INSERT IGNORE` or `ON CONFLICT` depending on db type

* Simple sql INSERTs instead of INSERT IGNORE

* Qual: Update Incoterms code field in table definition

Updated the llx_c_incoterms table to modify the code field length, and removed modification in the data file.
This commit is contained in:
MDW 2025-11-02 13:26:50 +01:00 committed by GitHub
parent f13172ee98
commit 436b270b0d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 11 deletions

View file

@ -272,29 +272,33 @@ ALTER TABLE llx_blockedlog ADD COLUMN vat double(24,8) DEFAULT NULL;
-- Incoterms 2025 and specific terms
-- DAT is replaced by DPU - but not deactivating for existing installations
-- UPDATE llx_c_incoterms SET active = 0 WHERE code = 'DAT';
-- Add new 2025 Incoterms and specific terms
INSERT INTO llx_c_incoterms (code, label, libelle, active)
VALUES
('DPU', 'Delivered at Place Unloaded', 'Delivered at Place Unloaded, marchandises déchargées et livrées au lieu de destination désigné (remplace DAT, élargit les lieux de livraison possibles)', 1),
('DTP', 'Delivered at Terminal Paid', 'Delivered at Terminal Paid, marchandises livrées et dédouanées dans un terminal du pays de destination', 0),
('DPP', 'Delivered at Place Paid', 'Delivered at Place Paid, marchandises livrées et dédouanées à une adresse précise du pays de destination', 0),
('DTP(DHL)', 'Duties and Taxes Paid', 'Duties and Taxes Paid (service DHL) : l''expéditeur paie les droits de douane et taxes à l''importation (spécifique à DHL)', 0)
ON CONFLICT (code) DO NOTHING;
-- Add new 2025 Incoterms and specific terms when they do not exist
ALTER TABLE llx_c_incoterms MODIFY code varchar(8) NOT NULL;
-- For MySQL and MariaDB:
INSERT INTO llx_c_incoterms (code, label, libelle, active) VALUES ('DPU', 'Delivered at Place Unloaded', 'Delivered at Place Unloaded, marchandises déchargées et livrées au lieu de destination désigné (remplace DAT, élargit les lieux de livraison possibles)', 1);
INSERT INTO llx_c_incoterms (code, label, libelle, active) VALUES ('DTP', 'Delivered at Terminal Paid', 'Delivered at Terminal Paid, marchandises livrées et dédouanées dans un terminal du pays de destination', 0);
INSERT INTO llx_c_incoterms (code, label, libelle, active) VALUES ('DPP', 'Delivered at Place Paid', 'Delivered at Place Paid, marchandises livrées et dédouanées à une adresse précise du pays de destination', 0);
INSERT INTO llx_c_incoterms (code, label, libelle, active) VALUES ('DTP(DHL)', 'Duties and Taxes Paid', 'Duties and Taxes Paid (service DHL) : l''expéditeur paie les droits de douane et taxes à l''importation (spécifique à DHL)', 0);
-- Update existing Incoterms descriptions
UPDATE llx_c_incoterms
SET libelle = 'Cost and Freight, chargé dans le bateau, livraison au port de départ, frais payés jusqu''au port d''arrivée, sans assurance pour le transport, non déchargé du navire à destination (les frais de déchargement sont inclus ou non au port d''arrivée)'
WHERE code = 'CFR';
UPDATE llx_c_incoterms
SET libelle = 'Cost, Insurance and Freight, chargé sur le bateau, frais jusqu''au port d''arrivée, avec l''assurance marchandise transportée souscrite par le vendeur pour le compte de l''acheteur (couverture standard, 10% de la valeur commerciale)'
WHERE code = 'CIF';
UPDATE llx_c_incoterms
SET libelle = 'Carriage and Insurance Paid to, idem CPT, avec assurance marchandise transportée souscrite par le vendeur pour le compte de l''acheteur (couverture tous risques)'
WHERE code = 'CIP';
-- Fix a wrong migration script
UPDATE llx_oauth_token SET tokenstring = token, token = NULL WHERE service = 'dolibarr_rest_api' AND tokenstring IS NULL AND token IS NOT NULL;

View file

@ -19,9 +19,8 @@
CREATE TABLE llx_c_incoterms (
rowid integer AUTO_INCREMENT PRIMARY KEY,
code varchar(3) NOT NULL,
code varchar(8) NOT NULL,
label varchar(100),
libelle varchar(255) NOT NULL,
active tinyint DEFAULT 1 NOT NULL
) ENGINE=innodb;