[ADD]Possibility to select no journal and/or no period

bzr revid: dle@openerp.com-20121122142859-dornyupukdeaya5y
This commit is contained in:
Denis Ledoux dle@openerp.com 2012-11-22 15:28:59 +01:00
parent a880787a84
commit 0a5e921dff
3 changed files with 17 additions and 21 deletions

View File

@ -1428,7 +1428,6 @@ class account_move_line(osv.osv):
ng = dict(self.pool.get('account.journal').name_search(cr,uid,'',[]))
ids = ng.keys()
result = []
print ng
for journal in self.pool.get('account.journal').browse(cr, uid, ids, context=context):
result.append((journal.id,ng[journal.id],journal.type,
bool(journal.currency),bool(journal.analytic_journal_id)))

View File

@ -991,6 +991,8 @@
<field eval="4" name="priority"/>
<field name="arch" type="xml">
<tree colors="red:state == 'draft';black:state == 'valid'" string="Journal Items" create="true" on_write="on_create_write" version="7.0" editable="top">
<field name="journal_id" invisible="context.get('journal_id',False)"/>
<field name="period_id" invisible="context.get('period_id',False)"/>
<field name="date"/>
<field name="name"/>
<field name="ref"/>
@ -1008,8 +1010,6 @@
<field name="amount_currency" readonly="True" invisible="not context.get('currency',False)"/>
<field name="currency_id" readonly="True" invisible="not context.get('currency',False)" />
<field name="state" />
<field name="journal_id" invisible="1"/>
<field name="period_id" invisible="1"/>
</tree>
</field>
</record>

View File

@ -28,11 +28,11 @@ openerp.account.quickadd = function (instance) {
this.$el.parent().prepend(QWeb.render("AccountMoveLineQuickAdd", {widget: this}));
this.$el.parent().find('.oe_account_select_journal').change(function() {
self.current_journal = parseInt(this.value);
self.current_journal = this.value === '' ? null : parseInt(this.value);
self.do_search(self.last_domain, self.last_context, self.last_group_by);
});
this.$el.parent().find('.oe_account_select_period').change(function() {
self.current_period = parseInt(this.value);
self.current_period = this.value === '' ? null : parseInt(this.value);
self.do_search(self.last_domain, self.last_context, self.last_group_by);
});
this.on('edit:after', this, function () {
@ -43,6 +43,11 @@ openerp.account.quickadd = function (instance) {
self.$el.parent().find('.oe_account_select_journal').removeAttr('disabled');
self.$el.parent().find('.oe_account_select_period').removeAttr('disabled');
});
var mod = new instance.web.Model("account.move.line", self.dataset.context, self.dataset.domain);
mod.call("default_get", [['journal_id','period_id'],self.dataset.context]).then(function(result) {
self.current_period = result['period_id'];
self.current_journal = result['journal_id'];
});
return tmp;
},
do_search: function(domain, context, group_by) {
@ -56,15 +61,10 @@ openerp.account.quickadd = function (instance) {
self.journals = result;
}),mod.call("list_periods", []).then(function(result) {
self.periods = result;
}),mod.call("default_get", [['journal_id','period_id'],self.last_context]).then(function(result) {
self.default_period = result['period_id'];
self.default_journal = result['journal_id'];
})).then(function () {
self.current_journal = self.current_journal === null ? self.default_journal : self.current_journal;
self.current_period = self.current_period === null ? self.default_period :self.current_period;
var o;
//self.$('.oe_account_select_journal',self.$el.parent())[0].children().remove().end();
self.$el.parent().find('.oe_account_select_journal').children().remove().end();
self.$el.parent().find('.oe_account_select_journal').append(new Option('', ''));
for (var i = 0;i < self.journals.length;i++){
o = new Option(self.journals[i][1], self.journals[i][0]);
if (self.journals[i][0] === self.current_journal){
@ -76,6 +76,7 @@ openerp.account.quickadd = function (instance) {
self.$el.parent().find('.oe_account_select_journal').append(o);
}
self.$el.parent().find('.oe_account_select_period').children().remove().end();
self.$el.parent().find('.oe_account_select_period').append(new Option('', ''));
for (var i = 0;i < self.periods.length;i++){
o = new Option(self.periods[i][1], self.periods[i][0]);
self.$el.parent().find('.oe_account_select_period').append(o);
@ -86,19 +87,15 @@ openerp.account.quickadd = function (instance) {
},
search_by_journal_period: function() {
var self = this;
var compoundDomain = new instance.web.CompoundDomain(self.last_domain,
[
["journal_id", "=", self.current_journal],
["period_id", "=", self.current_period]
]);
self.last_context["journal_id"] = self.current_journal;
self.last_context["period_id"] = self.current_period;
var domain = [];
if (self.current_journal !== null) domain.push(["journal_id", "=", self.current_journal]);
if (self.current_period !== null) domain.push(["period_id", "=", self.current_period]);
self.last_context["journal_id"] = self.current_journal === null ? false : self.current_journal;
self.last_context["period_id"] = self.current_period === null ? false : self.current_period;
self.last_context["journal_type"] = self.current_journal_type;
self.last_context["currency"] = self.current_journal_currency;
self.last_context["analytic_journal_id"] = self.current_journal_analytic;
var compoundContext = self.last_context;
return self.old_search(compoundDomain, compoundContext, self.last_group_by);
return self.old_search(new instance.web.CompoundDomain(self.last_domain, domain), self.last_context, self.last_group_by);
},
});
};