+ [[ o.partner_id.title or '' ]] [[ o.partner_id.name ]][[ o.address_invoice_id.title or '' ]] [[ o.address_invoice_id.name ]][[ o.address_invoice_id.street ]][[ o.address_invoice_id.street2 or '' ]][[ o.address_invoice_id.zip or '' ]] [[ o.address_invoice_id.city or '' ]][[ o.address_invoice_id.state_id and o.address_invoice_id.state_id.name or '' ]][[ o.address_invoice_id.country_id and o.address_invoice_id.country_id.name or '' ]]
-
+
+
+ Tel. : [[ o.address_invoice_id.phone or removeParentNode('para') ]]Fax : [[ o.address_invoice_id.fax or removeParentNode('para') ]]VAT : [[ o.partner_id.vat or removeParentNode('para') ]]
@@ -255,168 +248,278 @@
Invoice [[ ((o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')) or removeParentNode('para')) and '' ]] [[ o.number ]]PRO-FORMA [[ ((o.type == 'out_invoice' and o.state == 'proforma2') or removeParentNode('para')) and '' ]]Draft Invoice [[ ((o.type == 'out_invoice' and o.state == 'draft') or removeParentNode('para')) and '' ]]
- Canceled Invoice [[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('para')) and '' ]]
+ Cancelled Invoice [[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('para')) and '' ]] [[ o.number ]]Refund [[ (o.type=='out_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]Supplier Refund [[ (o.type=='in_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]Supplier Invoice [[ (o.type=='in_invoice' or removeParentNode('para')) and '' ]] [[ o.number ]]
-
+
+
+
-
Document
-
Invoice Date
-
Partner Ref.
+
+ Document
+
+
+ Invoice Date
+
+
+ Partner Ref.
+
-
[[ o.name ]]
-
[[ formatLang(o.date_invoice,date=True) ]]
-
[[ o.address_invoice_id.partner_id.ref or '' ]]
+
+ [[ o.name ]]
+
+
+ [[ formatLang(o.date_invoice,date=True) ]]
+
+
+ [[ o.address_invoice_id.partner_id.ref or '' ]]
+
-
-
-
+
+
+
+
-
Description
-
Taxes
-
Quantity
-
Unit Price
-
Disc.(%)
-
Price
+
+ Description
+
+
+ Taxes
+
+
+ Quantity
+
+
+ Unit Price
+
+
+ Disc.(%)
+
+
+ Price
+
[[ repeatIn(o.invoice_line,'l') ]]
-
+
-
[[ l.name ]]
-
[[ ', '.join([ lt.description or '' for lt in l.invoice_line_tax_id ]) ]]
-
[[ formatLang(l.quantity)]]
-
[[ (l.uos_id and l.uos_id.name) or '' ]]
-
[[ formatLang(l.price_unit) ]]
-
[[ formatLang(l.discount) ]]
-
[[ formatLang(l.price_subtotal) ]]
-
[[ o.currency_id.code ]]
+
+ [[ l.name ]]
+
+
+ [[ ', '.join([ lt.name or '' for lt in l.invoice_line_tax_id ]) ]]
+
+
+ [[ formatLang(l.quantity)]]
+
+
+ [[ (l.uos_id and l.uos_id.name) or '' ]]
+
+
+ [[ formatLang(l.price_unit) ]]
+
+
+ [[ formatLang(l.discount) ]]
+
+
+ [[ formatLang(l.price_subtotal) ]]
+
+
+ [[ o.currency_id.code ]]
+
-
[[ format(l.note) or removeParentNode('tr') ]]
-
-
-
-
-
-
-
+
+ [[ format(l.note or '') or removeParentNode('tr') ]]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
Net Total:
-
[[ formatLang(o.amount_untaxed) ]]
-
[[ o.currency_id.code ]]
+
+ Net Total:
+
+
+ [[ formatLang(o.amount_untaxed) ]]
+
+
+ [[ o.currency_id.code ]]
+
-
+
+
+
+
-
Taxes:
-
[[ formatLang(o.amount_tax) ]]
-
[[ o.currency_id.code ]]
+
+ Taxes:
+
+
+ [[ formatLang(o.amount_tax) ]]
+
+
+ [[ o.currency_id.code ]]
+
-
+
+
+
+
-
Total:
-
[[ formatLang(o.amount_total) ]]
-
[[ o.currency_id.code ]]
+
+ Total:
+
+
+ [[ formatLang(o.amount_total) ]]
+
+
+ [[ o.currency_id.code ]]
+
-
+
-
+
-
Tax
-
Base
-
Amount
+
+ Tax
+
+
+ Base
+
+
+ Amount
+
+
+
+
+
+
+
+
+
+
+ [[ repeatIn(o.tax_line,'t') ]]
+
+
+
+ [[ t.name ]]
+
+
+ [[ formatLang(t.base) ]]
+
+
+ [[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]] [[ formatLang(t.amount) ]]
+
- [[ repeatIn(o.tax_line,'t') ]]
-
-
-
[[ t.name ]]
-
[[ formatLang(t.base) ]]
-
[[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]][[ formatLang(t.amount) ]]
-
-
+
+
+
+
+
-
-
-
-
-
-
-
+ [[ format(o.comment or '') or removeParentNode('blockTable') ]]
-
+
-
-
+
+ [[ format((o.payment_term and o.payment_term.note) or '') or removeParentNode('blockTable') ]]
+
-
-
-
[[ format(o.comment or removeParentNode('blockTable')) ]]
-
-
-
-
-
-
-
-
[[ format((o.payment_term and o.payment_term.note) or removeParentNode('blockTable')) ]]
-
-
-
-
-
-
+
Fiscal Position Remark :
- [[ format(o.fiscal_position and o.fiscal_position.note or removeParentNode('blockTable')) ]]
+ [[ format((o.fiscal_position and o.fiscal_position.note) or '') or removeParentNode('blockTable') ]]
-
-
-
-
-
-
+
+
+
+
+
diff --git a/addons/base_contact/test/base_contact00.yml b/addons/base_contact/test/base_contact00.yml
index 335f525f92f..c6a4ed9e057 100644
--- a/addons/base_contact/test/base_contact00.yml
+++ b/addons/base_contact/test/base_contact00.yml
@@ -55,7 +55,7 @@
Now I will check that the new job is assigned properly to contact or not
-
!assert {model: res.partner.contact, id: res_partner_contact_williams0}:
- - len(job_ids) > 2
+ - len(job_ids) >= 2
- |
In order to check contacts working at several addresses for different partners
I will create contact with 2 different addresses
diff --git a/addons/board/board_view.xml b/addons/board/board_view.xml
index c7e1a37b8fa..f34c0ce5917 100644
--- a/addons/board/board_view.xml
+++ b/addons/board/board_view.xml
@@ -4,9 +4,28 @@
-
-
+ name="Dashboard" sequence="30" />
+
+
+ board.note.search
+ board.note
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
board.note.tree
@@ -15,10 +34,11 @@
+
-
+
@@ -31,7 +51,8 @@
-
+
+
@@ -43,6 +64,7 @@
board.noteformform,tree
+
@@ -72,7 +94,7 @@
name="%(action_board_menu_create)d"
string="Create Menu" type="action"
icon="gtk-justify-fill" />
-
+
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index ada4f7d29fe..7a614a16211 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -309,7 +309,7 @@
context="{'invisible_section': False}">
diff --git a/addons/crm/crm_opportunity.py b/addons/crm/crm_opportunity.py
index e13a428138a..db5aa168bbb 100644
--- a/addons/crm/crm_opportunity.py
+++ b/addons/crm/crm_opportunity.py
@@ -70,6 +70,20 @@ class crm_opportunity(osv.osv):
self.log(cr, uid, id, message)
return res
+ def case_mark_lost(self, cr, uid, ids, *args):
+ """Mark the case as lost: state = done and probability = 0%
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of case Ids
+ @param *args: Tuple Value for additional Params
+ """
+ res = self.write(cr, uid, ids, {'probability' : 0.0, 'state': 'done'})
+ for (id, name) in self.name_get(cr, uid, ids):
+ message = _('Opportunity ') + " '" + name + "' "+ _("is Lost.")
+ self.log(cr, uid, id, message)
+ return res
+
def case_cancel(self, cr, uid, ids, *args):
"""Overrides cancel for crm_case for setting probability
@param self: The object pointer
@@ -80,9 +94,6 @@ class crm_opportunity(osv.osv):
"""
res = super(crm_opportunity, self).case_cancel(cr, uid, ids, args)
self.write(cr, uid, ids, {'probability' : 0.0})
- for (id, name) in self.name_get(cr, uid, ids):
- message = _('Opportunity ') + " '" + name + "' "+ _("is Lost.")
- self.log(cr, uid, id, message)
return res
def case_open(self, cr, uid, ids, *args):
diff --git a/addons/crm/crm_opportunity_view.xml b/addons/crm/crm_opportunity_view.xml
index b08ceaf898e..5c3f3ffa8e1 100644
--- a/addons/crm/crm_opportunity_view.xml
+++ b/addons/crm/crm_opportunity_view.xml
@@ -65,8 +65,11 @@
-
+
+
@@ -74,18 +77,18 @@
states="draft,open" type="object"
icon="gtk-media-pause" />
-
+
-
@@ -224,15 +227,15 @@
-
-
+
@@ -291,7 +294,7 @@
context="{'invisible_section': False}"
widget="selection">
diff --git a/addons/crm/wizard/crm_custom_create_menu_view.xml b/addons/crm/wizard/crm_custom_create_menu_view.xml
index ddd4f2339f0..ad36e51b744 100644
--- a/addons/crm/wizard/crm_custom_create_menu_view.xml
+++ b/addons/crm/wizard/crm_custom_create_menu_view.xml
@@ -11,9 +11,7 @@
-
-
-
+
diff --git a/addons/crm_claim/report/crm_claim_report.py b/addons/crm_claim/report/crm_claim_report.py
index 5be9d3c163b..18c6d16ed53 100644
--- a/addons/crm_claim/report/crm_claim_report.py
+++ b/addons/crm_claim/report/crm_claim_report.py
@@ -45,42 +45,6 @@ class crm_claim_report(osv.osv):
_name = "crm.claim.report"
_auto = False
_description = "CRM Claim Report"
-
- def _get_data(self, cr, uid, ids, field_name, arg, context={}):
-
- """ @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of case and section Data’s IDs
- @param context: A standard dictionary for contextual values """
-
- res = {}
- state_perc = 0.0
- avg_ans = 0.0
-
- for case in self.browse(cr, uid, ids, context):
- if field_name != 'avg_answers':
- state = field_name[5:]
- cr.execute("select count(*) from crm_opportunity where \
- section_id =%s and state='%s'"%(case.section_id.id, state))
- state_cases = cr.fetchone()[0]
- perc_state = (state_cases / float(case.nbr)) * 100
-
- res[case.id] = perc_state
- else:
- model_name = self._name.split('report.')
- if len(model_name) < 2:
- res[case.id] = 0.0
- else:
- model_name = model_name[1]
-
- cr.execute("select count(*) from crm_case_log l, ir_model m \
- where l.model_id=m.id and m.model = '%s'" , model_name)
- logs = cr.fetchone()[0]
-
- avg_ans = logs / case.nbr
- res[case.id] = avg_ans
-
- return res
_columns = {
'name': fields.char('Year', size=64, required=False, readonly=True),
@@ -88,9 +52,6 @@ class crm_claim_report(osv.osv):
'section_id':fields.many2one('crm.case.section', 'Section', readonly=True),
'nbr': fields.integer('# of Cases', readonly=True),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
- 'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"),
- 'perc_done': fields.function(_get_data, string='%Done', method=True, type="float"),
- 'perc_cancel': fields.function(_get_data, string='%Cancel', method=True, type="float"),
'month':fields.selection([('01', 'January'), ('02', 'February'), \
('03', 'March'), ('04', 'April'),\
('05', 'May'), ('06', 'June'), \
@@ -137,9 +98,6 @@ class crm_claim_report(osv.osv):
c.company_id,
c.categ_id,
count(*) as nbr,
- 0 as avg_answers,
- 0.0 as perc_done,
- 0.0 as perc_cancel,
c.priority as priority,
c.type_id as type_id,
date_trunc('day',c.create_date) as create_date,
diff --git a/addons/crm_fundraising/crm_fundraising_view.xml b/addons/crm_fundraising/crm_fundraising_view.xml
index b671b15f3dc..22a437e4142 100644
--- a/addons/crm_fundraising/crm_fundraising_view.xml
+++ b/addons/crm_fundraising/crm_fundraising_view.xml
@@ -291,7 +291,7 @@
diff --git a/addons/crm_fundraising/report/crm_fundraising_report.py b/addons/crm_fundraising/report/crm_fundraising_report.py
index 5c19689257c..8ab9e0f94be 100644
--- a/addons/crm_fundraising/report/crm_fundraising_report.py
+++ b/addons/crm_fundraising/report/crm_fundraising_report.py
@@ -36,42 +36,6 @@ class crm_fundraising_report(osv.osv):
_name = "crm.fundraising.report"
_auto = False
_description = "CRM Fundraising Report"
-
- def _get_data(self, cr, uid, ids, field_name, arg, context={}):
-
- """ @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of case and section Data’s IDs
- @param context: A standard dictionary for contextual values """
-
- res = {}
- state_perc = 0.0
- avg_ans = 0.0
-
- for case in self.browse(cr, uid, ids, context):
- if field_name != 'avg_answers':
- state = field_name[5:]
- cr.execute("select count(*) from crm_opportunity where \
- section_id =%s and state='%s'"%(case.section_id.id, state))
- state_cases = cr.fetchone()[0]
- perc_state = (state_cases / float(case.nbr)) * 100
-
- res[case.id] = perc_state
- else:
- model_name = self._name.split('report.')
- if len(model_name) < 2:
- res[case.id] = 0.0
- else:
- model_name = model_name[1]
-
- cr.execute("select count(*) from crm_case_log l, ir_model m \
- where l.model_id=m.id and m.model = '%s'" , model_name)
- logs = cr.fetchone()[0]
-
- avg_ans = logs / case.nbr
- res[case.id] = avg_ans
-
- return res
_columns = {
'name': fields.char('Year', size=64, required=False, readonly=True),
@@ -79,9 +43,6 @@ class crm_fundraising_report(osv.osv):
'section_id':fields.many2one('crm.case.section', 'Section', readonly=True),
'nbr': fields.integer('# of Cases', readonly=True),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
- 'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"),
- 'perc_done': fields.function(_get_data, string='%Done', method=True, type="float"),
- 'perc_cancel': fields.function(_get_data, string='%Cancel', method=True, type="float"),
'month':fields.selection([('01', 'January'), ('02', 'February'), \
('03', 'March'), ('04', 'April'),\
('05', 'May'), ('06', 'June'), \
@@ -123,9 +84,6 @@ class crm_fundraising_report(osv.osv):
c.company_id,
c.partner_id,
count(*) as nbr,
- 0 as avg_answers,
- 0.0 as perc_done,
- 0.0 as perc_cancel,
date_trunc('day',c.create_date) as create_date,
sum(planned_revenue) as amount_revenue,
sum(planned_revenue*probability)::decimal(16,2) as amount_revenue_prob,
diff --git a/addons/crm_helpdesk/crm_helpdesk_demo.xml b/addons/crm_helpdesk/crm_helpdesk_demo.xml
index 9953d07dd92..fd31bb4c8fb 100644
--- a/addons/crm_helpdesk/crm_helpdesk_demo.xml
+++ b/addons/crm_helpdesk/crm_helpdesk_demo.xml
@@ -1,6 +1,61 @@
-
+
+
+
+
+
+
+
+ 3
+ draft
+
+ 2010-07-04 11:10:36
+ Download old version of OpenERP?
+
+
-
-
+
+
+
+
+
+
+ 3
+ draft
+
+ 2010-07-12 11:12:09
+ Can not able to connect to Server
+
+
+
+
+
+
+
+
+
+ 2
+ draft
+
+ 2010-07-12 11:13:10
+ Documentation for CRM?
+
+
+
+
+
+
+
+
+
+
+
+ 3
+ draft
+ 2010-07-12 11:15:17
+ How to create a new module
+
+
+
+
\ No newline at end of file
diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml
index 9fb6b673eb2..f91da940991 100644
--- a/addons/crm_helpdesk/crm_helpdesk_view.xml
+++ b/addons/crm_helpdesk/crm_helpdesk_view.xml
@@ -66,8 +66,7 @@
-
+
@@ -250,7 +249,7 @@
diff --git a/addons/crm_helpdesk/report/crm_helpdesk_report.py b/addons/crm_helpdesk/report/crm_helpdesk_report.py
index cf2578ddfaf..631e03699f2 100644
--- a/addons/crm_helpdesk/report/crm_helpdesk_report.py
+++ b/addons/crm_helpdesk/report/crm_helpdesk_report.py
@@ -38,51 +38,12 @@ class crm_helpdesk_report(osv.osv):
_description = "Helpdesk report after Sales Services"
_auto = False
- def _get_data(self, cr, uid, ids, field_name, arg, context={}):
-
- """ @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of case and section Data’s IDs
- @param context: A standard dictionary for contextual values """
-
- res = {}
- state_perc = 0.0
- avg_ans = 0.0
-
- for case in self.browse(cr, uid, ids, context):
- if field_name != 'avg_answers':
- state = field_name[5:]
- cr.execute("select count(*) from crm_opportunity where \
- section_id =%s and state='%s'"%(case.section_id.id, state))
- state_cases = cr.fetchone()[0]
- perc_state = (state_cases / float(case.nbr)) * 100
-
- res[case.id] = perc_state
- else:
- model_name = self._name.split('report.')
- if len(model_name) < 2:
- res[case.id] = 0.0
- else:
- model_name = model_name[1]
-
- cr.execute("select count(*) from crm_case_log l, ir_model m \
- where l.model_id=m.id and m.model = '%s'" , model_name)
- logs = cr.fetchone()[0]
-
- avg_ans = logs / case.nbr
- res[case.id] = avg_ans
-
- return res
-
_columns = {
'name': fields.char('Year', size=64, required=False, readonly=True),
'user_id':fields.many2one('res.users', 'User', readonly=True),
'section_id':fields.many2one('crm.case.section', 'Section', readonly=True),
'nbr': fields.integer('# of Cases', readonly=True),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
- 'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"),
- 'perc_done': fields.function(_get_data, string='%Done', method=True, type="float"),
- 'perc_cancel': fields.function(_get_data, string='%Cancel', method=True, type="float"),
'month':fields.selection([('01', 'January'), ('02', 'February'), \
('03', 'March'), ('04', 'April'),\
('05', 'May'), ('06', 'June'), \
@@ -122,9 +83,6 @@ class crm_helpdesk_report(osv.osv):
c.priority,
c.date_deadline,
count(*) as nbr,
- 0 as avg_answers,
- 0.0 as perc_done,
- 0.0 as perc_cancel,
to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
from
crm_helpdesk c
diff --git a/addons/delivery/__init__.py b/addons/delivery/__init__.py
index 850b14fb7eb..1a504ed97c3 100644
--- a/addons/delivery/__init__.py
+++ b/addons/delivery/__init__.py
@@ -22,6 +22,7 @@
import delivery
import partner
import wizard
+import report
import sale
import stock
diff --git a/addons/delivery/__openerp__.py b/addons/delivery/__openerp__.py
index 9cdc402ae56..b5def0592c6 100644
--- a/addons/delivery/__openerp__.py
+++ b/addons/delivery/__openerp__.py
@@ -35,6 +35,7 @@
'update_xml': [
'security/ir.model.access.csv',
'wizard/delivery_sale_order_view.xml',
+ 'delivery_report.xml',
'delivery_view.xml',
'partner_view.xml'
],
diff --git a/addons/sale_delivery_report/sale_delivery_report.xml b/addons/delivery/delivery_report.xml
similarity index 79%
rename from addons/sale_delivery_report/sale_delivery_report.xml
rename to addons/delivery/delivery_report.xml
index 3ba1beeb960..14c1d241131 100644
--- a/addons/sale_delivery_report/sale_delivery_report.xml
+++ b/addons/delivery/delivery_report.xml
@@ -6,7 +6,7 @@
id="report_shipping"
model="stock.picking"
name="sale.shipping"
- rml="sale_delivery_report/report/shipping.rml"
+ rml="delivery/report/shipping.rml"
string="Delivery order"/>
diff --git a/addons/sale_delivery_report/report/__init__.py b/addons/delivery/report/__init__.py
similarity index 100%
rename from addons/sale_delivery_report/report/__init__.py
rename to addons/delivery/report/__init__.py
diff --git a/addons/sale_delivery_report/report/shipping.py b/addons/delivery/report/shipping.py
similarity index 100%
rename from addons/sale_delivery_report/report/shipping.py
rename to addons/delivery/report/shipping.py
diff --git a/addons/sale_delivery_report/report/shipping.rml b/addons/delivery/report/shipping.rml
similarity index 100%
rename from addons/sale_delivery_report/report/shipping.rml
rename to addons/delivery/report/shipping.rml
diff --git a/addons/hr_attendance/__openerp__.py b/addons/hr_attendance/__openerp__.py
index 1e40f35891b..e31773fb314 100644
--- a/addons/hr_attendance/__openerp__.py
+++ b/addons/hr_attendance/__openerp__.py
@@ -33,6 +33,7 @@
'depends': ['base', 'hr'],
'update_xml': [
'security/hr_security.xml',
+ 'security/ir.model.access.csv',
'hr_attendance_view.xml',
'hr_attendance_wizard.xml',
'hr_attendance_report.xml',
diff --git a/addons/hr_attendance/security/ir.model.access.csv b/addons/hr_attendance/security/ir.model.access.csv
index c96ceff4c45..ca7faa5c6f8 100644
--- a/addons/hr_attendance/security/ir.model.access.csv
+++ b/addons/hr_attendance/security/ir.model.access.csv
@@ -2,5 +2,5 @@
"access_hr_action_reason_employee","hr action reason employee","model_hr_action_reason","hr_attendance.group_hr_attendance",1,0,0,0
"access_hr_action_reason_employee","hr action reason employee","model_hr_action_reason","hr.group_hr_manager",1,1,1,1
"access_hr_attendance_employee","hr attendance employee","model_hr_attendance","hr_attendance.group_hr_attendance",1,1,1,1
-"access_hr_attendance_employee","hr employee attendance sign in out","hr.model_hr_employee","hr_attendance.group_hr_attendance",1,0,0,0
+"access_hr_employee_attendance","hr employee attendance sign in out","hr.model_hr_employee","hr_attendance.group_hr_attendance",1,0,0,0
"access_hr_attendance_resource","hr resource attendance sign in out","resource.model_resource_resource","hr_attendance.group_hr_attendance",1,0,0,0
diff --git a/addons/hr_recruitment/report/hr_recruitment_report.py b/addons/hr_recruitment/report/hr_recruitment_report.py
index 7c867247cd0..62011b21a04 100644
--- a/addons/hr_recruitment/report/hr_recruitment_report.py
+++ b/addons/hr_recruitment/report/hr_recruitment_report.py
@@ -50,7 +50,7 @@ class hr_recruitment_report(osv.osv):
for case in self.browse(cr, uid, ids, context):
if field_name != 'avg_answers':
state = field_name[5:]
- cr.execute("select count(*) from crm_opportunity where \
+ cr.execute("select count(*) from crm_lead where \
section_id =%s and state='%s'"%(case.section_id.id, state))
state_cases = cr.fetchone()[0]
perc_state = (state_cases / float(case.nbr)) * 100
diff --git a/addons/hr_timesheet/security/ir.model.access.csv b/addons/hr_timesheet/security/ir.model.access.csv
index 3a5c509981e..2ae7f12464a 100644
--- a/addons/hr_timesheet/security/ir.model.access.csv
+++ b/addons/hr_timesheet/security/ir.model.access.csv
@@ -2,3 +2,4 @@
"access_hr_analytic_timesheet","hr.analytic.timesheet","model_hr_analytic_timesheet","hr.group_hr_user",1,1,1,1
"access_hr_account_analytic_line","account.account.analytic.line","account.model_account_analytic_line","hr.group_hr_user",1,1,1,0
"access_account_analytic_journal","account.account.analytic.journal","account.model_account_analytic_journal","hr.group_hr_user",1,0,0,0
+"access_product_product_user","product.product user","product.model_product_product","hr.group_hr_user",1,0,0,0
diff --git a/addons/hr_timesheet/test/test_hr_timesheet.yml b/addons/hr_timesheet/test/test_hr_timesheet.yml
index 2a94e440265..2b5a924805a 100644
--- a/addons/hr_timesheet/test/test_hr_timesheet.yml
+++ b/addons/hr_timesheet/test/test_hr_timesheet.yml
@@ -99,25 +99,11 @@
self.check_state(cr, uid, [ref("hr_employee_fracline1")], {"active_ids": [ref("hr_timesheet.menu_hr_timesheet_sign_in")]})
- |
I select start date and Perform start work on project.
--
- !record {model: hr.sign.in.project, id: hr_sign_in_project_francline0}:
- emp_id: 'hr_employee_fracline1'
- name: Francline
- server_date: '2010-06-08 19:50:54'
- state: absent
-
-
-- |
- I click on "Start Working" button of this wizard to start work on Project.
-
!python {model: hr.sign.in.project}: |
uid = ref('res_users_user0')
- obj_attendance = self.pool.get('hr.employee')
- emp_id = obj_attendance.search(cr, uid, [('user_id', '=', uid), ('name', '=', "Francline")])
- if emp_id:
- employee = obj_attendance.read(cr, uid, emp_id)[0]
- self.write(cr, uid, [ref('hr_sign_in_project_francline0')], {'name': employee['name'], 'state': employee['state'], 'emp_id': emp_id[0]})
- #self.sign_in_result(cr, uid, [ref("hr_sign_in_project_francline0")], context)
+ new_id = self.create(cr, uid, {'emp_id': 'hr_employee_fracline1', 'name': 'Francline', 'server_date': '2010-06-08 19:50:54', 'state': 'absent'})
+ self.sign_in_result(cr, uid, [new_id], context)
- |
My work is done and I want to stop work.for that I click on "Sign In/Sign Out" button of "Sign In/Sign Out by Project" wizard.
@@ -125,33 +111,31 @@
-
!python {model: hr.sign.in.project}: |
uid = ref('res_users_user0')
- self.check_state(cr, uid, [ref("hr_sign_in_project_francline0")], {"active_ids": [ref("hr_timesheet.menu_hr_timesheet_sign_in")]
+ ids = self.search(cr, uid, [('emp_id', '=', ref('hr_employee_fracline1')),('name', '=', 'Francline')])
+ self.check_state(cr, uid, ids, {"active_ids": [ref("hr_timesheet.menu_hr_timesheet_sign_in")]
})
- |
This will Open "hr sign out project" form. I select analytical project2 development account.
--
- !record {model: hr.sign.out.project, id: hr_sign_out_project_francline0}:
- account_id: account.analytic_project_2_development
- analytic_amount: 7.0
- date: '2010-05-25 16:40:00'
- date_start: '2010-06-05 16:37:00'
- info: Create Yaml for hr module
- name: Francline
- server_date: '2010-06-09 16:40:15'
- state: present
+-
+ For that I Creating a analytic account.
+-
+ !record {model: account.analytic.account, id: account_analytic_account_project0}:
+ company_id: base.main_company
+ name: Project2
+ parent_id: account.analytic_root
+ quantity_max: 0.0
+ state: open
- |
My work for this project is over and I stop work by click on "Stop Work" button of this wizard.
-
!python {model: hr.sign.out.project}: |
+ import time
+ from datetime import datetime, date, timedelta
uid = ref('res_users_user0')
- obj_attendance = self.pool.get('hr.employee')
- emp_id = obj_attendance.search(cr, uid, [('user_id', '=', uid), ('name', '=', "Francline")])
- if emp_id:
- employee = obj_attendance.read(cr, uid, emp_id)[0]
- self.write(cr, uid, [ref('hr_sign_out_project_francline0')], {'name': employee['name'], 'state': employee['state'], 'emp_id': emp_id[0]})
- #self.sign_out_result_end(cr, uid, [ref('hr_sign_out_project_francline0')])
+ new_id = self.create(cr, uid, {'account_id': ref('account_analytic_account_project0'), 'analytic_amount': 7.0, 'date': (datetime.now()+timedelta(1)).strftime('%Y-%m-%d %H:%M:%S'), 'date_start': '2010-06-05 16:37:00', 'info': 'Create Yaml for hr module', 'name': 'Francline', 'server_date': '2010-06-09 16:40:15', 'state': 'absent'})
+ self.sign_out_result_end(cr, uid, [new_id], context)
- |
I can see employee timesheet for particular month using "Employee Timesheet" report.
diff --git a/addons/idea/idea_view.xml b/addons/idea/idea_view.xml
index 0160d228248..b5016d5679c 100644
--- a/addons/idea/idea_view.xml
+++ b/addons/idea/idea_view.xml
@@ -1,6 +1,26 @@
+
+
+ idea.category.search
+ idea.category
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -41,6 +61,7 @@
idea.categoryformtree,form
+
@@ -98,18 +100,16 @@
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -132,8 +132,8 @@
+
- [[repeatIn(objects,'o')]][[ setLang(o.partner_id.lang) ]]
@@ -155,13 +155,13 @@
[[ repeatIn(o.dest_address_id and [o.dest_address_id] or [],'addr') ]]Shipping address :
- [[ o.partner_id.name ]] [[ o.partner_id.title or '' ]]
- [[ addr.title or '' ]] [[ addr.name ]]
- [[ addr.street ]]
- [[ addr.street2 or '' ]]
- [[ addr.zip or '' ]] [[ addr.city or '' ]]
- [[ addr.state_id and addr.state_id.name or '' ]]
- [[ addr.country_id and addr.country_id.name or '' ]]
+ [[ o.partner_id.title or '' ]] [[ o.partner_id.name ]]
+ [[ addr.title or '' ]] [[ addr.name ]]
+ [[ addr.street ]]
+ [[ addr.street2 or '' ]]
+ [[ addr.zip or '' ]] [[ addr.city or '' ]]
+ [[ addr.state_id and addr.state_id.name or '' ]]
+ [[ addr.country_id and addr.country_id.name or '' ]]
@@ -175,19 +175,19 @@
- [[ o.partner_id.name ]] [[ o.partner_id.title or '' ]]
+ [[ o.partner_id.title or '' ]] [[ o.partner_id.name ]][[ o.partner_address_id.title or '' ]] [[ o.partner_address_id.name ]][[ o.partner_address_id.street ]][[ o.partner_address_id.street2 or '' ]][[ o.partner_address_id.zip or '' ]] [[ o.partner_address_id.city or '' ]][[ o.partner_address_id.state_id and o.partner_address_id.state_id.name or '' ]][[ o.partner_address_id.country_id and o.partner_address_id.country_id.name or '' ]]
-
+
- Tél. : [[ o.partner_address_id.phone or '' ]]
- Fax : [[ o.partner_address_id.fax or '' ]]
- TVA : [[ o.partner_id.vat or '' ]]
+ Tél. : [[ o.partner_address_id.phone or '' ]]
+ Fax : [[ o.partner_address_id.fax or '' ]]
+ TVA : [[ o.partner_id.vat or '' ]]
@@ -240,7 +240,7 @@
-
+
Description
@@ -258,13 +258,13 @@
Unit Price
- Net Price
+ Net Price
[[repeatIn(o.order_line,'line')]]
-
+
[[ line.name ]]
@@ -287,6 +287,9 @@
[[ formatLang(line.price_subtotal ) ]]
+
+ [[ o.pricelist_id.currency_id.name ]]
+
@@ -322,10 +325,15 @@
+
+
+
+
+
-
+
diff --git a/addons/purchase_requisition/test/purchase_requisition_exclusive.yml b/addons/purchase_requisition/test/purchase_requisition_exclusive.yml
index 84a6bb0d68f..32c47836f23 100644
--- a/addons/purchase_requisition/test/purchase_requisition_exclusive.yml
+++ b/addons/purchase_requisition/test/purchase_requisition_exclusive.yml
@@ -50,7 +50,7 @@
-
!workflow {model: sale.order, action: order_confirm, ref: sale_order_testtender1}
-
- I launch he scheduler to compute all procurements, and planify all requisitions orders.
+ I launch the scheduler to compute all procurements, and planify all requisitions orders.
-
!python {model: procurement.order.compute.all}: |
proc_obj = self.pool.get('procurement.order')
@@ -109,4 +109,4 @@
ids =req_obj.search(cr, uid, [('origin','=','Laptop ACER1')])
purchase_id= self.search(cr, uid, [('partner_id','=',partner_id),('requisition_id','in',ids)])[0]
state=self.browse(cr,uid,purchase_id).state
- assert (state=='cancel')
\ No newline at end of file
+ assert (state=='cancel')
diff --git a/addons/sale/report/order.rml b/addons/sale/report/order.rml
index 1b1256cee19..5f535a05371 100644
--- a/addons/sale/report/order.rml
+++ b/addons/sale/report/order.rml
@@ -68,6 +68,7 @@
+
@@ -91,14 +92,14 @@
-
-
+
+
-
-
-
-
+
+
+
+
@@ -108,8 +109,8 @@
-
-
+
+
@@ -123,10 +124,10 @@
-
+
+
- [[repeatIn(objects,'o')]][[ setLang(o.partner_id.lang) ]]
@@ -217,7 +218,7 @@
-
+