[MERGE] forward port of branch 7.0 up to d0ef1b9
This commit is contained in:
commit
50665b499a
|
@ -254,7 +254,7 @@
|
|||
<group>
|
||||
<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="name" invisible="1"/>
|
||||
<field name="name" attrs="{'invisible': [('type', '=', 'in_invoice')]}"/>
|
||||
<field name="payment_term" options="{'no_create': True}"/>
|
||||
</group>
|
||||
<group>
|
||||
|
|
|
@ -740,7 +740,11 @@ class account_move_line(osv.osv):
|
|||
args.append(('partner_id', '=', partner[0]))
|
||||
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(
|
||||
"""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
|
||||
|
@ -750,10 +754,12 @@ class account_move_line(osv.osv):
|
|||
WHERE a.reconcile IS TRUE
|
||||
AND l.reconcile_id IS NULL
|
||||
AND l.state <> 'draft'
|
||||
%s
|
||||
GROUP BY l.partner_id, p.last_reconciliation_date
|
||||
) AS s
|
||||
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()]
|
||||
if not ids:
|
||||
return []
|
||||
|
|
|
@ -49,7 +49,7 @@ openerp.account = function (instance) {
|
|||
this.last_group_by = group_by;
|
||||
this.old_search = _.bind(this._super, this);
|
||||
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;
|
||||
self.partners = result;
|
||||
var index = _.find(_.range(self.partners.length), function(el) {
|
||||
|
|
|
@ -164,6 +164,7 @@
|
|||
<field name="product_uom_qty" string="Quantity"/>
|
||||
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
|
||||
<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="price_subtotal"/>
|
||||
</tree>
|
||||
|
|
|
@ -2051,17 +2051,20 @@ class stock_move(osv.osv):
|
|||
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])
|
||||
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
|
||||
if ptype == 'internal':
|
||||
new_pick_name = seq_obj.get(cr, uid,'stock.picking')
|
||||
else :
|
||||
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)
|
||||
# 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:
|
||||
pickid = False
|
||||
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));
|
||||
return tmp;
|
||||
case 'float':
|
||||
tmp = Number(value);
|
||||
if (!isNaN(tmp))
|
||||
return tmp;
|
||||
|
||||
var tmp2 = value;
|
||||
do {
|
||||
tmp = tmp2;
|
||||
|
|
Loading…
Reference in New Issue