/**
  * Acción que entrega los XML del resultado de la revisión del intercambio
  * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
  * @version 2015-09-28
  */
 public function resultados_xml($codigo)
 {
     $Emisor = $this->getContribuyente();
     // obtener DTE emitido
     $DteIntercambio = new Model_DteIntercambio($Emisor->rut, $codigo, (int) $Emisor->certificacion);
     if (!$DteIntercambio->exists()) {
         \sowerphp\core\Model_Datasource_Session::message('No existe el intercambio solicitado', 'error');
         $this->redirect('/dte/dte_intercambios');
     }
     // si no hay XML error
     if (!$DteIntercambio->recepcion_xml and !$DteIntercambio->recibos_xml and !$DteIntercambio->resultado_xml) {
         \sowerphp\core\Model_Datasource_Session::message('No existen archivos de resultado generados, no se ha procesado aun el intercambio', 'error');
         $this->redirect(str_replace('resultados_xml', 'ver', $this->request->request));
     }
     // agregar a archivo comprimido y entregar
     $dir = TMP . '/resultado_intercambio_' . $Emisor->rut . '-' . $Emisor->dv . '_' . $DteIntercambio->codigo;
     if (is_dir($dir)) {
         \sowerphp\general\Utility_File::rmdir($dir);
     }
     if (!mkdir($dir)) {
         \sowerphp\core\Model_Datasource_Session::message('No fue posible crear el directorio temporal para los XML', 'error');
         $this->redirect(str_replace('resultados_xml', 'ver', $this->request->request));
     }
     if ($DteIntercambio->recepcion_xml) {
         file_put_contents($dir . '/RecepcionDTE.xml', base64_decode($DteIntercambio->recepcion_xml));
     }
     if ($DteIntercambio->recibos_xml) {
         file_put_contents($dir . '/EnvioRecibos.xml', base64_decode($DteIntercambio->recibos_xml));
     }
     if ($DteIntercambio->resultado_xml) {
         file_put_contents($dir . '/ResultadoDTE.xml', base64_decode($DteIntercambio->resultado_xml));
     }
     \sowerphp\general\Utility_File::compress($dir, ['format' => 'zip', 'delete' => true]);
     exit;
 }