Skip to content

Commit

Permalink
Allow convert quotation to order using one click
Browse files Browse the repository at this point in the history
  • Loading branch information
cchalamon committed Jul 7, 2023
1 parent 7e1b913 commit 1e4244a
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 51 deletions.
71 changes: 60 additions & 11 deletions controllers/admin/AdminEverPsQuotationController.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ public function __construct()
$this->className = 'EverpsquotationClass';
$this->identifier = 'id_everpsquotation_quotes';
$this->module_name = 'everpsquotation';
$this->isSeven = Tools::version_compare(_PS_VERSION_, '1.7', '>=') ? true : false;
parent::__construct();

$this->_select = '
Expand Down Expand Up @@ -162,20 +161,17 @@ public function __construct()

public function l($string, $class = null, $addslashes = false, $htmlentities = true)
{
if ($this->isSeven) {
return Context::getContext()->getTranslator()->trans(
$string,
[],
'Modules.Everpsquotation.Admineverpsquotationcontroller'
);
}

return parent::l($string, $class, $addslashes, $htmlentities);
return Context::getContext()->getTranslator()->trans(
$string,
[],
'Modules.Everpsquotation.Admineverpsquotationcontroller'
);
}

public function initToolbar()
{
//Empty because of reasons :-)
parent::initToolbar();
unset($this->toolbar_btn['new']);
}

public function setMedia($isNewTheme = false)
Expand All @@ -191,6 +187,7 @@ public function renderList()
$this->initToolbar();
$this->addRowAction('view');
$this->addRowAction('dropQuote');
$this->addRowAction('convertToOrder');
$lists = parent::renderList();
$html = $this->context->smarty->fetch(_PS_MODULE_DIR_ . '/everpsquotation/views/templates/admin/header.tpl');
$module_instance = Module::getInstanceByName($this->module_name);
Expand Down Expand Up @@ -237,6 +234,37 @@ public function postProcess()
$this->errors[] = Tools::displayError('An error has occurred: Can\'t update the current object');
}
}
if (Tools::getIsset('convert_to_order')) {
$quote = new EverpsquotationClass(
(int) Tools::getValue('id_everpsquotation_quotes')
);
$products = EverpsquotationDetail::getQuoteDetailByQuoteId(
(int)$quote->id,
(int)$this->context->shop->id,
(int)$this->context->language->id
);
$cart = new Cart();
$cart->id_customer = (int) $quote->id_customer;
$cart->id_currency = (int) $quote->id_currency;
$cart->id_address_delivery = (int) $quote->id_address_delivery;
$cart->id_address_invoice = (int) $quote->id_address_invoice;
$cart->id_lang = (int) $quote->id_lang;
$cart->id_carrier = (int) $quote->id_carrier;
$cart->save();
foreach ($products as $value) {
$cart->updateQty(
$value['product_quantity'],
$value['product_id'],
$value['product_attribute_id'],
false
);
}
$link = new Link();
$createOrderLink = $link->getAdminLink('AdminOrders', true, [], ['id_cart' => $cart->id, 'addorder' => 1]);
Tools::redirect(
'http://localhost/ps8/admin7634ugpd7fexth1thbe/index.php/sell/orders/new?cartId=' . (int) $cart->id . '&_token=on87aET4vTNr7B37xQqNFiydBGBOIb-dO67MxgVoKRw'
);
}
return parent::postProcess();
}

Expand All @@ -260,4 +288,25 @@ public function displayDropQuoteLink($token, $id_everpsquotation)
_PS_MODULE_DIR_.'everpsquotation/views/templates/admin/helpers/lists/list_action_drop_quote.tpl'
);
}

