/** * Permet d'imprimer un tableau associatif $sprinter_data * transforme le tableau en csv et l'envoi au sprinter d'ecrit dans $routing_key * * @param Application $app Silex application * @param string $letter_title Le nom du document .docx à générer * @param string $letter_template Le template .docx à générer * @param string $routing_key Le nom de la routing key * @param array $sprinter_data Le tableaux associatif contenant les informations à imprimer * @param array $sprinter_opt Le tableaux d'options optionnelles pour sprinter * * @return string routing_key */ public static function sendPrint(Application $app, $letter_title, $letter_template, $routing_key, array $sprinter_data, array $sprinter_opt = []) { if (!is_array($sprinter_data) || empty($sprinter_data)) { throw new \Exception("Bad data provided for printing", 400); } $letter_template_b64 = base64_encode($letter_template); $csv = CsvUtils::arrayToCsv($sprinter_data, $sprinter_opt["csv_rows"]); $csv_base64 = base64_encode($csv); $template = ["Name" => $letter_title, "Content" => $letter_template_b64]; $data = ["Name" => "data.csv", "Content" => $csv_base64]; $routing_key = null === $routing_key ? $app["sprinter.options"]["default.routing_key"] : $routing_key; $app["sprinter"]->sendPrint($template, $data, true, $routing_key, $sprinter_opt); return $routing_key; }
/** * @When /^je convertis en csv le tableau contenu dans "([^"]*)"(?: en prefixant avec "([^"]*)"?)?$/ */ public function jeConvertisEnCsvLeTableauContenuDans($filename, $prefix = null) { $filepath = realpath($this->requests_path . "/" . $filename); $array_to_convert = file_get_contents($filepath); $array_to_convert = json_decode($array_to_convert, true); if (null === $array_to_convert) { throw new Exception("json_decode error"); } $array_to_convert = array_map(function ($line) use($prefix) { return CsvUtils::getTokenFromArray($line, $prefix); }, $array_to_convert); try { $this->result = CsvUtils::arrayToCsv($array_to_convert, $this->csv_lines); } catch (\Exception $exception) { $this->error = $exception; } }