From: Vincent Vanwaelscappel Date: Wed, 26 Mar 2025 18:15:23 +0000 (+0100) Subject: wip #7378 @3 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=5d166800878efce6317a2f7dee52ccac32fa5cc1;p=dtlc.git wip #7378 @3 --- diff --git a/framework/application/Bootstrap.php b/framework/application/Bootstrap.php index af80149..10b8833 100644 --- a/framework/application/Bootstrap.php +++ b/framework/application/Bootstrap.php @@ -1,140 +1,160 @@ bootstrap('doctype'); - } - - protected function _initScripts() { - parent::_initScripts(); - } - - protected function _initRouter($initCms = true, $standard = true) { - $router = parent::_initRouter($initCms, $standard); - $router->addStandardRoute('devis', 'devis'); - $router->addStandardRoute('payment', 'payment'); - $router->addStandardRoute('sogecommerce', 'sogecommerce'); - return $router; - } - - /** - * - * @param \Doctrine\DBAL\Schema\Schema $schema - * @param mixed $options - */ - protected function _defineSchema(&$schema, $options) { - parent::_defineSchema($schema, $options); - - $devis = $schema->createTable('devis'); - $devis->addColumn('id', 'integer', array('unsigned' => true, 'autoincrement' => true)); - $devis->setPrimaryKey(array('id')); - $devis->addColumn('nom', 'string', array('length' => 128)); - $devis->addIndex(array('nom')); - $devis->addColumn('email', 'string', array('length' => 128)); - $devis->addIndex(array('email')); - $devis->addColumn('prenom', 'string', array('length' => 128)); - $devis->addIndex(array('prenom')); - $devis->addColumn('societe', 'string', array('length' => 128)); - $devis->addIndex(array('societe')); - $devis->addColumn('telephone', 'string', array('length' => 32)); - $devis->addColumn('mobile', 'string', array('length' => 32)); - $devis->addColumn('adresse', 'string', array('length' => 128)); - $devis->addColumn('code_postal', 'string', array('length' => 8)); - $devis->addColumn('ville', 'string', array('length' => 128)); - $devis->addColumn('country', 'string', array('length' => 4, 'default' => 'FR')); - $devis->addColumn('tva_intra', 'string', array('length' => 32)); - $devis->addColumn('reference', 'text'); - $devis->addColumn('demandes', 'text'); - $devis->addColumn('magasin', 'string', array('length' => 32)); - $devis->addIndex(array('magasin')); - $devis->addColumn('livraison', 'boolean'); - $devis->addColumn('adresse_livraison', 'string', array('length' => 512)); - $devis->addColumn('complement_livraison', 'string', array('length' => 512)); - $devis->addColumn('fichiers', 'text'); - $devis->addColumn('date', 'datetime'); - $devis->addColumn('tva', 'float', array('default' => '20')); - $devis->addIndex(array('date')); - $devis->addColumn('status', 'integer'); - $devis->addIndex(array('status')); - $devis->addColumn('secret', 'string', array('length' => 40)); - $devis->addIndex(array('secret')); - $devis->addColumn('details', 'text'); - // Réponse - $devis->addColumn('reponse', 'text'); - $devis->addColumn('date_reponse', 'datetime'); - $devis->addColumn('montant_ht', 'float'); - $devis->addColumn('montant_ttc', 'float'); - // Paiement - $devis->addColumn('infos_paiement', 'text'); - $devis->addColumn('date_paiement', 'datetime'); - } - - - protected function _initDbViews() { - parent::_initDbViews(); - $db = Zend_Db_Table::getDefaultAdapter(); - $db->createView("devis_view", $db->select()->from('devis', array('*', 'date_action' => 'GREATEST(`date`,`date_reponse`,`date_paiement`)'))); - } - - - /** - * - * @return array - */ - public function getCMSTemplates() { - $templates = parent::getCMSTemplates(); - $templates['Pages'] = array( - 'services' => 'Services', - 'servicesdetail' => 'Service (détail)', - 'magasins' => 'Magasins', - 'devis' => 'Devis', - 'faq' => 'FAQ' - ); - return $templates; - } - - /** - * - * @return array - */ - protected function _getNavigationFields() { - return array('shortTitle', 'longTitle', 'url', 'target', 'theme', 'infos'); - } - - protected function _makeNavigationOnePage(&$navigation, $r, $t, $isAdmin, $locale = false) { - $page = parent::_makeNavigationOnePage($navigation, $r, $t, $isAdmin, $locale); - if (isset($t['theme'])) { - $page->setCustomHtmlAttrib('data-theme', $t['theme']); - } - if (isset($t['infos'])) { - $page->infos = $t['infos']; - } - - return $page; - } - - protected function __initDefaultMailTransport() { - return new CubeIT_Mail_Transport_Mandrill(); - //return new CubeIT_Mail_Transport_Sendmail('-freturn@detouteslescouleurs.com'); - } - - protected function _initAcl() { - $acl = parent::_initAcl(); - - $acl->addRole('devis', 'staff'); - $acl->addResource('administration/devis'); - $acl->addResource('administration/users/devis', 'administration/users/admin'); - $acl->allow('devis', 'administration/devis'); - - return $acl; - } - - - function __destroy() { - endProfile(); - } +class Bootstrap extends CubeIT_Bootstrap +{ + + protected function _initMinimum() + { + parent::_initMinimum(); + // If a project with html display (don't activate by default for web services apps) + $this->bootstrap('doctype'); + } + + protected function _initScripts() + { + parent::_initScripts(); + } + + protected function _initRouter($initCms = true, $standard = true) + { + $router = parent::_initRouter($initCms, $standard); + $router->addStandardRoute('devis', 'devis'); + $router->addStandardRoute('payment', 'payment'); + $router->addStandardRoute('sogecommerce', 'sogecommerce'); + return $router; + } + + /** + * + * @param \Doctrine\DBAL\Schema\Schema $schema + * @param mixed $options + */ + protected function _defineSchema(&$schema, $options) + { + parent::_defineSchema($schema, $options); + + $devis = $schema->createTable('devis'); + $devis->addColumn('id', 'integer', array('unsigned' => true, 'autoincrement' => true)); + $devis->setPrimaryKey(array('id')); + $devis->addColumn('nom', 'string', array('length' => 128)); + $devis->addIndex(array('nom')); + $devis->addColumn('email', 'string', array('length' => 128)); + $devis->addIndex(array('email')); + $devis->addColumn('prenom', 'string', array('length' => 128)); + $devis->addIndex(array('prenom')); + $devis->addColumn('societe', 'string', array('length' => 128)); + $devis->addIndex(array('societe')); + $devis->addColumn('telephone', 'string', array('length' => 32)); + $devis->addColumn('type', 'string', array('length' => 3)); + $devis->addColumn('mobile', 'string', array('length' => 32)); + $devis->addColumn('adresse', 'string', array('length' => 128)); + $devis->addColumn('code_postal', 'string', array('length' => 8)); + $devis->addColumn('ville', 'string', array('length' => 128)); + $devis->addColumn('country', 'string', array('length' => 4, 'default' => 'FR')); + $devis->addColumn('tva_intra', 'string', array('length' => 32)); + $devis->addColumn('reference', 'text'); + $devis->addColumn('demandes', 'text'); + $devis->addColumn('magasin', 'string', array('length' => 32)); + $devis->addIndex(array('magasin')); + $devis->addColumn('livraison', 'boolean'); + $devis->addColumn('adresse_livraison', 'string', array('length' => 512)); + $devis->addColumn('complement_livraison', 'string', array('length' => 512)); + $devis->addColumn('fichiers', 'text'); + $devis->addColumn('date', 'datetime'); + $devis->addColumn('tva', 'float', array('default' => '20')); + $devis->addIndex(array('date')); + $devis->addColumn('status', 'integer'); + $devis->addIndex(array('status')); + $devis->addColumn('secret', 'string', array('length' => 40)); + $devis->addIndex(array('secret')); + $devis->addColumn('details', 'text'); + // Réponse + $devis->addColumn('reponse', 'text'); + $devis->addColumn('date_reponse', 'datetime'); + $devis->addColumn('montant_ht', 'float'); + $devis->addColumn('montant_ttc', 'float'); + // Paiement + $devis->addColumn('infos_paiement', 'text'); + $devis->addColumn('date_paiement', 'datetime'); + $devis->addColumn('methode_paiement', 'string', array('length' => 40)); + } + + + protected function _initDbViews() + { + parent::_initDbViews(); + $db = Zend_Db_Table::getDefaultAdapter(); + $db->createView("devis_view", $db->select()->from('devis', array('*', 'date_action' => 'GREATEST(`date`,`date_reponse`,`date_paiement`)'))); + } + + + /** + * + * @return array + */ + public function getCMSTemplates() + { + $templates = parent::getCMSTemplates(); + $templates['Pages'] = array( + 'services' => 'Services', + 'servicesdetail' => 'Service (détail)', + 'magasins' => 'Magasins', + 'devis' => 'Devis', + 'faq' => 'FAQ' + ); + return $templates; + } + + /** + * + * @return array + */ + protected function _getNavigationFields() + { + return array('shortTitle', 'longTitle', 'url', 'target', 'theme', 'infos'); + } + + protected function _makeNavigationOnePage(&$navigation, $r, $t, $isAdmin, $locale = false) + { + $page = parent::_makeNavigationOnePage($navigation, $r, $t, $isAdmin, $locale); + if (isset($t['theme'])) { + $page->setCustomHtmlAttrib('data-theme', $t['theme']); + } + if (isset($t['infos'])) { + $page->infos = $t['infos']; + } + + return $page; + } + + protected function __initDefaultMailTransport() + { + $transport = $this->getOpt("mail.transport", 'mandrill'); + if ($transport === 'mandrill') { + return new CubeIT_Mail_Transport_Mandrill(); + } else if ($transport === 'postal') { + return new CubeIT_Mail_Transport_Postal(); + } + + //return new CubeIT_Mail_Transport_Sendmail('-freturn@detouteslescouleurs.com'); + } + + protected function _initAcl() + { + $acl = parent::_initAcl(); + + $acl->addRole('devis', 'staff'); + $acl->addResource('administration/devis'); + $acl->addResource('administration/users/devis', 'administration/users/admin'); + $acl->allow('devis', 'administration/devis'); + + return $acl; + } + + + function __destroy() + { + endProfile(); + } } diff --git a/framework/application/DTLC/Util.php b/framework/application/DTLC/Util.php index 11d198e..7a7434e 100644 --- a/framework/application/DTLC/Util.php +++ b/framework/application/DTLC/Util.php @@ -39,7 +39,7 @@ class DTLC_Util $m = 11; } $date = new CubeIT_Date($devis->date_paiement, CubeIT_Date::MYSQL); - return $m . '-' . $date->toString(CubeIT_Date::YEAR_SHORT) . 'NET' . $devis->id; + return $m . '-' . $date->toString(CubeIT_Date::YEAR_SHORT) . ($devis->type ?: 'NET') . $devis->id; } public static function getQuoteNumber($devis) @@ -50,7 +50,7 @@ class DTLC_Util $m = 11; } $date = new CubeIT_Date($devis->date_reponse, CubeIT_Date::MYSQL); - return $m . '-' . $date->toString(CubeIT_Date::YEAR_SHORT) . 'NET' . $devis->id; + return $m . '-' . $date->toString(CubeIT_Date::YEAR_SHORT) . ($devis->type ?: 'NET') . $devis->id; } diff --git a/framework/application/configs/application.ini b/framework/application/configs/application.ini index 92819a6..fa80ac0 100644 --- a/framework/application/configs/application.ini +++ b/framework/application/configs/application.ini @@ -49,9 +49,7 @@ mail.test = APPLICATION_PATH "/../data/email/test" mail.bcc = test@cubedesigners.com mail.subjectPrefix = "" -mailjet.username = 784e4d0b73f52fe9cb7933e81ceef122 -mailjet.password = 1746fae4434c86c702548bf60fa8901a - +mail.transport = mandrill mandrill.username = "De toutes les couleurs" mandrill.password = QigtHBMVpBYo3n29DAZWrQ @@ -89,6 +87,12 @@ sogenactif.merchant = 002001000000001 sogecommerce.mode = TEST sogecommerce.key = M36rdUrUHlN15u4x +mail.transport = postal +postal.username = dtlc/dtlc-dev +postal.password = BeHsGbUhvMAbNsT3xpkELVUV +postal.server = postal.cubedesigners.com + + webhost = dev.detouteslescouleurs.com mail.subjectPrefix = "/!\ Site de développement | " \ No newline at end of file diff --git a/framework/application/controllers/AdminajaxController.php b/framework/application/controllers/AdminajaxController.php index bdd70b8..5f4b7e7 100644 --- a/framework/application/controllers/AdminajaxController.php +++ b/framework/application/controllers/AdminajaxController.php @@ -200,4 +200,19 @@ L\'équipe "De toutes les couleurs"'); $this->_datas->addReloadPopup(); } + public function devisConvertToStoreOrder($id) + { + $db = $this->getDb(); + $bind['type'] = 'MAG'; + $bind['date_reponse'] = $bind['date_paiement'] = $_POST['date']; + $bind['methode_paiement'] = $_POST['methode_paiement']; + $bind['status'] = DTLC_Form_Devis::PAYE; + $db->compliantUpdate('devis', $bind, $db->quoteInto('id = ?', $id)); + + $r = Bootstrap::getInstance()->getDb()->select()->from('devis')->where('id = ?', $id)->query()->fetch(); + + $this->_datas->addClosePopup(); + $this->_datas->addRedirection('/devis/index/' . $id . '/' . $r->secret); + } + } diff --git a/framework/application/controllers/AdminajaxpopupController.php b/framework/application/controllers/AdminajaxpopupController.php index 95acceb..491f2d7 100644 --- a/framework/application/controllers/AdminajaxpopupController.php +++ b/framework/application/controllers/AdminajaxpopupController.php @@ -51,6 +51,49 @@ class AdminajaxpopupController extends CubeIT_Controller_Admin_AdminajaxpopupCon return $res; } + public function devisConvertToStoreOrder($id) + { + if (!$this->isAllowed('administration/devis')) { + throw new Exception('Forbidden action'); + } + $w = 430; + $this->setPopupWidth($w) + ->setPopupMaxWidth($w) + ->setPopupBackWidth($w); + + $this->view->title = "Convertir en commande magasin"; + + $r = Bootstrap::getInstance()->getDb()->select()->from('devis')->where('id = ?', $id)->query()->fetch(); + $res = '
'; + $res .= '
'; + $res .= '
'; + $res .= '
'; + $res .= 'Moyen de paiement'; + $res .= '
'; + $res .= '
'; + $res .= ''; + $res .= '
'; + $res .= '
'; + $res .= '
'; + $res .= '
'; + $res .= 'Date'; + $res .= '
'; + $res .= '
'; + $res .= ''; + $res .= '
'; + $res .= '
'; + $res .= 'Convertir'; + $res .= '
'; + $res .= '
'; + return $res; + } + public function devisDone($id) { if (!$this->isAllowed('administration/devis')) { @@ -102,7 +145,7 @@ Votre commande n°' . $id . ' a été enlevée par TNT ce jour, livraison prévu Cordialement, La direction']; $r = Bootstrap::getInstance()->getDb()->select()->from('devis')->where('id = ?', $id)->query()->fetch(); - $m=DTLC_Util::getMagasinById($r->magasin); + $m = DTLC_Util::getMagasinById($r->magasin); $res = '
'; $res .= '
'; $res .= '
'; @@ -110,8 +153,8 @@ La direction']; $res .= '