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`;
+ }
}