diff --git a/package/usr/share/hedera-web/forms/ecomerce/basket/basket.js b/package/usr/share/hedera-web/forms/ecomerce/basket/basket.js index 5c976882..c131c3a3 100755 --- a/package/usr/share/hedera-web/forms/ecomerce/basket/basket.js +++ b/package/usr/share/hedera-web/forms/ecomerce/basket/basket.js @@ -13,14 +13,12 @@ Vn.Basket = new Class { var res = resultSet.fetchResult (); - if (!res.next ()) - return; - + if (res.next ()) switch (res.get ('stat')) { case 'BAD_CONFIG': case 'NOT_EXISTS': - this.onConfigureClick (); + this.hash.set ({'form': 'ecomerce/checkout'}); break; case 'UPDATED': (new Htk.Toast ()).showWarning (_('OrderItemsUpdated')); diff --git a/package/usr/share/hedera-web/forms/ecomerce/basket/ui.xml b/package/usr/share/hedera-web/forms/ecomerce/basket/ui.xml index e531dba8..336216c9 100755 --- a/package/usr/share/hedera-web/forms/ecomerce/basket/ui.xml +++ b/package/usr/share/hedera-web/forms/ecomerce/basket/ui.xml @@ -3,14 +3,13 @@ - SELECT id, date_send, agency_id, wh_id - FROM order_view WHERE id = #id + SELECT id, date_send, agency_id + FROM basket - @@ -33,14 +32,13 @@
- CALL bionic_by_order (@calc); + CALL bionic_from_basket (@calc); SELECT m.id, m.amount, t.available, a.Article, a.Categoria, - a.Medida, a.Tallos, a.Color, o.Abreviatura, m.price2 price, a.Foto - FROM order_row_view m + a.Medida, a.Tallos, a.Color, o.Abreviatura, m.price price, a.Foto + FROM basket_item m INNER JOIN vn2008.Articles a ON a.Id_Article = m.item_id LEFT JOIN vn2008.Origen o ON a.id_origen = o.id - LEFT JOIN cache.bionic t ON m.warehouse_id = t.warehouse_id AND m.item_id = t.item_id AND t.calc_id = @calc - WHERE m.order_id = #order; + LEFT JOIN cache.bionic t ON m.warehouse_id = t.warehouse_id AND m.item_id = t.item_id AND t.calc_id = @calc; diff --git a/package/usr/share/hedera-web/forms/ecomerce/catalog/catalog.js b/package/usr/share/hedera-web/forms/ecomerce/catalog/catalog.js index 79cce795..8e8096e1 100755 --- a/package/usr/share/hedera-web/forms/ecomerce/catalog/catalog.js +++ b/package/usr/share/hedera-web/forms/ecomerce/catalog/catalog.js @@ -182,59 +182,56 @@ Vn.Catalog = new Class ,onAddLotClick: function (column, value, row, button) { var model = this.$('item-lots'); - var grouping = model.get (row, 'grouping'); var warehouse = model.get (row, 'warehouse_id'); - var rate = model.get (row, 'rate'); - - for (var i = 0; i < this.items.length; i++) - { - var t = this.items[i]; - if (t.warehouse == warehouse && t.rate == rate) - break; - } - - if (i >= this.items.length) - this.items.push ({ - warehouse: warehouse, - rate: rate, - amount: grouping - }); - else - t.amount += grouping; - this.$('amount').value += grouping; + var lotAmount = this.items[warehouse]; + + if (lotAmount === undefined) + lotAmount = 0; + + lotAmount += grouping; + + if (lotAmount <= model.get (row, 'available')) + { + this.items[warehouse] = lotAmount; + this.$('amount').value += grouping; + } + else + (new Htk.Toast ()).showError (_('NoMoreAmountAvailable')); } ,onEraseClick: function () { this.$('amount').value = 0; - this.items = []; + this.items = {}; } ,onConfirmClick: function () { - if (this.items.length > 0) - { - var sql = ''; - var batch = new Sql.Batch (); - var query = new Sql.String ({query: 'CALL order_row_new (#warehouse, #item, #rate, #amount);'}); - - for (var i = 0; i < this.items.length; i++) - { - var t = this.items[i]; - batch.addValue ('warehouse', t.warehouse); - batch.addValue ('item', this.itemId); - batch.addValue ('rate', t.rate); - batch.addValue ('amount', t.amount); - sql += query.render (batch); - } + var sql = ''; + var batch = new Sql.Batch (); + var query = new Sql.String ({query: 'CALL basket_item_add (#warehouse, #item, #amount);'}); - this.conn.execQuery (sql); + for (var warehouse in this.items) + { + batch.addValue ('warehouse', warehouse); + batch.addValue ('item', this.itemId); + batch.addValue ('amount', this.items[warehouse]); + sql += query.render (batch); } + + if (sql != '') + this.conn.execQuery (sql); this.popup.hide (); } + + ,onStatusChange: function (model) + { + if (this.popup) + this.popup.reset (); + } }); Htk.Realm = new Class diff --git a/package/usr/share/hedera-web/forms/ecomerce/catalog/ui.xml b/package/usr/share/hedera-web/forms/ecomerce/catalog/ui.xml index 91d12cf8..0568a6ae 100755 --- a/package/usr/share/hedera-web/forms/ecomerce/catalog/ui.xml +++ b/package/usr/share/hedera-web/forms/ecomerce/catalog/ui.xml @@ -19,27 +19,31 @@ - CALL bionic_by_type (@calc, #type); + CALL bionic_from_type (@calc, #type); SELECT t.item_id, SUM(t.available) available, MIN(t.price) price, a.Foto, a.Article, a.Categoria, a.Medida, a.Tallos, a.Color, o.Abreviatura FROM cache.bionic t - JOIN vn2008.Articles a ON a.Id_Article = t.item_id - LEFT JOIN vn2008.Origen o ON a.id_origen = o.id - WHERE t.calc_id = @calc AND t.available > 0 - GROUP BY item_id - ORDER BY a.Article, a.Medida - LIMIT 400; + JOIN vn2008.Articles a ON a.Id_Article = t.item_id + LEFT JOIN vn2008.Origen o ON a.id_origen = o.id + WHERE t.calc_id = @calc AND t.available > 0 + GROUP BY item_id + ORDER BY a.Article, a.Medida + LIMIT 400; - - CALL bionic_by_type (@calc, #type); - SELECT warehouse_id, items, grouping, price, rate - FROM cache.bionic_lot - WHERE calc_id = @calc - AND item_id = #item - ORDER BY warehouse_id, grouping; + + CALL bionic_from_type (@calc, #type); + SELECT l.warehouse_id, l.items, l.grouping, l.price, l.rate, b.available + FROM cache.bionic b + JOIN cache.bionic_lot l + ON l.warehouse_id = b.warehouse_id + AND l.item_id = b.item_id + AND l.calc_id = @calc + WHERE b.calc_id = @calc + AND b.item_id = #item + ORDER BY warehouse_id, grouping; diff --git a/package/usr/share/hedera-web/forms/ecomerce/checkout/ui.xml b/package/usr/share/hedera-web/forms/ecomerce/checkout/ui.xml index 7c92a833..a0f000cd 100755 --- a/package/usr/share/hedera-web/forms/ecomerce/checkout/ui.xml +++ b/package/usr/share/hedera-web/forms/ecomerce/checkout/ui.xml @@ -10,26 +10,25 @@ SELECT delivery_method, agency_id, address_id - FROM order_defaults_view + FROM basket_defaults SELECT v.code delivery_method, o.date_send, o.agency_id, o.address_id - FROM order_view o - JOIN vn2008.Vistas v ON o.delivery_method_id = v.vista_id - LIMIT 1 + FROM basket o + JOIN vn2008.Vistas v ON o.delivery_method_id = v.vista_id - CALL agency_list_by_date (#date, #address); + CALL agency_list_from_date (#date, #address); SELECT a.Id_Agencia, a.description FROM t_agency t - JOIN vn2008.Agencias a ON a.Id_Agencia = t.agency_id - JOIN vn2008.Vistas v ON a.Vista = v.vista_id - WHERE a.web != FALSE + JOIN vn2008.Agencias a ON a.Id_Agencia = t.agency_id + JOIN vn2008.Vistas v ON a.Vista = v.vista_id + WHERE a.web != FALSE AND v.code = 'AGENCY' - ORDER BY a.description; + ORDER BY a.description; DROP TEMPORARY TABLE t_agency; @@ -37,14 +36,14 @@ - CALL agency_list_by_date (#date, NULL); + CALL agency_list_from_date (#date, NULL); SELECT a.Id_Agencia, SUBSTR(a.description, 5) description FROM t_agency t - JOIN vn2008.Agencias a ON a.Id_Agencia = t.agency_id - JOIN vn2008.Vistas v ON a.Vista = v.vista_id - WHERE a.web != FALSE + JOIN vn2008.Agencias a ON a.Id_Agencia = t.agency_id + JOIN vn2008.Vistas v ON a.Vista = v.vista_id + WHERE a.web != FALSE AND v.code = 'PICKUP' - ORDER BY a.description; + ORDER BY a.description; DROP TEMPORARY TABLE t_agency; diff --git a/package/usr/share/hedera-web/forms/ecomerce/confirm/ui.xml b/package/usr/share/hedera-web/forms/ecomerce/confirm/ui.xml index f2362404..9cf71e0c 100755 --- a/package/usr/share/hedera-web/forms/ecomerce/confirm/ui.xml +++ b/package/usr/share/hedera-web/forms/ecomerce/confirm/ui.xml @@ -5,15 +5,14 @@ - SELECT o.id, o.date_send, o.note, o.company_id, - ag.description agency, v.code method, c.credit, - ad.consignee, ad.zip_code, ad.city, ad.name address - FROM order_view o - JOIN vn2008.Agencias ag ON ag.Id_Agencia = o.agency_id - LEFT JOIN address_view ad ON ad.id = o.address_id - JOIN vn2008.Vistas v ON v.vista_id = o.delivery_method_id - JOIN customer_view c - WHERE o.id = #order + SELECT o.id, o.date_send, o.note, + ag.description agency, v.code method, c.credit, + ad.consignee, ad.zip_code, ad.city, ad.name address + FROM basket o + JOIN vn2008.Agencias ag ON ag.Id_Agencia = o.agency_id + LEFT JOIN address_view ad ON ad.id = o.address_id + JOIN vn2008.Vistas v ON v.vista_id = o.delivery_method_id + JOIN customer_view c @@ -21,7 +20,7 @@ - CALL order_get_vat (#order); + CALL basket_get_vat (); SELECT IFNULL(SUM(tax_base), 0) tax_base, IFNULL(SUM(vat + surcharge), 0) vat @@ -33,8 +32,8 @@ - CALL order_confirm_bionic (#order); - SELECT customer_get_debt() debt; + CALL basket_confirm (); + SELECT customer_get_debt(); diff --git a/package/usr/share/hedera-web/global/style.css b/package/usr/share/hedera-web/global/style.css index 2f3a26dd..c5d19583 100755 --- a/package/usr/share/hedera-web/global/style.css +++ b/package/usr/share/hedera-web/global/style.css @@ -573,8 +573,8 @@ img.icon .htk-calendar div.enabled:hover { cursor: pointer; - background-color: #DDD; - color: #555; + background-color: #008678; + color: white; } /* Date chooser */ diff --git a/package/usr/share/hedera-web/js/db/model.js b/package/usr/share/hedera-web/js/db/model.js index 863f6525..e0698e92 100755 --- a/package/usr/share/hedera-web/js/db/model.js +++ b/package/usr/share/hedera-web/js/db/model.js @@ -793,7 +793,7 @@ Db.Model.implement for (var i = 0; i < ops.length; i++) this.operationsMap[ops[i].row.index] = ops[i]; - + return; } @@ -1091,6 +1091,7 @@ Db.Model.implement { this._status = status; this.signalEmit ('status-changed', status); + this.signalEmit ('status-changed-after', status); } ,_createTarget: function (tableIndex) diff --git a/package/usr/share/hedera-web/js/htk/field/image.js b/package/usr/share/hedera-web/js/htk/field/image.js index e356184c..f7feb798 100755 --- a/package/usr/share/hedera-web/js/htk/field/image.js +++ b/package/usr/share/hedera-web/js/htk/field/image.js @@ -45,7 +45,6 @@ Htk.Image = new Class ,render: function (force) { - console.log (this._value); if (this._value) { var url = ''; diff --git a/package/usr/share/hedera-web/js/htk/popup.js b/package/usr/share/hedera-web/js/htk/popup.js index e6f27b65..a7983c65 100755 --- a/package/usr/share/hedera-web/js/htk/popup.js +++ b/package/usr/share/hedera-web/js/htk/popup.js @@ -36,11 +36,14 @@ Htk.Popup = new Class document.addEventListener ('mousedown', this.hideHandler); this.parent = parent; - this.setPosition (); + this.reset (); } - ,setPosition: function () + ,reset: function () { + if (!this.parent) + return; + var spacing = 5; var rect = this.parent.getBoundingClientRect (); var left = rect.left; diff --git a/package/usr/share/hedera-web/locale/es/forms/ecomerce/catalog.json b/package/usr/share/hedera-web/locale/es/forms/ecomerce/catalog.json index a3f31d1c..10781100 100755 --- a/package/usr/share/hedera-web/locale/es/forms/ecomerce/catalog.json +++ b/package/usr/share/hedera-web/locale/es/forms/ecomerce/catalog.json @@ -6,6 +6,7 @@ ,"SelectSubtype": "Por favor, seleccione el subtipo en el menú de la derecha" ,"ArticleNotFound": "Artículo no encontrado" ,"ArticleNotAvailable": "Artículo no disponible" + ,"NoMoreAmountAvailable": "No hay mas cantidad disponible" ,"StartOrder": "Empezar pedido" ,"ShoppingBasket": "Cesta de la compra" diff --git a/package/usr/share/php/vn/rest/service.php b/package/usr/share/php/vn/rest/service.php index c8bbe5df..76dcaa06 100755 --- a/package/usr/share/php/vn/rest/service.php +++ b/package/usr/share/php/vn/rest/service.php @@ -53,9 +53,21 @@ class Service self::sendReply (); } - static function errorHandler ($code, $message, $file, $line, $context) + static function errorHandler ($errno, $message, $file, $line, $context) { - self::setError ('PHP', 'error', "$file:$line:$message"); + switch ($errno) + { + case E_ERROR: + case E_PARSE: + case E_CORE_ERROR: + case E_USER_ERROR: + case E_COMPILE_ERROR: + self::setError ('PHP', $errno, "$file:$line:$message"); + break; + default: + self::addWarning ('PHP', $errno, "$file:$line:$message"); + } + return TRUE; }