Overview

Artifact ID: a3af1c41ad364deb126cf2d928ce35d6cd67b5da
Ticket: 9c3ea0c6aa8c18405e90b72b8eaf16b253a44612
Création d'écritures dans des comptes vides/inexistants lors d'import
Date: 2019-05-08 21:02:58
User: zou
Changes

  1. Change foundin to "0.9.2"
  2. Change icomment to:

    Lors d'un import CSV, il est possible de créer des opérations avec une écriture au débit ou au crédit qui ne corresponde pas à un compte existant (càd un compte vide, ex.: « compte_credit = "" »), en ayant un des deux champs vides dans le fichier CSV.

    Les lignes suivante me laissent penser que ça aurait pu être volontaire, mais je n'arrive vraiment pas à voir dans quelle circonstance une telle situation devrait être possible. Même avec la compta simplifiée, toutes les catégories affectent un compte en débit et un autre en crédit.

    Fichier: include/lib/Garradin/Compta/Import.php, l.162-169 :

    if (trim($debit) == '' && trim($credit) != '')
    {
    	$debit = null;
    }
    elseif (trim($debit) != '' && trim($credit) == '')
    {
    	$credit = null;
    }
    

    Ça pourrait être corrigé en ayant ceci à la place des affections à null :

    throw new UserException('Erreur sur la ligne ' . $line . ' : champs « Compte de débit - numéro » vide.');

    Ou dans Journal.php, dans _checkFields, l.280, en ajoutant ce test aux conditions :

    ... || is_null($data['compte_debit']) || ...

    (j'aurais sûrement pu le corriger moi-même mais je sais pas encore me servir de Fossil trop et j'ai peur de faire des bêtises, mais peut-être je m'y pencherais après, quand j'aurais fini mes bidouilles avec mes scripts perso de migrations)
    (pardon encore si jamais c'est un truc qui parait évident à côté duquel je passe)

  3. Change login to "zou"
  4. Change mimetype to "text/html"
  5. Change private_contact to "11e0f0ca47bf61d029580bf77a718673efd9d27a"
  6. Change severity to "Critical"
  7. Change status to "Open"
  8. Change title to:

    Création d'écritures dans des comptes vides/inexistants lors d'import

  9. Change type to "Code_Defect"