public function displayConvertToOrderLink($token, $id_everpsquotation)
{
if (!$token) {
return;
}
$quote_controller_link = 'index.php?controller=AdminEverPsQuotation&token=';
$quote_controller_link .= Tools::getAdminTokenLite('AdminEverPsQuotation');
$quote_controller_link .= '&id_everpsquotation_quotes='.(int)$id_everpsquotation;
$quote_controller_link .= '&convert_to_order';

$this->context->smarty->assign(array(
'href' => $quote_controller_link,
'confirm' => null,
'action' => $this->l('Convert to order')
));

return $this->context->smarty->fetch(
_PS_MODULE_DIR_.'everpsquotation/views/templates/admin/helpers/lists/list_action_convert_quote_to_order.tpl'
);
}
}
2 changes: 1 addition & 1 deletion everpsquotation.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public function __construct()
{
$this->name = 'everpsquotation';
$this->tab = 'payments_gateways';
$this->version = '4.0.2';
$this->version = '4.1.0';
$this->author = 'Team Ever';
$this->need_instance = 0;
$this->bootstrap = true;
Expand Down
79 changes: 40 additions & 39 deletions translations/fr.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,23 +67,35 @@
$_MODULE['<{everpsquotation}prestashop>admineverpsquotationcontroller_065ab3a28ca4f16f55f103adc7d0226f'] = 'Livraison';
$_MODULE['<{everpsquotation}prestashop>admineverpsquotationcontroller_09e19149258b12c384de8bee722ddd32'] = 'Liste des devis';
$_MODULE['<{everpsquotation}prestashop>admineverpsquotationcontroller_f2a6c498fb90ee345d997f888fce3b18'] = 'Supprimer';
$_MODULE['<{everpsquotation}prestashop>admineverpsquotationcontroller_20d5c36b135366375e213cc3a36c593b'] = 'Convertir en commande';
$_MODULE['<{everpsquotation}prestashop>quotations_b423cfa40750b96c794447f27fa4cf87'] = 'Mes devis';
$_MODULE['<{everpsquotation}prestashop>validation_8471f68e6bc1c67e47b143e72760c837'] = 'Devis enregistré';
$_MODULE['<{everpsquotation}prestashop>productbutton_694e8d1f2ee056f98ee488bdc4982d73'] = 'Quantité';
$_MODULE['<{everpsquotation}prestashop>productbutton_4475d7d14d37b59319eda28f74829e38'] = 'Télécharger un devis';
$_MODULE['<{everpsquotation}prestashop>payment_4826e708d43aa7b1900bb1bac31413cc'] = 'Réaliser un devis';
$_MODULE['<{everpsquotation}prestashop>noaddress_fa159bb9c57b7a175224af1d7f4445d3'] = 'Vous devez créer une adresse pour ';
$_MODULE['<{everpsquotation}prestashop>noaddress_593458947b02dfdf0ee15829fc0a7a69'] = 'demander un devis.';
$_MODULE['<{everpsquotation}prestashop>noaddress_2dda240bbdbce8ce631de3c3beebb7cf'] = 'Cliquez ici pour créer une nouvelle adresse';
$_MODULE['<{everpsquotation}prestashop>unlogged_666ff5c10fd717af7eebee9aaa9baed5'] = 'Vous devez être connecté pour ';
$_MODULE['<{everpsquotation}prestashop>unlogged_593458947b02dfdf0ee15829fc0a7a69'] = 'demander un devis';
$_MODULE['<{everpsquotation}prestashop>unlogged_8d603c312fb91afc04ea6b18d5e83d25'] = 'Cliquez ici pour vous connecter à votre compte';
$_MODULE['<{everpsquotation}prestashop>cartbutton_4475d7d14d37b59319eda28f74829e38'] = 'Télécharger un devis';
$_MODULE['<{everpsquotation}prestashop>configure_6045227ab0f0f2dd7f2c072f958e20f3'] = 'Comment autoriser la création de devis sur votre boutique ?';
$_MODULE['<{everpsquotation}prestashop>configure_455e1ea883e0372022d4c65878fa9560'] = 'En premier, vos produits doivent être actifs, disponibles à la vente, avec le prix affiché.';
$_MODULE['<{everpsquotation}prestashop>configure_5e3491a867c34396d350d5a0f95ab126'] = 'Les produits étant dans des catégories non autorisées bloqueront également la création de devis.';
$_MODULE['<{everpsquotation}prestashop>configure_e8806a24965fabdb1392d2fca9912f68'] = 'Chaque client doit être connecté et posséder une adresse pour générer un devis.';
$_MODULE['<{everpsquotation}prestashop>configure_129f3f90d233f97dece7be114dd29b36'] = 'Pour activer la génération de devis depuis la page produit, les URL réécrites doivent être activées.';
$_MODULE['<{everpsquotation}prestashop>configure_274eedd37097fcf537590df6e16a25f7'] = 'Veillez à bien renseigner les informations de contact de votre boutique suivantes :';
$_MODULE['<{everpsquotation}prestashop>configure_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'E-mail';
$_MODULE['<{everpsquotation}prestashop>configure_1f8261d17452a959e013666c5df45e07'] = 'Numéro de téléphone';
$_MODULE['<{everpsquotation}prestashop>configure_9f378467b83738b53b6da34ea5ad1c51'] = 'Vous pouvez retrouver les devis créés par vos clients dans l\'onglet \"Commandes\" de votre boutique';
$_MODULE['<{everpsquotation}prestashop>configure_8b2699e52e827677e9a9bd13bb77404c'] = 'Afin de créer des devis au nom de vos clients, vous pouvez vous connecter à leur compte en utilisant notre';
$_MODULE['<{everpsquotation}prestashop>configure_b6b3f7ec6357493cfbb5d0b5f52003e1'] = 'module gratuit de connexion au compte client disponible ici.';
$_MODULE['<{everpsquotation}prestashop>footer_d6c54c8d0e87ba75abb626d6cdeacd71'] = 'Team Ever Quotations';
$_MODULE['<{everpsquotation}prestashop>footer_c95654b179622c303e1888b7bee86154'] = 'Merci pour votre confiance :-)';
$_MODULE['<{everpsquotation}prestashop>footer_672713b9ebcaa2c438970dd65b8a49b5'] = 'N\'hésitez pas à nous contacter pour du support ou de l\'aide';
$_MODULE['<{everpsquotation}prestashop>header_d6c54c8d0e87ba75abb626d6cdeacd71'] = 'Team Ever Quotations';
$_MODULE['<{everpsquotation}prestashop>header_971e35f3785397e2867f959136ef3e07'] = 'Merci d\'activer la réécriture des URL sur votre boutique';
$_MODULE['<{everpsquotation}prestashop>header_32fd2ab8fe1cb492a6e103d54f1529ef'] = 'Bienvenue sur le module Team Ever Quotations !';
$_MODULE['<{everpsquotation}prestashop>header_cd87cbf272c1de2868eb62e2db867324'] = 'Merci d\'utiliser les modules de Team Ever';
$_MODULE['<{everpsquotation}prestashop>header_9d4be8d6a82583ca4dab84013cea1ec8'] = 'Avez-vous besoin de plus de fonctions pour vos devis sur votre boutique?';
$_MODULE['<{everpsquotation}prestashop>header_13162665ad376670e5396e5532e89352'] = 'Jetez un œil sur notre module partenaire, vous pourrez créer des devis depuis votre back-office!';
$_MODULE['<{everpsquotation}prestashop>header_6c8ae613d508866eff7ebd5e29c3af62'] = 'Lien direct vers la configuration du module';
$_MODULE['<{everpsquotation}prestashop>header_cba38a8671bd29829ad679c0d38b8106'] = 'Lien direct vers les devis';
$_MODULE['<{everpsquotation}prestashop>header_4fb704f05a00111d953eb10dddc881d9'] = 'Ce module est gratuit et le sera toujours! Vous pouvez soutenir nos modules gratuits en faisant un don en cliquant sur le bouton ci-dessous';
$_MODULE['<{everpsquotation}prestashop>upgrade_11f4d2cc4546c08ed99645473ba29a5f'] = 'Une mise à jour est disponible sur notre boutique - Merci de vérifier';
$_MODULE['<{everpsquotation}prestashop>upgrade_a43640b6c7cabe3d8d157aba85f7cee4'] = 'Pour avoir la dernière version de ce module';
$_MODULE['<{everpsquotation}prestashop>myaccount_b423cfa40750b96c794447f27fa4cf87'] = 'Mes devis';
$_MODULE['<{everpsquotation}prestashop>quotation_added_8e2cff5cc9806020faa59272709a1482'] = 'Votre devis vous a bien été envoyé par email';
$_MODULE['<{everpsquotation}prestashop>quotation_added_6b61ee69a72d5edb0d566356a8ca8a72'] = 'Vous pouvez commander à n\'importe quel moment sur notre site ou retrouver vos devis sur votre compte client';
$_MODULE['<{everpsquotation}prestashop>quotation_added_ac106e2f8b81f359fc4798d8dcb1e0ea'] = 'N\'hésitez pas nous contacter par téléphone à ';
$_MODULE['<{everpsquotation}prestashop>quotation_added_7e6d1eefa1678657cd57b1aadcfa5edf'] = 'ou par email à ';
$_MODULE['<{everpsquotation}prestashop>payment_infos_810d7cc33e3151b15ea3255b2d8757c7'] = 'Votre devis vous sera automatiquement envoyé par email';
$_MODULE['<{everpsquotation}prestashop>quotations_b1405627a966efe94906b9a67ffba897'] = 'Voici une liste de vos devis';
$_MODULE['<{everpsquotation}prestashop>quotations_68705eec5d52b1589acfc48e9f14d577'] = 'Vous pouvez commande à n\'importe quel moment sur notre site';
Expand All @@ -98,6 +110,10 @@
$_MODULE['<{everpsquotation}prestashop>quotations_ad3d06d03d94223fa652babc913de686'] = 'Valider';
$_MODULE['<{everpsquotation}prestashop>quotations_34e91c176592ac1602659feb7b2746c6'] = 'Il n\'y a pas encore de devis sur votre compte !';
$_MODULE['<{everpsquotation}prestashop>quotations_122e15ccab4135a2786937a24b11e5e9'] = 'Retour à mon compte';
$_MODULE['<{everpsquotation}prestashop>quotation_added_8e2cff5cc9806020faa59272709a1482'] = 'Votre devis vous a bien été envoyé par email';
$_MODULE['<{everpsquotation}prestashop>quotation_added_6b61ee69a72d5edb0d566356a8ca8a72'] = 'Vous pouvez commander à n\'importe quel moment sur notre site ou retrouver vos devis sur votre compte client';
$_MODULE['<{everpsquotation}prestashop>quotation_added_ac106e2f8b81f359fc4798d8dcb1e0ea'] = 'N\'hésitez pas nous contacter par téléphone à ';
$_MODULE['<{everpsquotation}prestashop>quotation_added_7e6d1eefa1678657cd57b1aadcfa5edf'] = 'ou par email à ';
$_MODULE['<{everpsquotation}prestashop>everquotation_content_c03ee46d321c11ec0325118b1cd283cf'] = 'Informations de facturation';
$_MODULE['<{everpsquotation}prestashop>everquotation_content_ea7d9b60cc8654d2c6e8813529a2f3e8'] = 'Informations de livraison';
$_MODULE['<{everpsquotation}prestashop>everquotation_content_75ed578ac3cb02b0ba40002a25bc0403'] = 'Référence';
Expand All @@ -112,28 +128,13 @@
$_MODULE['<{everpsquotation}prestashop>everquotation_content_7bf753e0cbb2d38818ba2a3ee3b36f4d'] = 'Total taxes';
$_MODULE['<{everpsquotation}prestashop>everquotation_content_f617c53a5521d2c3be8cd30653e76ee3'] = 'Total TTC';
$_MODULE['<{everpsquotation}prestashop>everquotation_header_73015b3208cdee70a4497235463b63d7'] = 'Devis';
$_MODULE['<{everpsquotation}prestashop>footer_d6c54c8d0e87ba75abb626d6cdeacd71'] = 'Team Ever Quotations';
$_MODULE['<{everpsquotation}prestashop>footer_c95654b179622c303e1888b7bee86154'] = 'Merci pour votre confiance :-)';
$_MODULE['<{everpsquotation}prestashop>footer_672713b9ebcaa2c438970dd65b8a49b5'] = 'N\'hésitez pas à nous contacter pour du support ou de l\'aide';
$_MODULE['<{everpsquotation}prestashop>configure_6045227ab0f0f2dd7f2c072f958e20f3'] = 'Comment autoriser la création de devis sur votre boutique ?';
$_MODULE['<{everpsquotation}prestashop>configure_455e1ea883e0372022d4c65878fa9560'] = 'En premier, vos produits doivent être actifs, disponibles à la vente, avec le prix affiché.';
$_MODULE['<{everpsquotation}prestashop>configure_5e3491a867c34396d350d5a0f95ab126'] = 'Les produits étant dans des catégories non autorisées bloqueront également la création de devis.';
$_MODULE['<{everpsquotation}prestashop>configure_e8806a24965fabdb1392d2fca9912f68'] = 'Chaque client doit être connecté et posséder une adresse pour générer un devis.';
$_MODULE['<{everpsquotation}prestashop>configure_129f3f90d233f97dece7be114dd29b36'] = 'Pour activer la génération de devis depuis la page produit, les URL réécrites doivent être activées.';
$_MODULE['<{everpsquotation}prestashop>configure_274eedd37097fcf537590df6e16a25f7'] = 'Veillez à bien renseigner les informations de contact de votre boutique suivantes :';
$_MODULE['<{everpsquotation}prestashop>configure_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'E-mail';
$_MODULE['<{everpsquotation}prestashop>configure_1f8261d17452a959e013666c5df45e07'] = 'Numéro de téléphone';
$_MODULE['<{everpsquotation}prestashop>configure_9f378467b83738b53b6da34ea5ad1c51'] = 'Vous pouvez retrouver les devis créés par vos clients dans l\'onglet \"Commandes\" de votre boutique';
$_MODULE['<{everpsquotation}prestashop>configure_8b2699e52e827677e9a9bd13bb77404c'] = 'Afin de créer des devis au nom de vos clients, vous pouvez vous connecter à leur compte en utilisant notre';
$_MODULE['<{everpsquotation}prestashop>configure_b6b3f7ec6357493cfbb5d0b5f52003e1'] = 'module gratuit de connexion au compte client disponible ici.';
$_MODULE['<{everpsquotation}prestashop>upgrade_11f4d2cc4546c08ed99645473ba29a5f'] = 'Une mise à jour est disponible sur notre boutique - Merci de vérifier';
$_MODULE['<{everpsquotation}prestashop>upgrade_a43640b6c7cabe3d8d157aba85f7cee4'] = 'Pour avoir la dernière version de ce module';
$_MODULE['<{everpsquotation}prestashop>header_d6c54c8d0e87ba75abb626d6cdeacd71'] = 'Team Ever Quotations';
$_MODULE['<{everpsquotation}prestashop>header_971e35f3785397e2867f959136ef3e07'] = 'Merci d\'activer la réécriture des URL sur votre boutique';
$_MODULE['<{everpsquotation}prestashop>header_32fd2ab8fe1cb492a6e103d54f1529ef'] = 'Bienvenue sur le module Team Ever Quotations !';
$_MODULE['<{everpsquotation}prestashop>header_cd87cbf272c1de2868eb62e2db867324'] = 'Merci d\'utiliser les modules de Team Ever';
$_MODULE['<{everpsquotation}prestashop>header_9d4be8d6a82583ca4dab84013cea1ec8'] = 'Avez-vous besoin de plus de fonctions pour vos devis sur votre boutique?';
$_MODULE['<{everpsquotation}prestashop>header_13162665ad376670e5396e5532e89352'] = 'Jetez un œil sur notre module partenaire, vous pourrez créer des devis depuis votre back-office!';
$_MODULE['<{everpsquotation}prestashop>header_6c8ae613d508866eff7ebd5e29c3af62'] = 'Lien direct vers la configuration du module';
$_MODULE['<{everpsquotation}prestashop>header_cba38a8671bd29829ad679c0d38b8106'] = 'Lien direct vers les devis';
$_MODULE['<{everpsquotation}prestashop>header_4fb704f05a00111d953eb10dddc881d9'] = 'Ce module est gratuit et le sera toujours! Vous pouvez soutenir nos modules gratuits en faisant un don en cliquant sur le bouton ci-dessous';
$_MODULE['<{everpsquotation}prestashop>cartbutton_4475d7d14d37b59319eda28f74829e38'] = 'Télécharger un devis';
$_MODULE['<{everpsquotation}prestashop>noaddress_fa159bb9c57b7a175224af1d7f4445d3'] = 'Vous devez créer une adresse pour ';
$_MODULE['<{everpsquotation}prestashop>noaddress_593458947b02dfdf0ee15829fc0a7a69'] = 'demander un devis.';
$_MODULE['<{everpsquotation}prestashop>noaddress_2dda240bbdbce8ce631de3c3beebb7cf'] = 'Cliquez ici pour créer une nouvelle adresse';
$_MODULE['<{everpsquotation}prestashop>payment_4826e708d43aa7b1900bb1bac31413cc'] = 'Réaliser un devis';
$_MODULE['<{everpsquotation}prestashop>productbutton_694e8d1f2ee056f98ee488bdc4982d73'] = 'Quantité';
$_MODULE['<{everpsquotation}prestashop>productbutton_4475d7d14d37b59319eda28f74829e38'] = 'Télécharger un devis';
$_MODULE['<{everpsquotation}prestashop>unlogged_666ff5c10fd717af7eebee9aaa9baed5'] = 'Vous devez être connecté pour ';
$_MODULE['<{everpsquotation}prestashop>unlogged_593458947b02dfdf0ee15829fc0a7a69'] = 'demander un devis';
$_MODULE['<{everpsquotation}prestashop>unlogged_8d603c312fb91afc04ea6b18d5e83d25'] = 'Cliquez ici pour vous connecter à votre compte';
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{*
* Project : everpswinparf
* @author Team EVER
* @copyright Team EVER
* @license Tous droits réservés / Le droit d'auteur s'applique (All rights reserved / French copyright law applies)
* @link https://www.team-ever.com
*}

<a href="{$href|escape:'htmlall':'UTF-8'}"{if isset($confirm)} onclick="if (confirm('{$confirm|escape:'htmlall':'UTF-8'}')){ldelim}return true;{rdelim}else{ldelim}event.stopPropagation(); event.preventDefault();{rdelim};"{/if} title="{$action|escape:'htmlall':'UTF-8'}" target="_blank">
<i class="icon-credit-card"></i> {$action|escape:'htmlall':'UTF-8'}
</a>

0 comments on commit 1e4244a

Please sign in to comment.