From d285750fe1a13e6a8e6223886fbf99879431fbc8 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 9 Nov 2023 15:54:23 +0100 Subject: [PATCH] wait #6456 @0.5 --- .../controllers/AdminController.php | 213 +++++++++--------- 1 file changed, 108 insertions(+), 105 deletions(-) diff --git a/framework/application/controllers/AdminController.php b/framework/application/controllers/AdminController.php index 1924c2c..ac8f01b 100644 --- a/framework/application/controllers/AdminController.php +++ b/framework/application/controllers/AdminController.php @@ -3,110 +3,113 @@ class AdminController extends CubeIT_Controller_Admin_AdminController { - public function devisAction() - { - - if (!$this->isAllowed('administration/devis')) { - $this->redirect('/admin?redirect=' . urlencode($_SERVER['REQUEST_URI'])); - } - - $form = new DTLC_Form_Devis(); - $form->setAdmin(true); - $id = $this->_params[0]; - - $db = $this->getDb(); - - $q = $db->select()->from('devis')->where('id = ?', $id)->query(); - - $bootstrap = Bootstrap::getInstance(); - - $r = $q->fetch(Zend_Db::FETCH_ASSOC); - if ($r['status'] == 0) { - $r['tva'] = $this->getOpt('tva'); - } - - $this->view->headScriptVariables()->setVariable('tva', $r['tva']); - $defaults = array(); - foreach ($r as $k => $v) { - if (CubeIT_Util_Json::isJson($v)) { - $v = CubeIT_Util_Json::decode($v, true); - } - if ($k == 'status') { - $form->setStatus($v); - } - $defaults[$k] = $v; - } - if (!is_array($defaults['details'])) { - unset($defaults['details']); - } - - if ($defaults['livraison']) { - - $i = 0; - foreach ($defaults as $k => $detail) { - $e = explode('_', $k); - if ($e[0] == 'descriptif') { - $i = max($e[1], $i); - } - } - $i++; - - $livraisonText = '__Livraison__' . "\n"; - $defaults['adresse_livraison'] = trim($defaults['adresse_livraison']); - if ($defaults['adresse_livraison']) { - $livraisonText .= str_replace("\n", ' ', $defaults['adresse_livraison']); - } else { - $livraisonText .= str_replace("\n", ' ', trim($defaults['adresse'])) . " " . $defaults['code_postal'] . ' ' . $defaults['ville']; - } - if ($defaults['complement_livraison']) { - $livraisonText .= "\n" . $defaults['complement_livraison']; - } - - $defaults['descriptif_' . $i] = trim($livraisonText); - - } - - $form->setDefaults($defaults); - $this->view->form = $form; - } - - public function devisdownloadAction() - { - if (!$this->isAllowed('administration/devis')) { - $this->redirect('/admin?redirect=' . urlencode($_SERVER['REQUEST_URI'])); - } - - $this->disableLayout(true); - - $dir = CubeIT_Files::tmpdir(); - if (!file_exists($dir)) { - mkdir($dir, 0777, true); - } - - $id = $this->_params[0]; - $db = $this->getDb(); - $q = $db->select()->from('devis')->where('id = ?', $id)->query(); - $devis = $q->fetch(); - $fichiers = json_decode($devis->fichiers); - $tozip = array(); - foreach ($fichiers as $file) { - $local = $dir . '/' . preg_replace('/^[0-9a-fA-F]{6,}-/', '', CubeIT_Util_Cms::extractFiles($file, 1)[0]); - copy(PUBLIC_PATH . CubeIT_Util_Cms::filePath($file, 'userfiles'), $local); - $tozip[] = $local; - } - - $zip = tempnam(FRAMEWORK_PATH . '/tmp', 'zip'); - - CubeIT_Util_Zip::archive($tozip, $zip); - $zip .= ".zip"; - - $this->getResponse()->clearBody(); - $this->getResponse() - ->setHeader('Content-type', CubeIT_Files::getMimeType('e.zip')) - ->setHeader('Content-disposition', 'attachment; filename="DTLC_WEB_' . $id . '.zip"') - ->setBody(file_get_contents($zip))->sendResponse(); - unlink($zip); - `rm -rf $dir`; - } + public function devisAction() + { + + if (!$this->isAllowed('administration/devis')) { + $this->redirect('/admin?redirect=' . urlencode($_SERVER['REQUEST_URI'])); + } + + $form = new DTLC_Form_Devis(); + $form->setAdmin(true); + $id = $this->_params[0]; + + $db = $this->getDb(); + + $q = $db->select()->from('devis')->where('id = ?', $id)->query(); + + $bootstrap = Bootstrap::getInstance(); + + $r = $q->fetch(Zend_Db::FETCH_ASSOC); + if ($r['status'] == 0) { + $r['tva'] = $this->getOpt('tva'); + } + + $this->view->headScriptVariables()->setVariable('tva', $r['tva']); + $defaults = array(); + foreach ($r as $k => $v) { + if (CubeIT_Util_Json::isJson($v)) { + $v = CubeIT_Util_Json::decode($v, true); + } + if ($k == 'status') { + $form->setStatus($v); + } + $defaults[$k] = $v; + } + if (!is_array($defaults['details'])) { + unset($defaults['details']); + } + + if ($defaults['livraison']) { + + $i = 0; + foreach ($defaults as $k => $detail) { + $e = explode('_', $k); + if ($e[0] == 'descriptif') { + $i = max($e[1], $i); + } + } + $i++; + + $livraisonText = '__Livraison__' . "\n"; + $defaults['adresse_livraison'] = trim($defaults['adresse_livraison']); + if ($defaults['adresse_livraison']) { + $livraisonText .= str_replace("\n", ' ', $defaults['adresse_livraison']); + } else { + $livraisonText .= str_replace("\n", ' ', trim($defaults['adresse'])) . " " . $defaults['code_postal'] . ' ' . $defaults['ville']; + } + if ($defaults['complement_livraison']) { + $livraisonText .= "\n" . $defaults['complement_livraison']; + } + + $defaults['descriptif_' . $i] = trim($livraisonText); + + } + + $form->setDefaults($defaults); + $this->view->form = $form; + } + + public function devisdownloadAction() + { + if (!$this->isAllowed('administration/devis')) { + $this->redirect('/admin?redirect=' . urlencode($_SERVER['REQUEST_URI'])); + } + + $this->disableLayout(true); + + $dir = CubeIT_Files::tmpdir(); + if (!file_exists($dir)) { + mkdir($dir, 0777, true); + } + + $id = $this->_params[0]; + $db = $this->getDb(); + $q = $db->select()->from('devis')->where('id = ?', $id)->query(); + $devis = $q->fetch(); + $fichiers = json_decode($devis->fichiers); + $tozip = array(); + foreach ($fichiers as $file) { + $local = $dir . '/' . preg_replace('/^[0-9a-fA-F]{6,}-/', '', CubeIT_Util_Cms::extractFiles($file, 1)[0]); + copy(PUBLIC_PATH . CubeIT_Util_Cms::filePath($file, 'userfiles'), $local); + $tozip[] = $local; + } + + $zip = tempnam(FRAMEWORK_PATH . '/tmp', 'zip'); + + CubeIT_Util_Zip::archive($tozip, $zip); + $zip .= ".zip"; + + ob_end_clean(); + + $this->getResponse()->clearBody(); + $this->getResponse() + ->setHeader('Content-type', CubeIT_Files::getMimeType('e.zip')) + ->setHeader('Content-disposition', 'attachment; filename="DTLC_WEB_' . $id . '.zip"') + ->setHeader('Content-length', filesize($zip)) + ->setBody(file_get_contents($zip))->sendResponse(); + unlink($zip); + `rm -rf $dir`; + } } -- 2.39.5