From 0abc6bdc23d6fcacdfa659d42c5e89672761ca60 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Thu, 23 Feb 2023 14:32:13 +0100 Subject: [PATCH 1/5] refs #5122 Fix --- forms/ecomerce/basket/index.js | 26 ++++++++++++---- forms/ecomerce/basket/locale/ca.yml | 5 +++- forms/ecomerce/basket/locale/en.yml | 5 +++- forms/ecomerce/basket/locale/es.yml | 5 +++- forms/ecomerce/basket/locale/fr.yml | 5 +++- forms/ecomerce/basket/locale/pt.yml | 5 +++- forms/ecomerce/basket/ui.xml | 26 +++++++++++----- forms/ecomerce/catalog/index.js | 11 +++---- forms/ecomerce/catalog/ui.xml | 10 ++----- forms/ecomerce/confirm/index.js | 2 +- forms/ecomerce/confirm/ui.xml | 9 +++--- js/hedera/basket.js | 46 ++++++++++++++++++++--------- 12 files changed, 104 insertions(+), 51 deletions(-) diff --git a/forms/ecomerce/basket/index.js b/forms/ecomerce/basket/index.js index 16762bc3..961b84a5 100644 --- a/forms/ecomerce/basket/index.js +++ b/forms/ecomerce/basket/index.js @@ -6,19 +6,35 @@ export default new Class({ async open() { await Hedera.Form.prototype.open.call(this); - this.basket = new Hedera.Basket(this.app); + const basket = new Hedera.Basket(this.app); - this.orderId = this.$.params.$.id || this.basket.orderId; - if (!this.orderId) - return this.hash.setAll({form: 'ecomerce/checkout'}); + if (this.$.params.$.id) { + this.orderId = this.$.params.$.id; + } else if (await basket.check()) { + this.orderId = basket.orderId; + } - this.$.lot.assign({id: this.orderId}); + if (this.orderId) + this.$.lot.assign({id: this.orderId}); }, activate() { this.$.items.setInfo('bi', 'myOrderRow', 'hedera'); }, + onOrderReady(form) { + if (form.row < 0) + return; + + if (form.$.method != 'PICKUP') { + Vn.Node.show(this.$.address); + Vn.Node.setText(this.$.method, _('Agency')); + } else { + Vn.Node.hide(this.$.address); + Vn.Node.setText(this.$.method, _('Warehouse')); + } + }, + onConfigureClick() { Htk.Toast.showWarning(_('RememberReconfiguringImpact')); this.hash.setAll({ diff --git a/forms/ecomerce/basket/locale/ca.yml b/forms/ecomerce/basket/locale/ca.yml index 702db20f..40308fb8 100644 --- a/forms/ecomerce/basket/locale/ca.yml +++ b/forms/ecomerce/basket/locale/ca.yml @@ -1,13 +1,16 @@ ShoppingBasket: Cistella de la compra Order: Encàrrec ShippingInformation: Dades d'enviament +DeliveryAddress: Adreça de lliurament +Delivery at: Lliurament el +Agency: Agència +Warehouse: Magatzem Delete: Borrar encàrrec GoToCatalog: Anar al catàleg ConfigureOrder: Configurar encàrrec Checkout: Tramitar encàrrec OrderNumber: N encàrec DateExit: Data d'eixida -Warehouse: Magatzem OrderTotal: Total encàrrec Amount: Quant Pack: Pack diff --git a/forms/ecomerce/basket/locale/en.yml b/forms/ecomerce/basket/locale/en.yml index e82ebf7e..4bb1a83d 100644 --- a/forms/ecomerce/basket/locale/en.yml +++ b/forms/ecomerce/basket/locale/en.yml @@ -1,13 +1,16 @@ ShoppingBasket: Shopping basket Order: Order ShippingInformation: Shipping information +DeliveryAddress: Delivery address +Delivery at: Delivery at +Agency: Agency +Warehouse: Store Delete: Delete order GoToCatalog: Go to catalog ConfigureOrder: Configure order Checkout: Checkout OrderNumber: Order number DateExit: Shipping date -Warehouse: Store OrderTotal: Total Amount: Amount Pack: Pack diff --git a/forms/ecomerce/basket/locale/es.yml b/forms/ecomerce/basket/locale/es.yml index d216da1d..43aa80b8 100644 --- a/forms/ecomerce/basket/locale/es.yml +++ b/forms/ecomerce/basket/locale/es.yml @@ -1,13 +1,16 @@ ShoppingBasket: Cesta de la compra Order: Pedido ShippingInformation: Datos de envío +DeliveryAddress: Dirección de entrega +Delivery at: Entrega el +Agency: Agencia +Warehouse: Almacén Delete: Borrar pedido GoToCatalog: Ir al catálogo ConfigureOrder: Configurar pedido Checkout: Finalizar pedido OrderNumber: Nº pedido DateExit: Fecha de salida -Warehouse: Almacén OrderTotal: Total Amount: Cantidad Pack: Pack diff --git a/forms/ecomerce/basket/locale/fr.yml b/forms/ecomerce/basket/locale/fr.yml index 74f4ad67..f4c28c9f 100644 --- a/forms/ecomerce/basket/locale/fr.yml +++ b/forms/ecomerce/basket/locale/fr.yml @@ -1,13 +1,16 @@ ShoppingBasket: Panier Order: Commande ShippingInformation: Informations sur la livraison +DeliveryAddress: Addresse de livraison +Delivery at: Livraison à +Agency: Agence +Warehouse: Entrepôt Delete: Effacer GoToCatalog: Aller au catalogue ConfigureOrder: Définissez l'ordre Checkout: Caisse OrderNumber: Numéro de commande DateExit: Date de sortie -Warehouse: Magasin OrderTotal: Total commande Amount: Quant Pack: Pack diff --git a/forms/ecomerce/basket/locale/pt.yml b/forms/ecomerce/basket/locale/pt.yml index eab4e1e5..ba71b27c 100644 --- a/forms/ecomerce/basket/locale/pt.yml +++ b/forms/ecomerce/basket/locale/pt.yml @@ -1,13 +1,16 @@ ShoppingBasket: Cesta da compra Order: Encomenda ShippingInformation: Dados de envio +DeliveryAddress: Endereço de entrega +Delivery at: Entrega na +Agency: Agência +Warehouse: Armazém Delete: Eliminar encomenda GoToCatalog: Ir ao catálogo ConfigureOrder: Configurar encomenda Checkout: Finalizar encomenda OrderNumber: Nº encomenda DateExit: Data de saída -Warehouse: Armazém OrderTotal: Total Amount: Quantidade Pack: Pack diff --git a/forms/ecomerce/basket/ui.xml b/forms/ecomerce/basket/ui.xml index 90a5ccaf..0ff8ea48 100644 --- a/forms/ecomerce/basket/ui.xml +++ b/forms/ecomerce/basket/ui.xml @@ -21,13 +21,14 @@ - + SELECT o.id, o.sent, - ag.description agency, v.code method, ad.nickname + ag.description agency, v.code method, + ad.nickname, ad.postalCode, ad.city, ad.street FROM myOrder o - JOIN vn.agencyMode ag ON ag.id = o.agencyModeFk - LEFT JOIN myAddress ad ON ad.id = o.addressFk + JOIN vn.agencyMode ag ON ag.id = o.agencyModeFk + LEFT JOIN myAddress ad ON ad.id = o.addressFk JOIN vn.deliveryMethod v ON v.id = o.deliveryMethodFk WHERE o.id = #id; @@ -37,12 +38,21 @@
#{{order.id}}
-
+
ShippingInformation
-

