[IMP] sale,sale_journal,sale_margin:Improvements made as per the testing
bzr revid: mtr@mtr-20100624075000-7i6auafofeueg9lu
This commit is contained in:
parent
c3344fabf1
commit
846ca104d0
|
@ -429,7 +429,6 @@ class sale_order(osv.osv):
|
|||
for preline in preinv.invoice_line:
|
||||
inv_line_id = self.pool.get('account.invoice.line').copy(cr, uid, preline.id, {'invoice_id': False, 'price_unit': -preline.price_unit})
|
||||
lines.append(inv_line_id)
|
||||
|
||||
inv = {
|
||||
'name': order.client_order_ref or order.name,
|
||||
'origin': order.name,
|
||||
|
@ -462,7 +461,7 @@ class sale_order(osv.osv):
|
|||
invoices = {}
|
||||
invoice_ids = []
|
||||
picking_obj = self.pool.get('stock.picking')
|
||||
|
||||
invoice=self.pool.get('account.invoice')
|
||||
if context is None:
|
||||
context = {}
|
||||
# If date was specified, use it as date invoiced, usefull when invoices are generated this month and put the
|
||||
|
@ -477,7 +476,6 @@ class sale_order(osv.osv):
|
|||
created_lines = self.pool.get('sale.order.line').invoice_line_create(cr, uid, lines)
|
||||
if created_lines:
|
||||
invoices.setdefault(o.partner_id.id, []).append((o, created_lines))
|
||||
|
||||
if not invoices:
|
||||
for o in self.browse(cr, uid, ids):
|
||||
for i in o.invoice_ids:
|
||||
|
@ -486,11 +484,14 @@ class sale_order(osv.osv):
|
|||
for val in invoices.values():
|
||||
if grouped:
|
||||
res = self._make_invoice(cr, uid, val[0][0], reduce(lambda x,y: x + y, [l for o,l in val], []), context=context)
|
||||
temp_order=''
|
||||
for o, l in val:
|
||||
temp_order=o.name + ',' + temp_order
|
||||
self.write(cr, uid, [o.id], {'state': 'progress'})
|
||||
if o.order_policy == 'picking':
|
||||
picking_obj.write(cr, uid, map(lambda x: x.id, o.picking_ids), {'invoice_state': 'invoiced'})
|
||||
cr.execute('insert into sale_order_invoice_rel (order_id,invoice_id) values (%s,%s)', (o.id, res))
|
||||
invoice.write(cr, uid, [res], {'origin': temp_order})
|
||||
else:
|
||||
for order, il in val:
|
||||
res = self._make_invoice(cr, uid, order, il, context=context)
|
||||
|
@ -1102,7 +1103,7 @@ class sale_order_line(osv.osv):
|
|||
"You have to change either the product, the quantity or the pricelist."
|
||||
}
|
||||
else:
|
||||
result.update({'price_unit': price})
|
||||
result.update({'price_unit': price,'purchase_price' : product_obj.standard_price})
|
||||
return {'value': result, 'domain': domain, 'warning': warning}
|
||||
|
||||
def product_uom_change(self, cursor, user, ids, pricelist, product, qty=0,
|
||||
|
|
|
@ -65,7 +65,6 @@
|
|||
-
|
||||
!record {model: account.account, id: account_account_receivable0}:
|
||||
code: AR
|
||||
company_id: base.main_company
|
||||
currency_mode: current
|
||||
name: Receivable
|
||||
parent_id: account_account_minimalchart0
|
||||
|
@ -79,7 +78,6 @@
|
|||
-
|
||||
!record {model: account.account, id: account_account_cash0}:
|
||||
code: C
|
||||
company_id: base.main_company
|
||||
currency_mode: current
|
||||
name: Cash
|
||||
parent_id: account_account_minimalchart0
|
||||
|
@ -142,7 +140,6 @@
|
|||
-
|
||||
!record {model: account.journal, id: account_journal_bankjournal0}:
|
||||
code: BNK
|
||||
company_id: base.main_company
|
||||
default_credit_account_id: account_account_cash0
|
||||
default_debit_account_id: account_account_cash0
|
||||
name: Bank Journal
|
||||
|
|
|
@ -78,7 +78,6 @@
|
|||
-
|
||||
!record {model: account.account, id: account_account_cash0}:
|
||||
code: C
|
||||
company_id: base.main_company
|
||||
currency_mode: current
|
||||
name: Cash
|
||||
parent_id: account_account_minimalchart0
|
||||
|
|
|
@ -65,7 +65,6 @@
|
|||
-
|
||||
!record {model: account.account, id: account_account_receivable0}:
|
||||
code: AR
|
||||
company_id: base.main_company
|
||||
currency_mode: current
|
||||
name: Receivable
|
||||
parent_id: account_account_minimalchart0
|
||||
|
@ -79,7 +78,6 @@
|
|||
-
|
||||
!record {model: account.account, id: account_account_cash0}:
|
||||
code: C
|
||||
company_id: base.main_company
|
||||
currency_mode: current
|
||||
name: Cash
|
||||
parent_id: account_account_minimalchart0
|
||||
|
@ -142,7 +140,6 @@
|
|||
-
|
||||
!record {model: account.journal, id: account_journal_bankjournal0}:
|
||||
code: BNK
|
||||
company_id: base.main_company
|
||||
default_credit_account_id: account_account_cash0
|
||||
default_debit_account_id: account_account_cash0
|
||||
name: Bank Journal
|
||||
|
|
|
@ -65,7 +65,6 @@
|
|||
-
|
||||
!record {model: account.account, id: account_account_receivable0}:
|
||||
code: AR
|
||||
company_id: base.main_company
|
||||
currency_mode: current
|
||||
name: Receivable
|
||||
parent_id: account_account_minimalchart0
|
||||
|
@ -79,7 +78,6 @@
|
|||
-
|
||||
!record {model: account.account, id: account_account_cash0}:
|
||||
code: C
|
||||
company_id: base.main_company
|
||||
currency_mode: current
|
||||
name: Cash
|
||||
parent_id: account_account_minimalchart0
|
||||
|
@ -142,7 +140,6 @@
|
|||
-
|
||||
!record {model: account.journal, id: account_journal_bankjournal0}:
|
||||
code: BNK
|
||||
company_id: base.main_company
|
||||
default_credit_account_id: account_account_cash0
|
||||
default_debit_account_id: account_account_cash0
|
||||
name: Bank Journal
|
||||
|
|
|
@ -26,7 +26,7 @@ class sale_make_invoice(osv.osv_memory):
|
|||
_name = "sale.make.invoice"
|
||||
_description = "Sale Make Invoice"
|
||||
_columns = {
|
||||
'grouped': fields.boolean('Group the invoices'),
|
||||
'grouped': fields.boolean('Group the invoices', help='Check the box to group the invoices for the same customers'),
|
||||
'invoice_date':fields.date('Invoice Date'),
|
||||
}
|
||||
_default = {
|
||||
|
@ -50,11 +50,11 @@ class sale_make_invoice(osv.osv_memory):
|
|||
for o in order_obj.browse(cr, uid, context.get(('active_ids'),[]), context):
|
||||
for i in o.invoice_ids:
|
||||
newinv.append(i.id)
|
||||
|
||||
|
||||
mod_obj =self.pool.get('ir.model.data')
|
||||
result = mod_obj._get_id(cr, uid, 'account', 'view_account_invoice_filter')
|
||||
|
||||
id = mod_obj.read(cr, uid, result, ['res_id'])
|
||||
id = mod_obj.read(cr, uid, result, ['res_id'])
|
||||
return {
|
||||
'domain': "[('id','in', ["+','.join(map(str,newinv))+"])]",
|
||||
'name': 'Invoices',
|
||||
|
@ -64,7 +64,7 @@ class sale_make_invoice(osv.osv_memory):
|
|||
'view_id': False,
|
||||
'context': "{'type':'out_refund'}",
|
||||
'type': 'ir.actions.act_window',
|
||||
'search_view_id': id['id']
|
||||
'search_view_id': id['res_id']
|
||||
}
|
||||
|
||||
sale_make_invoice()
|
||||
|
|
|
@ -6,14 +6,15 @@
|
|||
<field name="model">sale.make.invoice</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create invoices">
|
||||
<separator colspan="4" string="Do you really want to create the invoices ?" />
|
||||
<field name="grouped" />
|
||||
<form string="Create invoices">
|
||||
<separator colspan="4" string="Do you really want to create the invoices ?" />
|
||||
<field name="grouped"/>
|
||||
<newline/>
|
||||
<field name="invoice_date"/>
|
||||
<separator string="" colspan="6" />
|
||||
<separator string="" colspan="6"/>
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="make_invoices" string="Create Invoices" type="object" icon="gtk-ok"/>
|
||||
</form>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -127,6 +127,7 @@ class picking_journal(osv.osv):
|
|||
'state': fields.selection([
|
||||
('draft','Draft'),
|
||||
('open','Open'),
|
||||
('cancel','Cancel'),
|
||||
('done','Done'),
|
||||
], 'Creation date', required=True, readonly=True),
|
||||
'note': fields.text('Note'),
|
||||
|
@ -138,6 +139,7 @@ class picking_journal(osv.osv):
|
|||
'state': lambda self,cr,uid,context: 'draft',
|
||||
}
|
||||
def button_picking_cancel(self, cr, uid, ids, context={}):
|
||||
self.write(cr, uid, ids, {'state':'cancel'})
|
||||
for id in ids:
|
||||
pick_ids = self.pool.get('stock.picking').search(cr, uid, [('journal_id','=',id)])
|
||||
for pickid in pick_ids:
|
||||
|
@ -186,7 +188,7 @@ picking()
|
|||
class sale(osv.osv):
|
||||
_inherit="sale.order"
|
||||
_columns = {
|
||||
'journal_id': fields.many2one('sale_journal.sale.journal', 'Journal'),
|
||||
'journal_id': fields.many2one('sale_journal.sale.journal', 'Journal', domain=[('state','!=', 'done')]),
|
||||
'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type')
|
||||
}
|
||||
def action_ship_create(self, cr, uid, ids, *args):
|
||||
|
|
|
@ -113,13 +113,16 @@
|
|||
<field name="arch" type="xml">
|
||||
<search string="Sales by Journal">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-personal" string="My Sale Journals" domain="[('user_id','=',uid)]" help="My Sale Journals"/>
|
||||
<filter icon="terp-camera_test" string="Open" domain="[('state','=','open')]" help="Open Sale Journals"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Sale Journals which are in draft state"/>
|
||||
<filter icon="gtk-open" string="Open" domain="[('state','=','open')]" help="Open Sale Journals"/>
|
||||
<filter icon="gtk-cancel" string="Cancel" domain="[('state','=','cancel')]" help="Sale Journals which are cancelled"/>
|
||||
<filter icon="terp-check" string="Confirm" domain="[('state','=','confirm')]" help="Confirmed Sale Journals"/>
|
||||
<filter icon="terp-camera_test" string="Close" domain="[('state','=','done')]" help="Sale Journals which are closed"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="user_id"/>
|
||||
<field name="date"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
@ -131,6 +134,7 @@
|
|||
<field name="res_model">sale_journal.sale.journal</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'search_default_user_id':uid}</field>
|
||||
<field name="search_view_id" ref="view_sale_journal_search"/>
|
||||
</record>
|
||||
|
||||
|
@ -386,7 +390,7 @@
|
|||
<group col="6" colspan="2">
|
||||
<button name="button_open" string="Open Journal" states="draft" type="object" icon="gtk-open"/>
|
||||
<button name="button_close" string="Close Journal" states="open" type="object" icon="gtk-close"/>
|
||||
<button name="button_draft" string="Set to Draft" states="close,open" type="object" icon="gtk-convert"/>
|
||||
<button name="button_draft" string="Set to Draft" states="close,open,cancel" type="object" icon="gtk-convert"/>
|
||||
<button string="Cancel Picking" name="button_picking_cancel" states="draft,open" type="object" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</form>
|
||||
|
@ -417,13 +421,15 @@
|
|||
<field name="arch" type="xml">
|
||||
<search string="Picking Journals">
|
||||
<group col="8" colspan="4">
|
||||
<filter icon="terp-personal" string="My Picking Journals" domain="[('user_id','=',uid)]" help="My Picking Journals"/>
|
||||
<filter icon="terp-camera_test" string="Open" domain="[('state','=','open')]" help="Open Picking Journals"/>
|
||||
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Picking Journals which are in draft state"/>
|
||||
<filter icon="gtk-open" string="Open" domain="[('state','=','open')]" help="Open Picking Journals"/>
|
||||
<filter icon="gtk-cancel" string="Cancel" domain="[('state','=','cancel')]" help="Picking Journals which are cancelled"/>
|
||||
<filter icon="terp-camera_test" string="Close" domain="[('state','=','done')]" help="Picking Journals which are closed"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="user_id"/>
|
||||
<field name="date"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
@ -436,6 +442,7 @@
|
|||
<field name="res_model">sale_journal.picking.journal</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'search_default_user_id':uid}</field>
|
||||
<field name="search_view_id" ref="view_picking_journal_search"/>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ class sale_order_line(osv.osv):
|
|||
return res
|
||||
|
||||
_columns = {
|
||||
'margin': fields.function(_product_margin, method=True, string='Margin', store=True),
|
||||
'margin': fields.function(_product_margin, method=True, string='Margin', store={}),
|
||||
'purchase_price': fields.float('Cost Price', digits=(16,2))
|
||||
}
|
||||
|
||||
|
|
|
@ -13,6 +13,31 @@
|
|||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_margin_sale_order_line">
|
||||
<field name="name">sale.order.line.margin.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/notebook/page/field[@name='order_line']/form/notebook/page/field[@name='price_unit']" position="after">
|
||||
<field name="purchase_price"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_margin_sale_order_line_form">
|
||||
<field name="name">sale.order.line.tree.margin.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/notebook/page/field[@name='order_line']/tree/field[@name='price_unit']" position="after">
|
||||
<field name="purchase_price"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="sale_margin_sale_order_tree">
|
||||
<field name="name">sale.order.margin.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
|
@ -24,7 +49,7 @@
|
|||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="sale_margin_sale_order_line_tree">
|
||||
<field name="name">sale.order.margin.line.view.tree</field>
|
||||
<field name="type">tree</field>
|
||||
|
@ -42,7 +67,7 @@
|
|||
<field name="name">picking.margin.view.form</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_form" />
|
||||
<field name="inherit_id" ref="stock.view_picking_in_form" />
|
||||
<field name="arch" type="xml">
|
||||
<notebook colspan="4">
|
||||
<page string="Supplier Invoices">
|
||||
|
|
Loading…
Reference in New Issue