Mise à jour Maarch LetterBox 2.6 -> LetterBox 2.7

Il n’existe pas beaucoup de ressources sur la procédure à suivre pour effectuer la mise à jour de l’application de gestion de courrier LetterBox ( basée sur le Framework d’archivage Maarch ).
Seule le forum officiel propose quelques pistes mais en ce qui nous concerne les éléments trouvés ne nous on pas permit de terminer cette migration sans rencontrés des pertes de fonctionnalités.

Nous avons suivi la procédure décrite dans le post de « gache56 » sur le forum officiel.

Après cette manipulation la consultation des anciens courriers enregistrés était possible mais il n’était plus possible d’éditer les modèles ou même d’enregistrer de nouveau courrier, point très bloquant pour une application dont c’est le but fonctionnel principal.

Nous décrivons ici la procédure que nous avons suivi pour remettre cette application fonctionnelle.

1°) Exporter les données de la base de données mise à jour

Nous exportons les données de la base de donnée sur laquelle nous avions exécuter les requêtes décrites dans le post du forum mentionné ci-dessus (vous trouverez ci-dessous le « script en question ») puis nous sauvegardons ces données.

[code type= »sql »]SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

CREATE TABLE IF NOT EXISTS history_batch (
id int(8) NOT NULL auto_increment,
module_name varchar(32) collate utf8_unicode_ci default NULL,
batch_id int(8) default NULL,
event_date datetime NOT NULL,
total_processed int(8) default NULL,
total_errors int(8) default NULL,
info text collate utf8_unicode_ci,
PRIMARY KEY  (id)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;

ALTER TABLE `baskets`
ADD `IS_GLOBAL` varchar(1) NOT NULL DEFAULT ‘N’,
ADD `LOCK_TIME` varchar(3) NULL,
ADD `IS_LOCKABLE` VARCHAR( 1 ) NOT NULL DEFAULT ‘N’ ;

ALTER TABLE `listinstance`
ADD `BY_USER_ID` varchar(32) NOT NULL default  » ;

ALTER TABLE `notes`
ADD `ACCESS_SERVICES` VARCHAR( 255 ) NULL,
ADD `ACCESS_USERS` VARCHAR( 255 ) NULL ;

ALTER TABLE `res_x`
ADD `FULLTEXT_RESULT` varchar(10) default NULL AFTER `ARBOX_ID` ,
ADD `SENDER_ID` int( 8 ) default NULL AFTER `PRIORITY`,
ADD `CUSTOM_D8` DATETIME NULL DEFAULT NULL AFTER `CUSTOM_D7` ;

ALTER TABLE `res_x`
ADD `CUSTOM_D9` DATETIME NULL DEFAULT NULL AFTER `CUSTOM_D8` ;

ALTER TABLE `res_x`
ADD `CUSTOM_D10` DATETIME NULL DEFAULT NULL AFTER `CUSTOM_D9` ;

ALTER TABLE `res_x`
ADD `CUSTOM_D11` DATETIME NULL DEFAULT NULL AFTER `CUSTOM_D10` ;

ALTER TABLE `res_x`
ADD `CUSTOM_D12` DATETIME NULL DEFAULT NULL AFTER `CUSTOM_D11` ;

ALTER TABLE `res_x`
ADD `RESERVED` VARCHAR( 1 ) NOT NULL DEFAULT ‘N’,
ADD `CUSTOM_T18` VARCHAR( 255 ) NULL,
ADD `CUSTOM_T19` VARCHAR( 255 ) NULL,
ADD `CUSTOM_T20` VARCHAR( 255 ) NULL,
ADD `CUSTOM_T21` VARCHAR( 255 ) NULL ;

ALTER TABLE `res_x` CHANGE `STATUS` `STATUS` VARCHAR( 7 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT ‘NEW’ ;

ALTER TABLE `sender`
ADD `CIVILITY` varchar( 255 ) collate utf8_unicode_ci default NULL AFTER `ID` ;

ALTER TABLE `sender`
ADD `STREET_NUM` varchar(20) collate utf8_unicode_ci default NULL AFTER `FUNCTION` ;

ALTER TABLE `sender`
ADD `PHONE2` varchar(20) collate utf8_unicode_ci default NULL AFTER `PHONE` ;

ALTER TABLE `sender`
ADD `MOBILE` varchar(20) collate utf8_unicode_ci default NULL AFTER `PHONE2` ;

ALTER TABLE `sender`
ADD `FAX` varchar(20) collate utf8_unicode_ci default NULL AFTER `MOBILE` ;

ALTER TABLE `usergroups`
ADD `DELETE_COPY_RIGHTS` char(1) NULL DEFAULT ‘Y’ AFTER `DELETE_RIGHTS` ;

ALTER TABLE `usergroups`
ADD `PRINT_SEP_RIGHTS` varchar(1) NULL DEFAULT ‘N’,
ADD `ATTACHMENT_RIGHTS` varchar(1) NULL DEFAULT ‘N’,
ADD `CLOSE_RIGHTS` varchar(1) NULL DEFAULT ‘N’,
ADD `MAIL_RIGHTS` varchar( 1 ) NOT NULL DEFAULT ‘N’,
ADD `REJECT_RIGHTS` varchar( 1 ) NOT NULL DEFAULT ‘N’,
ADD `DEF_REJECT_RIGHTS` varchar( 1 ) NOT NULL DEFAULT ‘N’,
ADD `VALIDATE_RIGHTS` varchar( 1 ) NOT NULL DEFAULT ‘N’ ;

ALTER TABLE `users`
ADD `NOTIFICATION` int(11) default ‘127’ AFTER `DELAY` ;

CREATE TABLE IF NOT EXISTS `borough` (
`BOROUGH_ID` int(11) NOT NULL PRIMARY KEY ,
`BOROUGH_LABEL` varchar(250) NOT NULL
);

CREATE TABLE `cantons` (
`CANTON_ID` INT (11) NOT NULL PRIMARY KEY ,
`CANTON_LABEL` VARCHAR(250) NOT NULL ,
`BOROUGH_ID` INT NOT NULL
);

CREATE TABLE `epci` (
`EPCI_ID` INT (11) NOT NULL PRIMARY KEY ,
`EPCI_LABEL` VARCHAR( 250 ) NOT NULL ,
`TYPE` VARCHAR( 5 ) NOT NULL ,
`BOROUGH_ID` INT NOT NULL
) ;

CREATE TABLE `communes` (
`COMMUNE_ID` INT (11) NOT NULL PRIMARY KEY ,
`COMMUNE_LABEL` VARCHAR( 250 ) NOT NULL ,
`POSTAL_CODE` INT (11) NOT NULL ,
`CANTON_ID` INT NOT NULL ,
`EPCI_ID` INT NOT NULL ,
`BOROUGH_ID` INT NOT NULL,
KEY `POSTAL_CODE` (`POSTAL_CODE`)
);

CREATE TABLE  `tickets` (
`TICKET_ID` bigint(20) NOT NULL AUTO_INCREMENT,
`RES_ID` bigint(20) NOT NULL,
`CREATION_DATE` datetime NOT NULL,
`MARKET_NUM` int(11) NOT NULL,
`IS_ADAPTED` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT ‘N’,
`IS_FORMALIZED` char(1) COLLATE utf8_unicode_ci NOT NULL DEFAULT ‘N’,
`CREDIT_ACCOUNT` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
`INVENTORY_IDENT` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
`IMPUTATION` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
`MARKET_SUBJECT` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
`HOLDER` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
`AMOUNT_TO_MANDATE` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
`ENGAGEMENT` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
`TOTAL_MARKET` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
`PIECE` char(1) COLLATE utf8_unicode_ci DEFAULT NULL,
`EXERCICE` year(4) NOT NULL,
PRIMARY KEY (`TICKET_ID`)
);

CREATE TABLE IF NOT EXISTS `tickets_amounts` (
`TICKET_AMOUNT_ID` bigint(20) NOT NULL auto_increment,
`TICKET_ID` bigint(20) NOT NULL,
`NUM_MANDATE` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`DATE_MANDATE` date default NULL,
`AMOUNT` float default NULL,
PRIMARY KEY  (`TICKET_AMOUNT_ID`)
);[/code]

Après avoir mis à jour votre base de donnée il faut copier l’intégralité des fichier de la version 2.7 de letterbox dans le dossier de votre version à mettre à jour (2.6) en faisant attention de conserver une copie de vos fichiers contenus dans le dossier XML et principalement le fichier config.xml qu’il faudra modifier pour pouvoir vous connecter à votre base de donnée.
Il est important également de vous déconnecter de l’application web et de vous reconnectez car le menu de choix de « priorité » lors de la saisie d’un nouveau courrier tire désormais ces informations du fichier letterbox.xml et les valeurs sont enregistrées dans la session utilisateur.
A ce stade l’édition des modèles de courrier et l’enregistrement d’un nouveau courrier ne fonctionne toujours pas.

2°) Utilisation du script de création de database de la version 2.7

Nous avons supprimer l’ensemble des tables de notre base de données puis nous avons importé le script de la structure de la database que vous trouverez dans le dossier SQL de la version 2.7.

Ensuite nous importons les données sauvegardées lors de l’étape précédente.

Après cette opération l’édition des modèles est de nouveau possible mais l’enregistrement d’un noveau courrier reste impossible car le choix de l’expéditeur ou émetteur ne fonctionne pas.

3°) Modification des fichiers PHP de l’application pour faire fonctionner le nouveau mode de sélection des émetteurs/expéditeurs

Fichier :

  • « emet_index_list.php » ligne 43, 94 et 200
  • « pre_emet_exp.php » ligne 44
  • « search_adv.php » ligne 151

Remplacez
[code type= »php »]WHERE TOCONTACT IS NULL[/code]

Par
[code type= »php »]WHERE (TOCONTACT IS NULL OR TOCONTACT =  »)[/code]

Pour avoir un résultat lors de la saisie des premières lettre qui apparait en dessous de la zone de saisie.