[MERGE] forward port of branch 7.0 up to d0ef1b9
This commit is contained in:
commit
50665b499a
|
@ -254,7 +254,7 @@
|
||||||
<group>
|
<group>
|
||||||
<field domain="[('partner_id', '=', partner_id)]" name="partner_bank_id" on_change="onchange_partner_bank(partner_bank_id)"/>
|
<field domain="[('partner_id', '=', partner_id)]" name="partner_bank_id" on_change="onchange_partner_bank(partner_bank_id)"/>
|
||||||
<field name="user_id" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'account.group_account_invoice']}"/>
|
<field name="user_id" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'account.group_account_invoice']}"/>
|
||||||
<field name="name" invisible="1"/>
|
<field name="name" attrs="{'invisible': [('type', '=', 'in_invoice')]}"/>
|
||||||
<field name="payment_term" options="{'no_create': True}"/>
|
<field name="payment_term" options="{'no_create': True}"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
|
|
|
@ -740,7 +740,11 @@ class account_move_line(osv.osv):
|
||||||
args.append(('partner_id', '=', partner[0]))
|
args.append(('partner_id', '=', partner[0]))
|
||||||
return super(account_move_line, self).search(cr, uid, args, offset, limit, order, context, count)
|
return super(account_move_line, self).search(cr, uid, args, offset, limit, order, context, count)
|
||||||
|
|
||||||
def list_partners_to_reconcile(self, cr, uid, context=None):
|
def list_partners_to_reconcile(self, cr, uid, context=None, filter_domain=False):
|
||||||
|
line_ids = []
|
||||||
|
if filter_domain:
|
||||||
|
line_ids = self.search(cr, uid, filter_domain, context=context)
|
||||||
|
where_clause = filter_domain and "AND l.id = ANY(%s)" or ""
|
||||||
cr.execute(
|
cr.execute(
|
||||||
"""SELECT partner_id FROM (
|
"""SELECT partner_id FROM (
|
||||||
SELECT l.partner_id, p.last_reconciliation_date, SUM(l.debit) AS debit, SUM(l.credit) AS credit, MAX(l.create_date) AS max_date
|
SELECT l.partner_id, p.last_reconciliation_date, SUM(l.debit) AS debit, SUM(l.credit) AS credit, MAX(l.create_date) AS max_date
|
||||||
|
@ -750,10 +754,12 @@ class account_move_line(osv.osv):
|
||||||
WHERE a.reconcile IS TRUE
|
WHERE a.reconcile IS TRUE
|
||||||
AND l.reconcile_id IS NULL
|
AND l.reconcile_id IS NULL
|
||||||
AND l.state <> 'draft'
|
AND l.state <> 'draft'
|
||||||
|
%s
|
||||||
GROUP BY l.partner_id, p.last_reconciliation_date
|
GROUP BY l.partner_id, p.last_reconciliation_date
|
||||||
) AS s
|
) AS s
|
||||||
WHERE debit > 0 AND credit > 0 AND (last_reconciliation_date IS NULL OR max_date > last_reconciliation_date)
|
WHERE debit > 0 AND credit > 0 AND (last_reconciliation_date IS NULL OR max_date > last_reconciliation_date)
|
||||||
ORDER BY last_reconciliation_date""")
|
ORDER BY last_reconciliation_date"""
|
||||||
|
% where_clause, (line_ids,))
|
||||||
ids = [x[0] for x in cr.fetchall()]
|
ids = [x[0] for x in cr.fetchall()]
|
||||||
if not ids:
|
if not ids:
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -49,7 +49,7 @@ openerp.account = function (instance) {
|
||||||
this.last_group_by = group_by;
|
this.last_group_by = group_by;
|
||||||
this.old_search = _.bind(this._super, this);
|
this.old_search = _.bind(this._super, this);
|
||||||
var mod = new instance.web.Model("account.move.line", context, domain);
|
var mod = new instance.web.Model("account.move.line", context, domain);
|
||||||
return mod.call("list_partners_to_reconcile", []).then(function(result) {
|
return mod.call("list_partners_to_reconcile", [context, domain]).then(function(result) {
|
||||||
var current = self.current_partner !== null ? self.partners[self.current_partner][0] : null;
|
var current = self.current_partner !== null ? self.partners[self.current_partner][0] : null;
|
||||||
self.partners = result;
|
self.partners = result;
|
||||||
var index = _.find(_.range(self.partners.length), function(el) {
|
var index = _.find(_.range(self.partners.length), function(el) {
|
||||||
|
|
|
@ -164,6 +164,7 @@
|
||||||
<field name="product_uom_qty" string="Quantity"/>
|
<field name="product_uom_qty" string="Quantity"/>
|
||||||
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
|
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
|
||||||
<field name="price_unit"/>
|
<field name="price_unit"/>
|
||||||
|
<field name="tax_id" domain="[('parent_id', '=', False), ('type_tax_use', '=', 'purchase')]" widget="many2many_tags"/>
|
||||||
<field name="to_invoice"/>
|
<field name="to_invoice"/>
|
||||||
<field name="price_subtotal"/>
|
<field name="price_subtotal"/>
|
||||||
</tree>
|
</tree>
|
||||||
|
|
|
@ -2051,17 +2051,20 @@ class stock_move(osv.osv):
|
||||||
for todo in moves_by_type.values():
|
for todo in moves_by_type.values():
|
||||||
ptype = todo[0][1][5] and todo[0][1][5] or location_obj.picking_type_get(cr, uid, todo[0][0].location_dest_id, todo[0][1][0])
|
ptype = todo[0][1][5] and todo[0][1][5] or location_obj.picking_type_get(cr, uid, todo[0][0].location_dest_id, todo[0][1][0])
|
||||||
if picking:
|
if picking:
|
||||||
|
# Need to check name of old picking because it always considers picking as "OUT" when created from Sales Order
|
||||||
|
old_ptype = location_obj.picking_type_get(cr, uid, picking.move_lines[0].location_id, picking.move_lines[0].location_dest_id)
|
||||||
|
if old_ptype != picking.type:
|
||||||
|
if old_ptype == 'internal':
|
||||||
|
old_pick_name = seq_obj.get(cr, uid, 'stock.picking')
|
||||||
|
else:
|
||||||
|
old_pick_name = seq_obj.get(cr, uid, 'stock.picking.' + old_ptype)
|
||||||
|
self.pool.get('stock.picking').write(cr, uid, [picking.id], {'name': old_pick_name, 'type': old_ptype}, context=context)
|
||||||
# name of new picking according to its type
|
# name of new picking according to its type
|
||||||
if ptype == 'internal':
|
if ptype == 'internal':
|
||||||
new_pick_name = seq_obj.get(cr, uid,'stock.picking')
|
new_pick_name = seq_obj.get(cr, uid,'stock.picking')
|
||||||
else :
|
else :
|
||||||
new_pick_name = seq_obj.get(cr, uid, 'stock.picking.' + ptype)
|
new_pick_name = seq_obj.get(cr, uid, 'stock.picking.' + ptype)
|
||||||
pickid = self._create_chained_picking(cr, uid, new_pick_name, picking, ptype, todo, context=context)
|
pickid = self._create_chained_picking(cr, uid, new_pick_name, picking, ptype, todo, context=context)
|
||||||
# Need to check name of old picking because it always considers picking as "OUT" when created from Sales Order
|
|
||||||
old_ptype = location_obj.picking_type_get(cr, uid, picking.move_lines[0].location_id, picking.move_lines[0].location_dest_id)
|
|
||||||
if old_ptype != picking.type:
|
|
||||||
old_pick_name = seq_obj.get(cr, uid, 'stock.picking.' + old_ptype)
|
|
||||||
self.pool.get('stock.picking').write(cr, uid, [picking.id], {'name': old_pick_name, 'type': old_ptype}, context=context)
|
|
||||||
else:
|
else:
|
||||||
pickid = False
|
pickid = False
|
||||||
for move, (loc, dummy, delay, dummy, company_id, ptype, invoice_state) in todo:
|
for move, (loc, dummy, delay, dummy, company_id, ptype, invoice_state) in todo:
|
||||||
|
|
|
@ -238,10 +238,6 @@ instance.web.parse_value = function (value, descriptor, value_if_empty) {
|
||||||
throw new Error(_.str.sprintf(_t("'%s' is not a correct integer"), value));
|
throw new Error(_.str.sprintf(_t("'%s' is not a correct integer"), value));
|
||||||
return tmp;
|
return tmp;
|
||||||
case 'float':
|
case 'float':
|
||||||
tmp = Number(value);
|
|
||||||
if (!isNaN(tmp))
|
|
||||||
return tmp;
|
|
||||||
|
|
||||||
var tmp2 = value;
|
var tmp2 = value;
|
||||||
do {
|
do {
|
||||||
tmp = tmp2;
|
tmp = tmp2;
|
||||||
|
|
Loading…
Reference in New Issue