Changeset 73361 in spip-zone


Ignore:
Timestamp:
Jun 7, 2013, 5:32:23 PM (6 years ago)
Author:
gildas.cotomale@…
Message:

corrections dans r73343 : erreur systématique au contrôle de la classe comptable et non prise en compte du choix de plan comptable

Location:
_plugins_/Associaspip/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/Associaspip/trunk/inc/association_comptabilite.php

    r73327 r73361  
    411411        return _T('compta:erreur_classe_longueur');
    412412    $regles = comptabilite_liste_planregles($plan);
    413     if ( !preg_match($regles[0]?$regles[0]:'[0-9]', $classe) ) // champ hors plage
     413    if ( !preg_match('/^'.$regles[0].'$/', $classe) ) // champ hors plage
    414414        return _T('compta:erreur_classe_plage', array('intervalle'=>$regles[0],) );
    415415    return '';
     
    423423 * @param string $classe
    424424 *   Caractere de la classe si on souhaite s'assurer que c'est l'initial du code
    425  */
    426 function comptabilite_verifier_code($code, $classe='', $plan='') {
     425 * @param string $sens
     426 *   credit|debit|multi : on s'assurera sommairement que le type de compte est bon
     427 * Pour l'instant on ne prend en compte que 2 classes Associaspip mais y d'autres
     428 * http://www.mesexercices.com/recherche_information/comptabilite-les-comptes-de-classe-6-charges-sont-normalement_6_38694.htm
     429 * Par ailleurs, on ne peut pas fonctionner par classe caril y a des exceptions !
     430 *  http://dz.viadeo.com/fr/questions/repondre/?questionId=0021aox4cgt6v70a
     431 * Peut-etre faudrat-il rajouter des regles pour une meilleure validation ?
     432 */
     433function comptabilite_verifier_code($code, $classe='', $sens='multi', $plan='') {
    427434    $regles = comptabilite_liste_planregles($plan);
    428435    if ( !preg_match('/^'. implode('', $regles) .'\w*$/', $code) ) // champ de longueur insuffisante ou ne commencant pas de facon adequate
     
    434441    if ( $classe!==FALSE AND $classe!=='' AND $code[0]!=$classe ) // discordance avec la classe
    435442        return _T('compta:erreur_code_classe', array('nombre'=>$classe,) );
    436     return '';
     443#    if ( $code[0]==$GLOBALS['association_metas']['classe_produits'] AND $sens=='debit' ) // ce sont tous des comptes essentiellement créditeurs...
     444#       return _T('compta:erreur_classe_type', array('numero'=$code[0], 'interdit'=>_T('compta:item_direction_debit'),) );
     445#    elseif ( $code[0]==$GLOBALS['association_metas']['classe_charges'] AND $sens=='credit' ) // ce sont tous des comptes essentiellement débiteurs...
     446#       return _T('compta:erreur_classe_type', array('numero'=$code[0], 'interdit'=>_T('compta:item_direction_credit'),) );
     447     return '';
    437448}
    438449
     
    559570        $res .= "</optgroup>\n";
    560571    return "$res</select>\n". (@$GLOBALS['meta']['html5']?'</datalist>\n':'');
    561 /*
    562  <div style="font:0.8em/1em Arial, Helvetica, Sans-Serif;">
    563 <h4>Example 1 (for HTML 5 browsers)</h4>
    564  <label>
    565   Enter your favorite cartoon character:<br />
    566   <input type="text" name="favCharacter" list="characters" maxlength="50" style="width:95%;">
    567   <datalist id="characters">
    568    <option value="Homer Simpson">
    569    <option value="Bart">
    570    <option value="Fred Flinstone">
    571   </datalist>
    572  </label>
    573 <h4>Example 2 (for both legacy and HTML 5 browsers)</h4>
    574  <label>
    575   Enter your favorite cartoon character:<br />
    576   <input type="text" name="favCharacter" list="characters" maxlength="50" style="width:95%;"><br />
    577  </label>
    578  <datalist id="characters">
    579   <label>
    580    or select one from the list:<br />
    581    <select name="favCharacter">
    582     <option>Homer Simpson
    583     <option>Bart
    584     <option>Fred Flinstone
    585    </select>
    586   </label>
    587  </datalist>
    588 </div>
    589  */
    590572}
    591573
     
    666648 * Selecteur de plan comptable
    667649 *
    668  * @param string $plan
     650 * @param string $pcg
    669651 *   ID du plan comptable selectionne
    670  * @param string $name
     652 * @param string $nom
    671653 *   Nom du selecteur dans le formulaire
    672654 * @return string $res
     
    674656 * ce sont de fichiers de langue "lang/pcg2*.php"
    675657 */
    676 function filtre_selecteur_compta_plan($plan, $name='plan_comptable') {
     658function filtre_selecteur_compta_plan($pcg, $nom='plan_comptable') {
    677659    $liste_plans = array_keys(find_all_in_path('lang/', 'pcg2', FALSE) ); // '\\bpcg2.*\\b'
    678660    foreach ($liste_plans as $pos=>$plan) {
     
    681663    }
    682664    $desc_table = charger_fonction('trouver_table', 'base');
    683     $res = "<select name='$name' id='selecteur_$name'>\n";
     665    $res = "<select name='$nom' id='selecteur_$nom'>\n";
    684666    $res .= '<option value="">'. _T('ecrire:item_non') ."</option>\n";
    685     foreach (array_unique($liste_plans) as $nom) {
    686         $res .= '<option value="'.$nom.'"'.
    687         ($nom==$plan?' selected="selected"':'') .'>';
    688         $pays = $desc_table('pays') ? sql_getfetsel('nom', 'spip_pays', 'code='.sql_quote($nom) ) : '';
    689         $res .= $pays ? extraire_multi($pays, $GLOBALS['spip_lang']) : strtoupper($nom) ;
     667    foreach (array_unique($liste_plans) as $id) {
     668        $res .= '<option value="'.$id.'"'.
     669        ($id==$pcg?' selected="selected"':'') .'>';
     670        $pays = $desc_table('pays') ? sql_getfetsel('nom', 'spip_pays', 'code='.sql_quote($id) ) : '';
     671        $res .= $pays ? extraire_multi($pays, $GLOBALS['spip_lang']) : strtoupper($id) ;
    690672        $res .= "</option>\n";
    691673    }
  • _plugins_/Associaspip/trunk/lang/compta_fr.php

    r73327 r73361  
    1717        'erreur_classe_longueur' => 'Une classe comptable est un seul caractère !',
    1818        'erreur_classe_plage' => 'Les classes comptables doivent être comprise dans la plage @intervalle@ !',
     19        'erreur_classe_type' => 'Un compte de la classe <em>@numero@</em> ne peut etre de type <em>@interdit@</em> !',
    1920        'erreur_code_classe' => 'Une référence comptable de cette classe doit commencer par @nombre@ !',
    2021        'erreur_code_longueur' => 'Une référence comptable doit avoir au moins @nombre@ caractères !',
Note: See TracChangeset for help on using the changeset viewer.