Overview

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

  1. foundin changed to: "0.9.2"
  2. icomment:
    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.<br><br>
    
    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.<br><br>
    
    Fichier: include/lib/Garradin/Compta/Import.php, l.162-169 :<br>
    <pre><code>if (trim($debit) == '' && trim($credit) != '')
    {
    	$debit = null;
    }
    elseif (trim($debit) != '' && trim($credit) == '')
    {
    	$credit = null;
    }
    </pre></code><br>
    
    Ça pourrait être corrigé en ayant ceci à la place des affections à null :
    <pre><code>throw new UserException('Erreur sur la ligne ' . $line . ' : champs « Compte de débit - numéro » vide.');</code></pre>
    
    Ou dans Journal.php, dans _checkFields, l.280, en ajoutant ce test aux conditions :
    <pre><code>... || is_null($data['compte_debit']) || ...</code></pre>
    
    <br>
    (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)<br>
    (pardon encore si jamais c'est un truc qui parait évident à côté duquel je passe)
    
  3. login: "zou"
  4. mimetype: "text/html"
  5. private_contact changed to: "11e0f0ca47bf61d029580bf77a718673efd9d27a"
  6. severity changed to: "Critical"
  7. status changed to: "Open"
  8. title changed to:
    Création d'écritures dans des comptes vides/inexistants lors d'import
    
  9. type changed to: "Code_Defect"