From 95f5f1f0c8b337738d3504ea57d5284feea036e9 Mon Sep 17 00:00:00 2001
From: "pap(openerp)" <>
Date: Tue, 20 Jul 2010 17:59:23 +0530
Subject: [PATCH 1/4] [FIX] Account: supplier invoice if ref is not given and
correct use model view
bzr revid: mra@mra-laptop-20100720122923-3mo213rwntd35ute
---
addons/account/invoice.py | 2 +-
addons/account/wizard/account_use_model_view.xml | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/addons/account/invoice.py b/addons/account/invoice.py
index 46e64570a14..bca5770accc 100644
--- a/addons/account/invoice.py
+++ b/addons/account/invoice.py
@@ -922,7 +922,7 @@ class account_invoice(osv.osv):
invtype = obj_inv.type
number = obj_inv.number
move_id = obj_inv.move_id and obj_inv.move_id.id or False
- reference = obj_inv.reference
+ reference = obj_inv.reference or ''
if not number:
tmp_context = {
'fiscalyear_id': obj_inv.period_id.fiscalyear_id.id
diff --git a/addons/account/wizard/account_use_model_view.xml b/addons/account/wizard/account_use_model_view.xml
index 03ca451e509..71f026237ac 100644
--- a/addons/account/wizard/account_use_model_view.xml
+++ b/addons/account/wizard/account_use_model_view.xml
@@ -50,7 +50,7 @@
form
-
+
res.partner.select2
res.partner
@@ -169,8 +164,8 @@
form
-
-
+
+
-
- res.partner.form2
- res.partner
- form
-
-
-
-
-
-
-
+
res.partner.tree.form.inherit
@@ -213,37 +198,44 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
product.normal.form
diff --git a/addons/membership/report/report_membership.py b/addons/membership/report/report_membership.py
index cd0142f5604..fc14b65f698 100644
--- a/addons/membership/report/report_membership.py
+++ b/addons/membership/report/report_membership.py
@@ -55,13 +55,15 @@ class report_membership(osv.osv):
('done', 'Old Member'),
('open', 'Invoiced Member'),
('free', 'Free Member'), ('paid', 'Paid Member')], 'State'),
- 'partner_id': fields.many2one('res.partner', 'Members', readonly=True, select=3)
+ 'partner_id': fields.many2one('res.partner', 'Members', readonly=True, select=3),
+ 'membership_id': fields.many2one('product.product', 'Membership', readonly=True, select=3)
}
def init(self, cr):
'''Create the view'''
+ tools.drop_view_if_exists(cr, 'report_membership')
cr.execute("""
CREATE OR REPLACE VIEW report_membership AS (
SELECT
@@ -78,6 +80,7 @@ class report_membership(osv.osv):
month,
create_date,
partner_id,
+ membership_id,
state,
currency
@@ -105,7 +108,8 @@ class report_membership(osv.osv):
ai.partner_id AS partner_id,
ai.currency_id AS currency,
ai.state as state,
- MIN(ml.id) AS id
+ MIN(ml.id) AS id,
+ ml.membership_id AS membership_id
FROM membership_membership_line ml
JOIN (account_invoice_line ail
LEFT JOIN account_invoice ai
@@ -114,10 +118,10 @@ class report_membership(osv.osv):
JOIN res_partner p
ON (ml.partner = p.id)
GROUP BY TO_CHAR(ml.date_from, 'YYYY'), TO_CHAR(ml.date_from, 'MM'), TO_CHAR(ml.date_from, 'YYYY-MM-DD'), ai.state, ai.partner_id,
- ai.currency_id, ml.id) AS foo
- GROUP BY year, month, create_date, currency, partner_id, state)
+ ai.currency_id, ml.id, ml.membership_id) AS foo
+ GROUP BY year, month, create_date, currency, partner_id, membership_id, state)
""")
report_membership()
-#
\ No newline at end of file
+#
diff --git a/addons/membership/report/report_membership_view.xml b/addons/membership/report/report_membership_view.xml
index 89857771355..bdb5065b766 100644
--- a/addons/membership/report/report_membership_view.xml
+++ b/addons/membership/report/report_membership_view.xml
@@ -12,6 +12,7 @@
+
@@ -47,12 +48,14 @@
+
-
+
@@ -104,7 +107,7 @@
-
diff --git a/addons/membership/wizard/membership_invoice.py b/addons/membership/wizard/membership_invoice.py
index a969abf0632..7536bd4b942 100644
--- a/addons/membership/wizard/membership_invoice.py
+++ b/addons/membership/wizard/membership_invoice.py
@@ -23,6 +23,7 @@ import time
from osv import fields, osv
from tools.translate import _
import tools
+import decimal_precision as dp
class membership_invoice(osv.osv_memory):
"""Membership Invoice"""
@@ -30,56 +31,32 @@ class membership_invoice(osv.osv_memory):
_name = "membership.invoice"
_description = "Membership Invoice"
_columns = {
- 'product_id': fields.many2one('product.product','Membership Product', required=True),
+ 'product_id': fields.many2one('product.product','Membership', required=True),
+ 'member_price':fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True),
}
+ def onchange_product(self, cr, uid, ids, product_id):
+ """This function returns value of product's member price based on product id.
+ """
+ if not product_id:
+ return {'value': {'unit_price': False}}
+ else:
+ unit_price=self.pool.get('product.product').price_get(cr, uid, [product_id])[product_id]
+ return {'value': {'member_price': unit_price}}
def membership_invoice(self, cr, uid, ids, context=None):
- invoice_obj = self.pool.get('account.invoice')
partner_obj = self.pool.get('res.partner')
- product_obj = self.pool.get('product.product')
- invoice_line_obj = self.pool.get('account.invoice.line')
- invoice_tax_obj = self.pool.get('account.invoice.tax')
+ datas = {}
if not context:
- context={}
- partner_ids = context.get('active_ids', [])
- invoice_list = []
- for partner in partner_obj.browse(cr, uid, partner_ids, context=context):
- account_id = partner.property_account_receivable and partner.property_account_receivable.id or False
- fpos_id = partner.property_account_position and partner.property_account_position.id or False
- addr = partner_obj.address_get(cr, uid, [partner.id], ['invoice'])
- if not addr.get('invoice', False):
- continue
- for data in self.browse(cr, uid, ids, context=context):
- product_id = data.product_id and data.product_id.id or False
- product_uom_id = data.product_id and data.product_id.uom_id.id
- quantity = 1
- line_value = {
- 'product_id' : product_id,
- }
-
- line_dict = invoice_line_obj.product_id_change(cr, uid, {},
- product_id, product_uom_id, quantity, '', 'out_invoice', partner.id, fpos_id, context=context)
- line_value.update(line_dict['value'])
- if line_value.get('invoice_line_tax_id', False):
- tax_tab = [(6, 0, line_value['invoice_line_tax_id'])]
- line_value['invoice_line_tax_id'] = tax_tab
-
- invoice_id = invoice_obj.create(cr, uid, {
- 'partner_id' : partner.id,
- 'address_invoice_id': addr.get('invoice', False),
- 'account_id': account_id,
- 'fiscal_position': fpos_id or False
- }
- )
- line_value['invoice_id'] = invoice_id
- invoice_line_id = invoice_line_obj.create(cr, uid, line_value, context=context)
- invoice_obj.write(cr, uid, invoice_id, {'invoice_line':[(6,0,[invoice_line_id])]}, context=context)
- invoice_list.append(invoice_id)
- if line_value['invoice_line_tax_id']:
- tax_value = invoice_tax_obj.compute(cr, uid, invoice_id).values()
- for tax in tax_value:
- invoice_tax_obj.create(cr, uid, tax, context=context)
-
+ context = {}
+ data = self.browse(cr, uid, ids)
+ if data:
+ data = data[0]
+ datas = {
+ 'membership_product_id': data.product_id.id,
+ 'amount': data.member_price
+ }
+ invoice_ids = context.get('active_ids', [])
+ invoice_list = partner_obj.create_membership_invoice(cr, uid, invoice_ids, datas=datas, context=context)
return {
'domain': [('id', 'in', invoice_list)],
@@ -88,7 +65,7 @@ class membership_invoice(osv.osv_memory):
'view_mode': 'tree,form',
'res_model': 'account.invoice',
'type': 'ir.actions.act_window',
- }
+ }
membership_invoice()
diff --git a/addons/membership/wizard/membership_invoice_view.xml b/addons/membership/wizard/membership_invoice_view.xml
index a869fa59f2c..717f66ec6a3 100644
--- a/addons/membership/wizard/membership_invoice_view.xml
+++ b/addons/membership/wizard/membership_invoice_view.xml
@@ -9,34 +9,23 @@
-
- Membership Invoice
+ Join Membership
membership.invoice
form
tree,form
new
-
-
-
-
-
- vote
- client_action_multi
-
- action
- res.partner
-
-
+
diff --git a/addons/membership/wizard/membership_unpaid_invoice.py b/addons/membership/wizard/membership_unpaid_invoice.py
index f403e78c81d..0dbbbb3c952 100644
--- a/addons/membership/wizard/membership_unpaid_invoice.py
+++ b/addons/membership/wizard/membership_unpaid_invoice.py
@@ -26,8 +26,8 @@ class member_unpaid_invoice(osv.osv_memory):
_name = "membership.unpaid.invoice"
_description = "List of Unpaid Partner"
_columns ={
- 'product': fields.many2one('product.product','Membership product', size=64,required=True, help='Select Membership product'),
- }
+ 'product': fields.many2one('product.product','Membership', size=64,required=True, help='Select Membership.'),
+ }
def invoice_membership(self, cr, uid, ids, context):
model_obj = self.pool.get('ir.model.data')
@@ -45,7 +45,7 @@ class member_unpaid_invoice(osv.osv_memory):
return {
'domain': [('id', 'in', partners)],
- 'name': 'Unpaid Partners',
+ 'name': 'Unpaid Members',
'view_type': 'form',
'view_mode': 'tree,form',
'res_model': 'res.partner',
diff --git a/addons/membership/wizard/membership_unpaid_invoice_view.xml b/addons/membership/wizard/membership_unpaid_invoice_view.xml
index 6b57c49572b..9c5db96d5e3 100644
--- a/addons/membership/wizard/membership_unpaid_invoice_view.xml
+++ b/addons/membership/wizard/membership_unpaid_invoice_view.xml
@@ -7,20 +7,20 @@
membership.unpaid.invoice
form
-
- List Unpaid Partners
+ List Unpaid Members
membership.unpaid.invoice
form
tree,form
@@ -28,9 +28,9 @@
new
-
+ parent="menu_membership" />
From 90234707dc901a81935570274c52a5327940b66e Mon Sep 17 00:00:00 2001
From: "mtr (Open ERP)" <>
Date: Tue, 20 Jul 2010 18:32:23 +0530
Subject: [PATCH 4/4] [IMP] sale: while canceling sale order line display msg
if pickings are confirm [IMP] stock: stock picking
bzr revid: mra@mra-laptop-20100720130223-pondu6rsgsyprocx
---
addons/sale/sale.py | 11 +++++------
addons/stock/stock.py | 5 +++--
addons/stock/stock_view.xml | 3 +--
3 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index 155f157ae50..b726b05a19f 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -659,7 +659,6 @@ class sale_order(osv.osv):
'invoice_state': (order.order_policy=='picking' and '2binvoiced') or 'none',
'company_id': order.company_id.id,
})
-
move_id = self.pool.get('stock.move').create(cr, uid, {
'name': line.name[:64],
'picking_id': picking_id,
@@ -721,7 +720,6 @@ class sale_order(osv.osv):
val['state'] = 'manual'
break
self.write(cr, uid, [order.id], val)
-
return True
def action_ship_end(self, cr, uid, ids, context=None):
@@ -941,10 +939,11 @@ class sale_order_line(osv.osv):
for line in self.browse(cr, uid, ids, context=context):
if line.invoiced:
raise osv.except_osv(_('Invalid action !'), _('You cannot cancel a sale order line that has already been invoiced !'))
-# if line.order_id.picking_ids:
-# raise osv.except_osv(
-# _('Could not cancel sale order line!'),
-# _('You must first cancel stock move attached to this sale order line.'))
+ for pick in line.order_id.picking_ids:
+ if pick.state != 'cancel':
+ raise osv.except_osv(
+ _('Could not cancel sale order line!'),
+ _('You must first cancel all pickings attached with sale order.'))
message = _('Sale order line') + " '" + line.name + "' "+_("is cancelled")
self.log(cr, uid, id, message)
return self.write(cr, uid, ids, {'state': 'cancel'})
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index a0ccca91ddb..4e62e10f637 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -1591,8 +1591,9 @@ class stock_move(osv.osv):
'stock_journal_id': todo[0][1][3],
'company_id': todo[0][1][4] or res_obj._company_default_get(cr, uid, 'stock.company', context),
'address_id': picking.address_id.id,
-
- 'invoice_state': 'none'
+ 'invoice_state': 'none',
+ 'date': picking.date,
+ 'sale_id': picking.sale_id.id
})
for move, (loc, auto, delay, journal, company_id, ptype) in todo:
new_id = self.pool.get('stock.move').copy(cr, uid, move.id, {
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 6f744ce784d..2eb218da275 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -894,9 +894,9 @@
-
+
@@ -1093,7 +1093,6 @@
-