-

Delivery at {{Vn.Value.format(order.sent, _('%D'))}}

-

Agency {{order.agency}}

+

{{order.nickname}}

+

+ Delivery at {{Vn.Value.format(order.sent, _('%D'))}} +

+

+ Agency {{order.agency}} +

+
+
+
DeliveryAddress

{{order.nickname}}

+

{{order.street}}

+

{{order.postalCode}}, {{order.city}}

Total diff --git a/forms/ecomerce/catalog/index.js b/forms/ecomerce/catalog/index.js index 211c40d2..062424a4 100644 --- a/forms/ecomerce/catalog/index.js +++ b/forms/ecomerce/catalog/index.js @@ -7,15 +7,11 @@ const Catalog = new Class({ ,_menuShown: false ,async open() { - let isOk = true; const basket = new Hedera.Basket(this.app); - this.orderId = basket.orderId; if (!localStorage.getItem('hederaGuest')) { - if (!this.orderId) - return this.hash.setAll({form: 'ecomerce/checkout'}); - else - isOk = await basket.checkRedirect(this.orderId); + if (await basket.check()) + this.orderId = basket.orderId; } else { const resultSet = await this.conn.execQuery( 'CALL myOrder_configureForGuest(@orderId); SELECT @orderId;'); @@ -24,7 +20,8 @@ const Catalog = new Class({ this.orderId = resultSet.fetchValue(); } - if (isOk) await Hedera.Form.prototype.open.call(this); + if (this.orderId) + await Hedera.Form.prototype.open.call(this); } ,activate() { diff --git a/forms/ecomerce/catalog/ui.xml b/forms/ecomerce/catalog/ui.xml index 59bf2126..b8871eb7 100644 --- a/forms/ecomerce/catalog/ui.xml +++ b/forms/ecomerce/catalog/ui.xml @@ -94,10 +94,9 @@ - SELECT o.id, o.sent, a.description agency, m.code method + SELECT o.id, o.sent, ad.nickname FROM myOrder o - JOIN vn.agencyMode a ON a.id = o.agencyModeFk - JOIN vn.deliveryMethod m ON m.id = o.deliveryMethodFk + LEFT JOIN myAddress ad ON ad.id = o.addressFk WHERE o.id = #orderId @@ -207,11 +206,8 @@

+

{{basket.nickname}}

{{Vn.Value.format(basket.sent, '%D')}}

-

- {{_(basket.method != 'PICKUP' ? 'Agency' : 'Warehouse')}} - {{basket.agency}} -

diff --git a/forms/ecomerce/confirm/index.js b/forms/ecomerce/confirm/index.js index fc51c82c..6f09172d 100644 --- a/forms/ecomerce/confirm/index.js +++ b/forms/ecomerce/confirm/index.js @@ -7,7 +7,7 @@ export default new Class({ async open() { const basket = new Hedera.Basket(this.app); try { - await basket.check(this.hash.$.id); + await basket.checkOrder(this.hash.$.id); } catch (err) { Htk.Toast.showError(err.message); } diff --git a/forms/ecomerce/confirm/ui.xml b/forms/ecomerce/confirm/ui.xml index 1cfa35ba..e8b83b63 100644 --- a/forms/ecomerce/confirm/ui.xml +++ b/forms/ecomerce/confirm/ui.xml @@ -6,9 +6,9 @@ CALL myOrder_getTax(#id); - SELECT o.id, o.sent, o.notes, o.companyFk, - ag.description agency, v.code method, - ad.nickname, ad.postalCode, ad.city, ad.street, + SELECT o.id, o.sent, o.notes, o.companyFk, + ag.description agency, v.code method, + ad.nickname, ad.postalCode, ad.city, ad.street, t.*, c.credit, myClient_getDebt(NULL) debt FROM myOrder o JOIN vn.agencyMode ag ON ag.id = o.agencyModeFk @@ -35,8 +35,10 @@
+
#{{order.id}}
ShippingInformation
+

{{order.nickname}}

Delivery at {{Vn.Value.format(order.sent, _('%D'))}}

@@ -46,7 +48,6 @@
DeliveryAddress
-

{{order.nickname}}

{{order.street}}

{{order.postalCode}}, {{order.city}}

diff --git a/js/hedera/basket.js b/js/hedera/basket.js index 517ed125..8df2c05e 100644 --- a/js/hedera/basket.js +++ b/js/hedera/basket.js @@ -6,33 +6,51 @@ module.exports = class { if (orderId) orderId = parseInt(orderId); this.orderId = orderId; } - async check(orderId) { + async checkOrder(orderId) { const resultSet = await this.app.conn.execQuery( 'CALL myOrder_checkConfig(#id)', {id: orderId} ); resultSet.fetchValue(); } - async checkRedirect(orderId) { + async check() { + if (this.orderId) { + return await this.checkRedirect(); + } else { + this.app.hash.setAll({form: 'ecomerce/checkout'}); + return false; + } + } + async checkRedirect() { try { - await this.check(orderId); + await this.checkOrder(this.orderId); return true; } catch(err) { - Htk.Toast.showError(err.message); - this.app.hash.setAll({ - form: 'ecomerce/checkout', - id: orderId, - continue: 'catalog' - }); - return false; + if (err.exception == 'Vn.Lib.UserError') { + const dst = { + form: 'ecomerce/checkout', + continue: 'catalog' + }; + + if (err.code == 'orderNotOwnedByUser') { + this.constructor.unload(); + } else { + dst.id = this.orderId; + Htk.Toast.showError(err.message); + } + + this.app.hash.setAll(dst); + return false; + } else + throw err; } } async load(orderId) { this.loadIntoBasket(orderId); - if (!await this.checkRedirect(orderId)) return; - this.app.hash.setAll({ - form: 'ecomerce/catalog' - }); + if (await this.checkRedirect()) + this.app.hash.setAll({ + form: 'ecomerce/catalog' + }); } loadIntoBasket(orderId) { if (this.orderId != orderId) { -- 2.40.1 From e5941266ed3ee873d941d1de6d8ca7a2e0cdca59 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Thu, 23 Feb 2023 14:36:36 +0100 Subject: [PATCH 2/5] refs #5122 Version increased --- debian/changelog | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 0b1a100e..1b519ce1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -hedera-web (23.6.1) stable; urgency=low +hedera-web (23.6.2) stable; urgency=low * Initial Release. diff --git a/package.json b/package.json index c9587a5a..499d91b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hedera-web", - "version": "23.6.1", + "version": "23.6.2", "description": "Verdnatura web page", "license": "GPL-3.0", "repository": { -- 2.40.1 From 10d81281333eab9ef69a187048bd19332a2b979a Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Thu, 23 Feb 2023 16:50:49 +0100 Subject: [PATCH 3/5] refs #5122 Order check fixes --- debian/changelog | 2 +- forms/ecomerce/pending/locale/ca.yml | 7 +++++++ forms/ecomerce/pending/locale/en.yml | 7 +++++++ forms/ecomerce/pending/locale/es.yml | 2 +- forms/ecomerce/pending/locale/fr.yml | 9 ++++++++- forms/ecomerce/pending/locale/pt.yml | 9 ++++++++- js/hedera/basket.js | 13 ++++++++----- package.json | 2 +- web/json-service.php | 6 +++--- 9 files changed, 44 insertions(+), 13 deletions(-) diff --git a/debian/changelog b/debian/changelog index 1b519ce1..6f14f64e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -hedera-web (23.6.2) stable; urgency=low +hedera-web (23.6.3) stable; urgency=low * Initial Release. diff --git a/forms/ecomerce/pending/locale/ca.yml b/forms/ecomerce/pending/locale/ca.yml index dd862364..aa644fa6 100644 --- a/forms/ecomerce/pending/locale/ca.yml +++ b/forms/ecomerce/pending/locale/ca.yml @@ -1 +1,8 @@ Pending: Pendents +PendingOrders: Comandes pendents +NewOrder: Nova comanda +ViewOrder: Veure comanda +RemoveOrder: Eliminar comanda +LoadOrderIntoCart: Carregar comanda a la cistella +AreYouSureDeleteOrder: Segur que vols esborrar la comanda? +OrderLoadedIntoBasket: Comanda carregada a la cistella! diff --git a/forms/ecomerce/pending/locale/en.yml b/forms/ecomerce/pending/locale/en.yml index eeb6d5a0..06c69a17 100644 --- a/forms/ecomerce/pending/locale/en.yml +++ b/forms/ecomerce/pending/locale/en.yml @@ -1 +1,8 @@ Pending: Pending +PendingOrders: Pending orders +NewOrder: New order +ViewOrder: View order +RemoveOrder: Delete order +LoadOrderIntoCart: Load order into cart +AreYouSureDeleteOrder: Are you sure you want to delete the order? +OrderLoadedIntoBasket: Order loaded into basket! diff --git a/forms/ecomerce/pending/locale/es.yml b/forms/ecomerce/pending/locale/es.yml index 6a3cfa3c..98586191 100644 --- a/forms/ecomerce/pending/locale/es.yml +++ b/forms/ecomerce/pending/locale/es.yml @@ -5,4 +5,4 @@ ViewOrder: Ver pedido RemoveOrder: Eliminar pedido LoadOrderIntoCart: Cargar pedido en la cesta AreYouSureDeleteOrder: ¿Seguro que quieres borrar el pedido? -OrderLoadedIntoBasket: ¡Pedido cargado en la cesta! \ No newline at end of file +OrderLoadedIntoBasket: ¡Pedido cargado en la cesta! diff --git a/forms/ecomerce/pending/locale/fr.yml b/forms/ecomerce/pending/locale/fr.yml index dd862364..d9f39304 100644 --- a/forms/ecomerce/pending/locale/fr.yml +++ b/forms/ecomerce/pending/locale/fr.yml @@ -1 +1,8 @@ -Pending: Pendents +Pending: En attente +PendingOrders: Commandes en attente +NewOrder: Nouvelle commande +ViewOrder: Afficher la commande +RemoveOrder: Supprimer la commande +LoadOrderIntoCart: Charger la commande dans le panier +AreYouSureDeleteOrder: Êtes-vous sûr de vouloir supprimer la commande? +OrderLoadedIntoBasket: Commande chargée dans le panier! diff --git a/forms/ecomerce/pending/locale/pt.yml b/forms/ecomerce/pending/locale/pt.yml index e79f9482..a8021535 100644 --- a/forms/ecomerce/pending/locale/pt.yml +++ b/forms/ecomerce/pending/locale/pt.yml @@ -1 +1,8 @@ -Pending: Pendientes +Pending: Pendentes +PendingOrders: Pedidos pendentes +NewOrder: Novo pedido +ViewOrder: Ver pedido +RemoveOrder: Excluir pedido +LoadOrderIntoCart: Carrega o pedido no carrinho +AreYouSureDeleteOrder: Tem certeza de que deseja excluir o pedido? +OrderLoadedIntoBasket: Pedido carregado na cesta! diff --git a/js/hedera/basket.js b/js/hedera/basket.js index 8df2c05e..0a20fcf6 100644 --- a/js/hedera/basket.js +++ b/js/hedera/basket.js @@ -32,11 +32,14 @@ module.exports = class { continue: 'catalog' }; - if (err.code == 'orderNotOwnedByUser') { - this.constructor.unload(); - } else { - dst.id = this.orderId; - Htk.Toast.showError(err.message); + switch(err.code) { + case 'orderConfirmed': + case 'orderNotOwnedByUser': + this.constructor.unload(); + break; + default: + dst.id = this.orderId; + Htk.Toast.showError(err.message); } this.app.hash.setAll(dst); diff --git a/package.json b/package.json index 499d91b7..07914c16 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hedera-web", - "version": "23.6.2", + "version": "23.6.3", "description": "Verdnatura web page", "license": "GPL-3.0", "repository": { diff --git a/web/json-service.php b/web/json-service.php index 07cad21a..68d8e19a 100644 --- a/web/json-service.php +++ b/web/json-service.php @@ -48,13 +48,13 @@ class JsonService extends RestService { $json = new JsonException(); - if (_ENABLE_DEBUG || $errno & $eUser) + if (_ENABLE_DEBUG || $errno & $eUser) { $json->message = $message; - else + $json->code = $errno; + } else $json->message = s('Something went wrong'); if (_ENABLE_DEBUG) { - $json->code = $errno; $json->file = $file; $json->line = $line; } -- 2.40.1 From dd7185d5dd1e5d4930f8e4a643ebc4bfc49ef384 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Thu, 23 Feb 2023 17:05:19 +0100 Subject: [PATCH 4/5] refs #5122 Backend fix: Return error code for user exceptions --- debian/changelog | 2 +- package.json | 2 +- web/json-service.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 6f14f64e..67fb73e3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -hedera-web (23.6.3) stable; urgency=low +hedera-web (23.6.4) stable; urgency=low * Initial Release. diff --git a/package.json b/package.json index 07914c16..7e6484ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hedera-web", - "version": "23.6.3", + "version": "23.6.4", "description": "Verdnatura web page", "license": "GPL-3.0", "repository": { diff --git a/web/json-service.php b/web/json-service.php index 68d8e19a..b57c03cd 100644 --- a/web/json-service.php +++ b/web/json-service.php @@ -79,13 +79,13 @@ class JsonService extends RestService { if (_ENABLE_DEBUG || $e instanceof Lib\UserException) { $json->exception = get_class($e); $json->message = $e->getMessage(); + $json->code = $e->getCode(); } else { $json->exception = 'Exception'; $json->message = s('Something went wrong'); } if (_ENABLE_DEBUG) { - $json->code = $e->getCode(); $json->file = $e->getFile(); $json->line = $e->getLine(); $json->trace = $e->getTrace(); -- 2.40.1 From 9bfd42eaf8cfcbdef6aa390dca7b4a0c5922f880 Mon Sep 17 00:00:00 2001 From: Juan Ferrer Toribio Date: Thu, 23 Feb 2023 20:19:56 +0100 Subject: [PATCH 5/5] refs #5122 Navigation improved, date shows year, fixes --- debian/changelog | 2 +- forms/ecomerce/basket/index.js | 30 ++++++++++++++------- forms/ecomerce/basket/ui.xml | 7 +++-- forms/ecomerce/catalog/index.js | 2 +- forms/ecomerce/checkout/index.js | 14 +++++++--- js/hedera/basket.js | 46 +++++++++++++++++++------------- js/hedera/locale/ca.yml | 2 ++ js/hedera/locale/en.yml | 2 ++ js/hedera/locale/es.yml | 2 ++ js/hedera/locale/fr.yml | 2 ++ js/hedera/locale/pt.yml | 2 ++ js/vn/date.js | 4 +-- js/vn/locale/ca.yml | 2 +- js/vn/locale/en.yml | 2 +- js/vn/locale/es.yml | 2 +- js/vn/locale/fr.yml | 2 +- js/vn/locale/mn.yml | 2 +- js/vn/locale/pt.yml | 2 +- package.json | 2 +- 19 files changed, 81 insertions(+), 48 deletions(-) diff --git a/debian/changelog b/debian/changelog index 67fb73e3..ae27ee23 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -hedera-web (23.6.4) stable; urgency=low +hedera-web (23.6.5) stable; urgency=low * Initial Release. diff --git a/forms/ecomerce/basket/index.js b/forms/ecomerce/basket/index.js index 961b84a5..11c85586 100644 --- a/forms/ecomerce/basket/index.js +++ b/forms/ecomerce/basket/index.js @@ -5,21 +5,31 @@ export default new Class({ Template: require('./ui.xml'), async open() { - await Hedera.Form.prototype.open.call(this); - const basket = new Hedera.Basket(this.app); - - if (this.$.params.$.id) { - this.orderId = this.$.params.$.id; - } else if (await basket.check()) { - this.orderId = basket.orderId; + await this.loadOrder(); + if (this.orderId) { + await Hedera.Form.prototype.open.call(this); + this.$.lot.assign({id: this.orderId}); } + }, + activate() { + this.$.items.setInfo('bi', 'myOrderRow', 'hedera'); + }, + + async onHashChange() { + if (!this.isOpen) return; + await this.loadOrder(); if (this.orderId) this.$.lot.assign({id: this.orderId}); }, - - activate() { - this.$.items.setInfo('bi', 'myOrderRow', 'hedera'); + + async loadOrder() { + const basket = new Hedera.Basket(this.app); + if (this.hash.$.id) { + this.orderId = this.hash.$.id; + } else if (await basket.check()) { + this.orderId = basket.orderId; + } }, onOrderReady(form) { diff --git a/forms/ecomerce/basket/ui.xml b/forms/ecomerce/basket/ui.xml index 0ff8ea48..04b7af32 100644 --- a/forms/ecomerce/basket/ui.xml +++ b/forms/ecomerce/basket/ui.xml @@ -1,7 +1,4 @@ - - -

{{_(params.$.id ? 'Order' : 'ShoppingBasket')}}

@@ -20,6 +17,9 @@ on-click="this.onConfirmClick()"/>
+ + + @@ -50,7 +50,6 @@
DeliveryAddress
-

{{order.nickname}}

{{order.street}}

{{order.postalCode}}, {{order.city}}

diff --git a/forms/ecomerce/catalog/index.js b/forms/ecomerce/catalog/index.js index 062424a4..80e85d5b 100644 --- a/forms/ecomerce/catalog/index.js +++ b/forms/ecomerce/catalog/index.js @@ -10,7 +10,7 @@ const Catalog = new Class({ const basket = new Hedera.Basket(this.app); if (!localStorage.getItem('hederaGuest')) { - if (await basket.check()) + if (await basket.check('catalog')) this.orderId = basket.orderId; } else { const resultSet = await this.conn.execQuery( diff --git a/forms/ecomerce/checkout/index.js b/forms/ecomerce/checkout/index.js index 24bb2f26..d556c66d 100644 --- a/forms/ecomerce/checkout/index.js +++ b/forms/ecomerce/checkout/index.js @@ -81,21 +81,27 @@ export default new Class({ if (!resultSet.fetchResult()) return; + let redirect; + const basket = new Hedera.Basket(this.app); + if (id) { Htk.Toast.showMessage(_('OrderUpdated')); switch(this.hash.$.continue) { case 'catalog': - this.hash.setAll({form: 'ecomerce/catalog'}); + redirect = {form: 'ecomerce/catalog'}; break; default: - this.hash.setAll({form: 'ecomerce/basket', id}); + redirect = {form: 'ecomerce/basket'}; + if (id !== basket.orderId) + redirect.id = id; } } else { - const basket = new Hedera.Basket(this.app); basket.loadIntoBasket(resultSet.fetchValue()); - this.hash.setAll({form: 'ecomerce/catalog'}); + redirect = {form: 'ecomerce/catalog'}; } + + this.hash.setAll(redirect); }, onCancelClick() { diff --git a/js/hedera/basket.js b/js/hedera/basket.js index 0a20fcf6..b9a9a0b4 100644 --- a/js/hedera/basket.js +++ b/js/hedera/basket.js @@ -13,44 +13,52 @@ module.exports = class { ); resultSet.fetchValue(); } - async check() { + async check(checkoutContinue) { if (this.orderId) { - return await this.checkRedirect(); + return await this.checkRedirect(checkoutContinue); } else { - this.app.hash.setAll({form: 'ecomerce/checkout'}); + this.redirect(); return false; } } - async checkRedirect() { + async checkRedirect(checkoutContinue) { try { await this.checkOrder(this.orderId); return true; } catch(err) { if (err.exception == 'Vn.Lib.UserError') { - const dst = { - form: 'ecomerce/checkout', - continue: 'catalog' - }; - switch(err.code) { - case 'orderConfirmed': - case 'orderNotOwnedByUser': - this.constructor.unload(); - break; - default: - dst.id = this.orderId; - Htk.Toast.showError(err.message); + case 'orderConfirmed': + case 'orderNotOwnedByUser': + this.constructor.unload(); + await this.redirect(); + break; + default: + this.app.hash.setAll({ + form: 'ecomerce/checkout', + id: this.orderId, + continue: checkoutContinue + }); + Htk.Toast.showError(err.message); } - - this.app.hash.setAll(dst); return false; } else throw err; } } + async redirect() { + const resultSet = await this.app.conn.execQuery( + 'SELECT COUNT(*) > 0 FROM myOrder'); + if (resultSet.fetchValue()) { + this.app.hash.setAll({form: 'ecomerce/pending'}); + Htk.Toast.showMessage(_('Load an order')); + } else { + this.app.hash.setAll({form: 'ecomerce/checkout'}); + } + } async load(orderId) { this.loadIntoBasket(orderId); - if (await this.checkRedirect()) + if (await this.checkRedirect('catalog')) this.app.hash.setAll({ form: 'ecomerce/catalog' }); diff --git a/js/hedera/locale/ca.yml b/js/hedera/locale/ca.yml index 326e90ec..5ccdff26 100644 --- a/js/hedera/locale/ca.yml +++ b/js/hedera/locale/ca.yml @@ -63,3 +63,5 @@ Agencies: Agències Configuration: Configuració Account: Compte Addresses: Adreces + +Load an order: Si us plau carrega una comanda pendent a la cistella o en comença una de nova diff --git a/js/hedera/locale/en.yml b/js/hedera/locale/en.yml index f6add13c..17e10f8a 100644 --- a/js/hedera/locale/en.yml +++ b/js/hedera/locale/en.yml @@ -59,3 +59,5 @@ Agencies: Agencies Configuration: Configuration Account: Account Addresses: Addresses + +Load an order: Please load a pending order to the cart or start a new one diff --git a/js/hedera/locale/es.yml b/js/hedera/locale/es.yml index 9c6a656a..4fcf5573 100644 --- a/js/hedera/locale/es.yml +++ b/js/hedera/locale/es.yml @@ -63,3 +63,5 @@ Agencies: Agencias Configuration: Configuración Account: Cuenta Addresses: Direcciones + +Load an order: Por favor carga un pedido pendiente en la cesta o empieza uno nuevo diff --git a/js/hedera/locale/fr.yml b/js/hedera/locale/fr.yml index 37811b10..70c5d47b 100644 --- a/js/hedera/locale/fr.yml +++ b/js/hedera/locale/fr.yml @@ -63,3 +63,5 @@ Agencies: Agences Configuration: Configuration Account: Compte Addresses: Adresses + +Load an order: Veuillez télécharger une commande en attente dans le panier ou en démarrer une nouvelle diff --git a/js/hedera/locale/pt.yml b/js/hedera/locale/pt.yml index f8ed38db..8e3cfe61 100644 --- a/js/hedera/locale/pt.yml +++ b/js/hedera/locale/pt.yml @@ -61,3 +61,5 @@ Agencies: Agências Configuration: Configuração Account: Conta Addresses: Moradas + +Load an order: Carregue um pedido pendente no carrinho ou inicie um novo diff --git a/js/vn/date.js b/js/vn/date.js index 1a0c26b6..470315fb 100644 --- a/js/vn/date.js +++ b/js/vn/date.js @@ -55,7 +55,7 @@ module.exports = ,'Dec' ] - ,tokenD: '%A, %B %e' + ,tokenD: '%A, %B %e %Y' ,regexp: new RegExp('%[a-zA-Z]', 'g') @@ -101,7 +101,7 @@ module.exports = // Year with 4 digits case 'Y': return d.getFullYear(); - // Complete date without year + // Complete date case 'D': return _(this.tokenD).replace(this.regexp, this.regexpFunc.bind(this, d)); } diff --git a/js/vn/locale/ca.yml b/js/vn/locale/ca.yml index 8af6588c..868d0bd3 100644 --- a/js/vn/locale/ca.yml +++ b/js/vn/locale/ca.yml @@ -36,7 +36,7 @@ Sep: Set Oct: Oct Nov: Nov Dec: Des -'%A, %B %e': '%A, %e de %B' +'%A, %B %e %Y': '%A, %e de %B de %Y' Something went wrong: Alguna cosa ha anat malament 'The server does not respond, please check your Internet connection': 'El servidor no respon, si us plau comprova la teva connexió a Internet' Accept: Acceptar diff --git a/js/vn/locale/en.yml b/js/vn/locale/en.yml index 4ca5bcfa..c25d9d53 100644 --- a/js/vn/locale/en.yml +++ b/js/vn/locale/en.yml @@ -36,6 +36,6 @@ Sep: Sep Oct: Oct Nov: Nov Dec: Dic -'%A, %B %e': '%A, %B %e' +'%A, %B %e %Y': '%A, %B %e %Y' Something went wrong: Something went wrong 'The server does not respond, please check your Internet connection': 'The server does not respond, please check you Internet connection' diff --git a/js/vn/locale/es.yml b/js/vn/locale/es.yml index d9663c12..78a87817 100644 --- a/js/vn/locale/es.yml +++ b/js/vn/locale/es.yml @@ -36,7 +36,7 @@ Sep: Sep Oct: Oct Nov: Nov Dec: Dic -'%A, %B %e': '%A, %e de %B' +'%A, %B %e %Y': '%A, %e de %B de %Y' Something went wrong: Algo salió mal 'The server does not respond, please check your Internet connection': 'El servidor no responde, por favor comprueba tu conexión a Internet' Accept: Aceptar diff --git a/js/vn/locale/fr.yml b/js/vn/locale/fr.yml index a2789597..7eec4373 100644 --- a/js/vn/locale/fr.yml +++ b/js/vn/locale/fr.yml @@ -36,7 +36,7 @@ Sep: Sep Oct: Oct Nov: Nov Dec: Déc -'%A, %B %e': '%A, %B %e' +'%A, %B %e %Y': '%A, %B %e %Y' Something went wrong: Quelque-chose s'est mal passé 'The server does not respond, please check your Internet connection': 'Le serveur ne répond pas, s''il vous plaît vérifier votre connexion Internet' Accept: Accepter diff --git a/js/vn/locale/mn.yml b/js/vn/locale/mn.yml index 97eb4d32..5c1e2121 100644 --- a/js/vn/locale/mn.yml +++ b/js/vn/locale/mn.yml @@ -36,6 +36,6 @@ Sep: Есд Oct: Ара Nov: Арв Dec: Арв -'%A, %B %e': '%A, %B %e' +'%A, %B %e %Y': '%A, %B %e %Y' Something went wrong: Something went wrong 'The server does not respond, please check your Internet connection': 'The server does not respond, please check you Internet connection' diff --git a/js/vn/locale/pt.yml b/js/vn/locale/pt.yml index db6c2892..f8e4e4f4 100644 --- a/js/vn/locale/pt.yml +++ b/js/vn/locale/pt.yml @@ -36,7 +36,7 @@ Sep: Set Oct: Out Nov: Nov Dec: Dez -'%A, %B %e': '%A, %B %e' +'%A, %B %e %Y': '%A, %B %e %Y' Something went wrong: Algo deu errado 'The server does not respond, please check your Internet connection': 'O servidor não responde, por favor, verifique sua conexão com a Internet' Accept: Aceitar diff --git a/package.json b/package.json index 7e6484ab..37e1247e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hedera-web", - "version": "23.6.4", + "version": "23.6.5", "description": "Verdnatura web page", "license": "GPL-3.0", "repository": { -- 2.40.1