Ignore:
Timestamp:
Jan 30, 2013, 9:58:22 AM (7 years ago)
Author:
goya
Message:

refacto api code to add task to generate dump of all amdmts for a bill

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpc/trunk/project/lib/model/doctrine/myTools.class.php

    r2985 r3091  
    295295  }
    296296
     297  public static function array2hash($array, $hashname) {
     298    if (!$array)
     299      return array();
     300    $hash = array();
     301    if (!isset($array[0])) {
     302      if (isset($array->fonction))
     303        return array("organisme" => $array->getNom(), "fonction" => $array->fonction);
     304      else return $array;
     305    }
     306    foreach($array as $e) if ($e) {
     307      if (isset($e->fonction))
     308        $hash[] = array($hashname => array("organisme" => $e->getNom(), "fonction" => $e->fonction));
     309      else $hash[] = array($hashname => preg_replace('/\n/', ', ', $e));
     310    }
     311    return $hash;
     312  }
     313
     314  public static function depile_assoc_xml($asso, $breakline, $alreadyline) {
     315    foreach (array_keys($asso) as $k) {
     316      if (!$alreadyline && $k == $breakline) {
     317        echo "\n";
     318        $alreadyline = 1;
     319      }
     320      echo "<$k>";
     321      echo self::depile_xml($asso[$k], $breakline, $alreadyline);
     322      echo "</$k>";
     323      if ($k == $breakline) {
     324        echo "\n";
     325      }
     326    }
     327  }
     328
     329  public static function depile_xml($res, $breakline, $alreadyline = 0) {
     330    if (is_array($res)) {
     331      if (!isset($res[0])) {
     332        self::depile_assoc_xml($res, $breakline, $alreadyline);
     333      }else{
     334        foreach($res as $r) {
     335          self::depile_xml($r, $breakline, $alreadyline);
     336        }
     337      }
     338    }else{
     339      $res = str_replace('<', '&lt;', $res);
     340      $res = str_replace('>', '&gt;', $res);
     341      $res = str_replace('&', '&amp;', $res);
     342      echo $res;
     343    }
     344  }
     345 
     346  public static function depile_assoc_csv($asso, $breakline, $multi, $alreadyline) {
     347    $semi = 0;
     348    foreach (array_keys($asso) as $k) {
     349      if (isset($multi[$k]) && $multi[$k]) {
     350        $semi = 1;
     351      }
     352      self::depile_csv($asso[$k], $breakline, $multi, $semi, $alreadyline);
     353      if ($k == $breakline) {
     354        echo "\n";
     355      }
     356    }
     357    return $semi;
     358  }
     359 
     360  public static function depile_csv($res, $breakline, $multi, $comma = 0, $alreadyline = 0) {
     361    if (is_array($res)) {
     362      if (isset($res['organisme']) && isset($res['fonction']))
     363        return self::depile_csv($res['organisme']." - ".$res['fonction'], $breakline, $multi, $comma, $alreadyline);
     364      if (!isset($res[0])) {
     365        if (array_keys($res))
     366        return self::depile_assoc_csv($res, $breakline, $multi, $alreadyline);
     367        echo ";";
     368        return;
     369      }
     370      foreach($res as $r)
     371        $semi = self::depile_csv($r, $breakline, $multi, 0, $alreadyline);
     372      if ($semi)
     373        echo ';';
     374    }else{
     375      if ($comma)
     376        $res = preg_replace('/[,;]/', '', $res);
     377      $string = preg_match('/[,;"]/', $res);
     378      if ($string) {
     379        $res = preg_replace('/"/', '\"', $res);
     380        echo '"';
     381      }
     382      echo $res;
     383      if ($string)
     384        echo '"';
     385      if ($comma)
     386        echo '|';
     387      else echo ';';
     388    }
     389  }
     390
    297391}
Note: See TracChangeset for help on using the changeset viewer.