[FIX] point_of_sale: starting to revert cashregister removal

bzr revid: fva@openerp.com-20120521091442-m7nizf0dv60ehy9k
This commit is contained in:
Frédéric van der Essen 2012-05-21 11:14:42 +02:00
parent 313496382a
commit 959c3a82ac
3 changed files with 33 additions and 34 deletions

View File

@ -86,6 +86,15 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
return self.set({'product_list': result});
});
var bank_def = fetch(
'account.bank.statement',
['account_id','currency','journal_id','state','name'],
[['state','=','open'], ['user_id', '=', this.session.uid]]
).then(function(result){
console.log('bank_statements:',result);
return self.set({'bank_statements':result});
});
var session_def = fetch(
'pos.session',
['id', 'journal_ids','name','config_id','start_at','stop_at'],
@ -97,15 +106,6 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
self.set({'pos_session': pos_session});
var journal_def = fetch(
'account.journal',
['name'],
[['id', 'in', pos_session['journal_ids']]]
).then(function(inner_result) {
console.log('account_journals:',inner_result);
return self.set({'account_journals' : inner_result});
});
var pos_config_def = fetch(
'pos.config',
['name','journal_ids','shop_id','journal_id',
@ -117,7 +117,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
console.log('pos_config:',result[0]);
return self.set({'pos_config': result[0]});
});
return $.when(journal_def, pos_config_def);
return pos_config_def;
}else{
return self;
}
@ -132,8 +132,10 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
$.when(cat_def, prod_def, session_def, tax_def, this.get_app_data(), this.flush())
.pipe(_.bind(this.build_tree, this))
.pipe(function(){
self.set({'accountJournals' : new module.AccountJournalCollection(self.get('account_journals'))});
console.log('accountJournals:',self.get('accountJournals'));
self.set({'cashRegisters' : new module.CashRegisterCollection(self.get('bank_statements'))});
console.log('cashRegisters:',self.get('cashRegisters'));
//self.set({'accountJournals' : new module.AccountJournalCollection(self.get('account_journals'))});
//console.log('accountJournals:',self.get('accountJournals'));
self.ready.resolve();
});
@ -277,14 +279,14 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
return _results;
}
});
/*
module.AccountJournal = Backbone.Model.extend({
});
module.AccountJournalCollection = Backbone.Collection.extend({
model: module.AccountJournal,
});
*/
module.CashRegister = Backbone.Model.extend({
});
@ -419,11 +421,9 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
Backbone.Model.prototype.initialize.apply(this, arguments);
},
getAmount: function(){
// FIXME
return 0.0; //this.get('amount');
return this.get('amount');
},
exportAsJSON: function(){
// FIXME
return {
name: instance.web.datetime_to_str(new Date()),
statement_id: this.get('id'),
@ -461,7 +461,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
},
validatedChanged: function() {
if (this.get("validated") && !this.previous("validated")) {
this.pos.screen_selector.set_current_screen('receipt');
this.pos_widget.screen_selector.set_current_screen('receipt');
//this.set({'screen': 'receipt'});
}
},
@ -490,9 +490,9 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
}, this);
}
},
addPaymentLine: function(accountJournal) {
addPaymentLine: function(cashRegister) {
var newPaymentline;
newPaymentline = new module.Paymentline(accountJournal);
newPaymentline = new module.Paymentline(cashRegister);
/* TODO: Should be 0 for cash-like accounts */
newPaymentline.set({
amount: this.getDueLeft()

View File

@ -52,25 +52,25 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
performPayment: function(event) {
if (this.pos.get('selectedOrder').get('screen') === 'receipt')
return;
var accountJournal, accountJournalCollection, accountJournalId;
var cashRegister, cashRegisterCollection, cashRegisterId;
/* set correct view */
this.pos_widget.screen_selector.set_current_screen('payment');
accountJournalId = event.currentTarget.attributes['account-journal-id'].nodeValue;
accountRegisterCollection = this.pos.get('accountJournals');
accountJournal = accountRegisterCollection.find(_.bind(function(item) {
return (item.get('id')) === parseInt(accountJournalId, 10);
cashRegisterId = event.currentTarget.attributes['cash-register-id'].nodeValue;
cashRegisterCollection = this.pos.get('cashRegisters');
cashRegister = cashRegisterCollection.find(_.bind(function(item) {
return (item.get('id')) === parseInt(cashRegisterId, 10);
}, this));
return (this.pos.get('selectedOrder')).addPaymentLine(accountJournal);
return (this.pos.get('selectedOrder')).addPaymentLine(cashRegister);
},
renderElement: function() {
this._super();
return (this.pos.get('accountJournals')).each(_.bind(function(accountJournal) {
console.log('journal:',accountJournal);
return (this.pos.get('cashRegisters')).each(_.bind(function(cashRegister) {
console.log('cashRegisters:',cashRegister);
var button = new module.PaymentButtonWidget(this,{
pos:this.pos,
});
button.model = accountJournal;
button.model = cashRegister;
button.appendTo(this.$element);
console.log(this.$element);
}, this));
@ -799,14 +799,13 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
if (!self.pos.get('pos_session')) {
self.screen_selector.show_popup('error',
'Sorry, we could not create a user session');
}else if (!self.pos.get('account_journals') || self.pos.get('account_journals').length === 0){
self.screen_selector.show_popup('error',
'Sorry, we could not find any accounting journals in the configuration');
//}else if (!self.pos.get('bank_statements') || self.pos.get('bank_statements').length === 0){
// self.screen_selector.show_popup('error',
// 'Sorry, we could not find any accounting journals in the configuration');
}else if(!self.pos.get('pos_config')){
self.screen_selector.show_popup('error',
'Sorry, we could not find any PoS Configuration for this session');
}
$('.loader').animate({opacity:0},3000,'swing',function(){$('.loader').hide();});
$('.loader img').hide();

View File

@ -395,7 +395,7 @@
</t>
<t t-name="PaymentButtonWidget">
<button class="payment-button" t-att-account-journal-id="widget.id">
<button class="payment-button" t-att-cash-register-id="widget.id">
<t t-esc="widget.name"/>
</button>
<br />