From 2360b6907f77b80e440de20da229d0ae92c8fc27 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 21 Nov 2011 19:11:41 +0530 Subject: [PATCH] [imp] nivified payment view and corrected previous bug bzr revid: nicolas.vanhoren@openerp.com-20111121134141-5f7e4edjxdevubju --- addons/point_of_sale/static/src/js/pos.js | 90 +++++++++++------------ 1 file changed, 42 insertions(+), 48 deletions(-) diff --git a/addons/point_of_sale/static/src/js/pos.js b/addons/point_of_sale/static/src/js/pos.js index 8c40f653011..9a64172f897 100644 --- a/addons/point_of_sale/static/src/js/pos.js +++ b/addons/point_of_sale/static/src/js/pos.js @@ -164,7 +164,7 @@ openerp.point_of_sale = function(db) { var App, CashRegister, CashRegisterCollection, Category, CategoryCollection, CategoryWidget, NumpadState, NumpadWidget, Order, OrderButtonView, OrderCollection, OrderWidget, Orderline, - OrderlineCollection, OrderlineWidget, PaymentButtonWidget, PaymentView, Paymentline, + OrderlineCollection, OrderlineWidget, PaymentButtonWidget, PaymentWidget, Paymentline, PaymentlineCollection, PaymentlineWidget, PaypadWidget, Product, ProductCollection, ProductListWidget, ProductWidget, ReceiptLineView, ReceiptView, Shop, ShopView, StepsWidget; @@ -820,7 +820,6 @@ openerp.point_of_sale = function(db) { } }, render_element: function() { - debugger; this.$element.html(this.template_fct({ name: (this.model.get('journal_id'))[1], amount: this.model.get('amount') @@ -828,81 +827,75 @@ openerp.point_of_sale = function(db) { return this; }, }); - PaymentView = (function() { - __extends(PaymentView, Backbone.View); - function PaymentView() { - PaymentView.__super__.constructor.apply(this, arguments); - } - - PaymentView.prototype.initialize = function(options) { + PaymentWidget = db.web.Widget.extend({ + init: function(parent, element_id, options) { + this._super(parent, element_id); + this.model = options.model; this.shop = options.shop; this.shop.bind('change:selectedOrder', this.changeSelectedOrder, this); this.bindPaymentLineEvents(); - return this.bindOrderLineEvents(); - }; - PaymentView.prototype.paymentLineList = function() { - return $(this.el).find('#paymentlines'); - }; - PaymentView.prototype.events = { - 'click button#validate-order': 'validateCurrentOrder' - }; - PaymentView.prototype.validateCurrentOrder = function() { + this.bindOrderLineEvents(); + }, + paymentLineList: function() { + return this.$element.find('#paymentlines'); + }, + start: function() { + $('button#validate-order', this.$element).click(_.bind(this.validateCurrentOrder, this)); + }, + validateCurrentOrder: function() { var callback, currentOrder; currentOrder = this.shop.get('selectedOrder'); - callback = __bind( function() { + callback = __bind(function() { return currentOrder.set({ validated: true }); }, this); - return pos.push('pos.order', currentOrder.exportAsJSON(), callback); - }; - PaymentView.prototype.bindPaymentLineEvents = function() { + pos.push('pos.order', currentOrder.exportAsJSON(), callback); + }, + bindPaymentLineEvents: function() { this.currentPaymentLines = (this.shop.get('selectedOrder')).get('paymentLines'); this.currentPaymentLines.bind('add', this.addPaymentLine, this); - this.currentPaymentLines.bind('change', this.render, this); - this.currentPaymentLines.bind('remove', this.render, this); - return this.currentPaymentLines.bind('all', this.updatePaymentSummary, this); - }; - PaymentView.prototype.bindOrderLineEvents = function() { + this.currentPaymentLines.bind('all', this.updatePaymentSummary, this); + }, + bindOrderLineEvents: function() { this.currentOrderLines = (this.shop.get('selectedOrder')).get('orderLines'); - return this.currentOrderLines.bind('all', this.updatePaymentSummary, this); - }; - PaymentView.prototype.changeSelectedOrder = function() { + this.currentOrderLines.bind('all', this.updatePaymentSummary, this); + }, + changeSelectedOrder: function() { this.currentPaymentLines.unbind(); this.bindPaymentLineEvents(); this.currentOrderLines.unbind(); this.bindOrderLineEvents(); - return this.render(); - }; - PaymentView.prototype.addPaymentLine = function(newPaymentLine) { + this.render_element(); + }, + addPaymentLine: function(newPaymentLine) { var x = new PaymentlineWidget(null, null, { model: newPaymentLine }); x.appendTo(this.paymentLineList()); - }; - PaymentView.prototype.render = function() { + }, + render_element: function() { this.paymentLineList().empty(); this.currentPaymentLines.each(__bind( function(paymentLine) { var x = new PaymentlineWidget(null, null, { model: paymentLine }); - return this.paymentLineList().append(x); + this.paymentLineList().append(x); }, this)); - return this.updatePaymentSummary(); - }; - PaymentView.prototype.updatePaymentSummary = function() { + this.updatePaymentSummary(); + }, + updatePaymentSummary: function() { var currentOrder, dueTotal, paidTotal, remaining, remainingAmount; currentOrder = this.shop.get('selectedOrder'); paidTotal = currentOrder.getPaidTotal(); dueTotal = currentOrder.getTotal(); - $(this.el).find('#payment-due-total').html(dueTotal.toFixed(2)); - $(this.el).find('#payment-paid-total').html(paidTotal.toFixed(2)); + this.$element.find('#payment-due-total').html(dueTotal.toFixed(2)); + this.$element.find('#payment-paid-total').html(paidTotal.toFixed(2)); remainingAmount = dueTotal - paidTotal; remaining = remainingAmount > 0 ? 0 : (-remainingAmount).toFixed(2); - return $('#payment-remaining').html(remaining); - }; - return PaymentView; - })(); + $('#payment-remaining').html(remaining); + }, + }); /* "Receipt" step. */ @@ -1062,10 +1055,11 @@ openerp.point_of_sale = function(db) { numpadState: this.numpadState }); this.orderView.start(); - this.paymentView = new PaymentView({ - shop: this.shop, - el: $('#payment-screen') + this.paymentView = new PaymentWidget(null, 'payment-screen', { + shop: this.shop }); + this.paymentView.render_element(); + this.paymentView.start(); this.receiptView = new ReceiptView({ shop: this.shop, el: $('#receipt-screen')