Skip to main content

Update de InVoiceNinja

  • Update de InvoiceNinja

  • (comptabilite.mozartsduweb.com)

  • Outil de devis/factures utilisé par MozArtsduWeb

  • Version 1.0 - écrite le 02/08/2021

Prérequis

  1. Avoir un accès SSH au serveur
  2. Avoir un accès à l'interface de gestion de InvoiceNinja
  3. Prévenir Elodie
  4. Etre en début d'après-midi car l'envoie des factures est programmé à 8h

Processus de mise à jour

  1. Sauvegarde sur le serveur Effectuer une sauvegarde complète pour assurer un retour en arrière.

  2. Récupérer la version en cours La version actuelle de InvoiceNinja peut se trouver dans l'interface graphique en bas à gauche, sur le bouton Informations

  3. Récupérer la dernière version directement sur GitHub https://github.com/invoiceninja/invoiceninja/releases et prendre l'Assets invoiceninja.tar

  4. Dézipper Copier/coller - écraser tout le contenu de la nouvelle version dans le répertoire mdw-comptabilite. Il se peut que les fichiers précédés d'un point ne soit pas copiable.

⚠️ Sous MAC, il faut utiliser la toucher Option pour obtenir la possibilité de Fusionner

  1. Commit Push avec GIT avec un commentaire contenant la nouvelle version de type Upgrade X.X.XX

  2. Déploiement automatique Sur le serveur, le déploiement devrait se gérer de manière automatique. Mais à date, et avec plus de 4h de recherche, il subsiste une erreur dans les commandes supplémentaires. Le composer génère probablement une erreur qui fait que le touch de vérification ne se fait pas. Une erreur a été corrigée en exécution SSH, mais la version GIT ne marche toujours pas. Les commandes suivantes sont donc à effectuer en se connectant en SSH

    https://gestion.mozartsduweb.com/admin/accountwebsite/1897/show

/opt/plesk/php/8.2/bin/php /usr/lib/plesk-9.0/composer.phar install --no-dev -o

/opt/plesk/php/8.2/bin/php artisan migrate

/opt/plesk/php/8.2/bin/php artisan optimize

/opt/plesk/php/8.2/bin/php artisan queue:restart

  1. Déployer la version de REACT Récupérer la version sur le lien suivant si il n'est pas déjà dans le dossier de la nouvelle version: https://github.com/invoiceninja/ui/releases/ et prendre l'Assets invoiceninja-react.zip

  2. Dézipper Copier/coller - écraser tout le contenu de la nouvelle version dans le répertoire mdw-comptabilite/public/. Il se peut que les fichiers précédés d'un point ne soit pas copiable. Ne pas hésiter à modifier le gitignore pour prendre en compte tout le contenu du dossier public ⚠️ Sous MAC, il faut utiliser la toucher Option pour obtenir la possibilité de Fusionner ⚠️ J'ai du Zip puis Dezip sur le serveur : le commit n'a pas pris tous les fichiers en compte

  3. Ajouter les 3 variations Afin de compléter la mise à jour, il faut vérifier si les 3 variations sont toujours présentes. Sinon, il faut les ajouter de nouveau. Regarder dans les commits précédents pour trouver l'endroit exact où les modifications ont été faites.

    Dans app/Models/BaseModel.php dans la fonction numberFormatter

    //MOZARTSDUWEB Ajout du nom du client au nom de tous les documents
    $formatted_number = $formatted_number . ' - ' . $this->client->name;

    Dans app/Services/Pdf/PdfBuilder.php dans la fonction buildTableBody

    //MOZARTSDUWEB Fusion des colonnes Article ET Description
    if ($element['elements'][0]['properties']['data-ref'] == "product_table-product.item-td"
    && $element['elements'][1]['properties']['data-ref'] == "product_table-product.description-td") {
    $test = '';
    if ( !empty($element['elements'][0]['content']) )
    $test = '<strong>' . $element['elements'][0]['content'] . '</strong><br>';
    $element['elements'][1]['content'] = $test . $element['elements'][1]['content'];
    array_shift($element['elements']); //Après avoir récupérer le nom de l'article, on sort la première case
    }

    Dans app/Services/PdfMaker/Design.php

    //MOZARTSDUWEB Fusion des colonnes Article ET Description
    if ($elements[0]['properties']['data-ref'] == "product_table-product.item-th"
    && $elements[1]['properties']['data-ref'] == "product_table-product.description-th") {
    $elements[1]['content'] = $elements[0]['content'] . ' - ' . $elements[1]['content'];
    array_shift($elements); //Après avoir récupérer le nom de l'article, on sort la première case
    }