[MERGE]: Merge with lp:openobject-trunk-dev-addons2

bzr revid: ksa@tinyerp.co.in-20101028051032-whk92x9v2223xd7h
This commit is contained in:
ksa (Open ERP)
2010-10-28 10:40:32 +05:30
39 changed files with 236 additions and 91 deletions
+4 -4
View File
@@ -241,14 +241,14 @@ class account_cash_statement(osv.osv):
def create(self, cr, uid, vals, context=None):
if 'journal_id' not in vals:
raise osv.except_osv('Error', _('You cannot create a bank or cash register without a journal!'))
raise osv.except_osv(_('Error'), _('You cannot create a bank or cash register without a journal!'))
sql = [
('journal_id', '=', vals.get('journal_id', False)),
('state', '=', 'open')
]
open_jrnl = self.search(cr, uid, sql)
if open_jrnl:
raise osv.except_osv('Error', _('You can not have two open register for the same journal'))
raise osv.except_osv(_('Error'), _('You can not have two open register for the same journal'))
if self.pool.get('account.journal').browse(cr, uid, vals['journal_id']).type == 'cash':
open_close = self._get_cash_open_close_box_lines(cr, uid, context)
@@ -328,8 +328,8 @@ class account_cash_statement(osv.osv):
statement_pool = self.pool.get('account.bank.statement')
for statement in statement_pool.browse(cr, uid, ids, context=context):
vals = {}
if not self._user_allow(cr, uid, statement.id, context=context):
force_allow = context.get('force_allow',False)
if not force_allow and not self._user_allow(cr, uid, statement.id, context=context):
raise osv.except_osv(_('Error !'), _('User %s does not have rights to access %s journal !' % (statement.user_id.name, statement.journal_id.name)))
if statement.name and statement.name == '/':
+7
View File
@@ -5617,6 +5617,7 @@ msgstr ""
#: code:addons/account/invoice.py:0
#: code:addons/account/wizard/account_invoice_refund.py:0
#: code:addons/account/wizard/account_use_model.py:0
#: code:addons/account/account_cash_statement.py:0
#, python-format
msgid "Error !"
msgstr ""
@@ -6138,6 +6139,12 @@ msgstr ""
msgid "You can not have two open register for the same journal"
msgstr ""
#. module: account
#: code:addons/account/account_cash_statement.py:0
#, python-format
msgid "You cannot create a bank or cash register without a journal!"
msgstr ""
#. module: account
#: view:account.payment.term.line:0
msgid " day of the month= -1"
@@ -26,7 +26,7 @@
I clicked on Open CashBox button to open the cashbox
-
!python {model: account.bank.statement}: |
self.button_open(cr, uid, [ref("account_bank_statement_1")], {"lang": "en_US", "tz": False, "active_model": "account.bank.statement", "active_ids": [ref("account_bank_statement_1")], "active_id": ref("account_bank_statement_1"), })
self.button_open(cr, uid, [ref("account_bank_statement_1")], {"force_allow":True, "lang": "en_US", "tz": False, "active_model": "account.bank.statement", "active_ids": [ref("account_bank_statement_1")], "active_id": ref("account_bank_statement_1"), })
-
I check that now bank statement is in the "Open" state
+49
View File
@@ -307,6 +307,54 @@ msgstr ""
msgid "The Buyer \"%s\" has no Invoice Address."
msgstr ""
#. module: auction
#: code:addons/auction/wizard/auction_pay_buy.py:0
#, python-format
msgid "Payment aborted !"
msgstr ""
#. module: auction
#: code:addons/auction/wizard/auction_pay_buy.py:0
#, python-format
msgid "You should pay all the total: "%.2f" are missing to accomplish the payment."
msgstr ""
#. module: auction
#: code:addons/auction/wizard/auction_pay_buy.py:0
#, python-format
msgid "Error!"
msgstr ""
#. module: auction
#: code:addons/auction/wizard/auction_catalog_flagey_report.py:0
#, python-format
msgid "No Lots belong to this Auction Date"
msgstr ""
#. module: auction
#: code:addons/auction/wizard/auction_lots_numerotate.py:0
#, python-format
msgid "This record does not exist !"
msgstr ""
#. module: auction
#: code:addons/auction/wizard/auction_lots_numerotate.py:0
#, python-format
msgid "This lot does not exist !"
msgstr ""
#. module: auction
#: code:addons/auction/wizard/auction_lots_buyer_map.py:0
#, python-format
msgid "No buyer is set for this lot."
msgstr ""
#. module: auction
#: code:addons/auction/wizard/auction_pay_buy.py:0
#, python-format
msgid "No auction date for "%s": Please set one."
msgstr ""
#. module: auction
#: view:auction.dates:0
msgid "Commissions"
@@ -659,6 +707,7 @@ msgstr ""
#. module: auction
#: code:addons/auction/wizard/auction_lots_invoice.py:0
#: code:addons/auction/wizard/auction_lots_numerotate.py:0
#, python-format
msgid "UserError"
msgstr ""
+1 -1
View File
@@ -44,7 +44,7 @@ class buyer_form_report(report_sxw.rml_parse):
taxes.append(lot.author_right)
if lot.auction_id:
taxes += lot.auction_id.buyer_costs
tax=self.pool.get('account.tax').compute(self.cr, self.uid, taxes, lot.obj_price, 1)
tax=self.pool.get('account.tax').compute_all(self.cr, self.uid, taxes, lot.obj_price, 1)
for t in tax:
amount+=t['amount']
return amount
+3 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:date="http://exslt.org/dates-and-times"extension-element-prefixes="date">
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date">
<xsl:template match="report">
@@ -30,7 +30,7 @@
<pageGraphics>
<!-- <image x="1.0cm" y="27.3cm" file="/home/tiny/terp/4.2/server/bin/addons/auction/report/images/flagey_head.png"/>-->
- <image x="1.0cm" y="26.1cm" file="flagey_logo.jpg"/>
<drawRightString x="19.0cm" y="26.6cm"> Vente antiquitée le <xsl:value-of select="date:day-name(catalog/AuctionDate1)"/> &#160;<xsl:value-of select="date:day-in-month(catalog/AuctionDate1)"/>&#160;<xsl:value-of select="date:month-name(catalog/AuctionDate1)"/> &#160;<xsl:value-of select="date:year(catalog/AuctionDate1)"/></drawRightString>
<drawRightString x="19.0cm" y="26.6cm"> Antiques on sale <xsl:value-of select="date:day-name(catalog/AuctionDate1)"/> <xsl:value-of select="date:day-in-month(catalog/AuctionDate1)"/><xsl:value-of select="date:month-name(catalog/AuctionDate1)"/> <xsl:value-of select="date:year(catalog/AuctionDate1)"/></drawRightString>
<lineMode width="1mm"/>
<setFont name="Helvetica" size="26"/>
<!-- <drawString x="10mm" y="27.8cm">Flagey.com</drawString>-->
+2 -2
View File
@@ -35,7 +35,7 @@ class seller_form_report(report_sxw.rml_parse):
'sum_taxes': self.sum_taxes,
'sellerinfo' : self.seller_info,
'grand_total' : self.grand_seller_total,
})
})
def sum_taxes(self, lot):
@@ -45,7 +45,7 @@ class seller_form_report(report_sxw.rml_parse):
taxes.append(lot.bord_vnd_id.tax_id)
elif lot.auction_id and lot.auction_id.seller_costs:
taxes += lot.auction_id.seller_costs
tax=self.pool.get('account.tax').compute(self.cr, self.uid, taxes, lot.obj_price, 1)
tax=self.pool.get('account.tax').compute_all(self.cr, self.uid, taxes, lot.obj_price, 1)
for t in tax:
amount+=t['amount']
return amount
@@ -21,6 +21,7 @@
from osv import osv, fields
import netsvc
from tools.translate import _
class auction_catalog_flagey(osv.osv_memory):
_name = 'auction.catalog.flagey'
@@ -57,7 +58,7 @@ class auction_catalog_flagey(osv.osv_memory):
v_ids = lots_obj.browse(cr, uid, v_lots)
for ab in v_ids:
if not ab.auction_id :
raise osv.except_osv('Error!','No Lots belong to this Auction Date')
raise osv.except_osv(_('Error!'), _('No Lots belong to this Auction Date'))
pass
def print_report(self, cr, uid, ids, context):
@@ -67,7 +67,7 @@ class wiz_auc_lots_buyer_map(osv.osv_memory):
lots_obj = self.pool.get('auction.lots')
for rec in lots_obj.browse(cr, uid, ids, context):
if (len(ids)==1) and (not rec.ach_uid and not rec.ach_login):
raise osv.except_osv('Error', 'No buyer is set for this lot.')
raise osv.except_osv(_('Error'), _('No buyer is set for this lot.'))
if not rec.ach_uid and rec.ach_login:
return {'ach_login': rec.ach_login}
return {}
@@ -99,7 +99,7 @@ class auction_lots_numerotate_per_lot(osv.osv_memory):
('lot_num','=',int(datas['lot_num']))])
found = [r for r in res if r in record_ids]
if len(found)==0:
raise osv.except_osv('UserError', 'This record does not exist !')
raise osv.except_osv(_('UserError'), _('This record does not exist !'))
lots_obj.write(cr, uid, found, {'obj_num':int(datas['obj_num'])} )
view_id = data_obj._get_id(cr, uid, 'auction', 'view_auction_numerotate')
if view_id:
@@ -125,7 +125,7 @@ class auction_lots_numerotate_per_lot(osv.osv_memory):
('lot_num','=',int(datas['lot_num']))])
found = [r for r in res if r in record_ids]
if len(found)==0:
raise osv.except_osv('UserError', 'This record does not exist !')
raise osv.except_osv(_('UserError'), _('This record does not exist !'))
lots_datas = lots_obj.read(cr, uid, found,
['obj_num', 'name', 'lot_est1',
'lot_est2', 'obj_desc'])
@@ -141,7 +141,7 @@ class auction_lots_numerotate_per_lot(osv.osv_memory):
('lot_num','=',int(datas['lot_num']))])
found = [r for r in res if r in record_ids]
if len(found)==0:
raise osv.except_osv('Error', 'This lot does not exist !')
raise osv.except_osv(_('Error'), _('This lot does not exist !'))
view_id = data_obj._get_id(cr, uid, 'auction', 'view_auction_lots_numerotate_second')
if view_id:
res_id = data_obj.browse(cr, uid, view_id, context=context).res_id
+2 -2
View File
@@ -76,14 +76,14 @@ class auction_pay_buy(osv.osv_memory):
for datas in self.read(cr, uid, ids):
if not abs(datas['total'] - (datas['amount'] + datas['amount2'] + datas['amount3'])) <0.01:
rest = datas['total'] - (datas['amount'] + datas['amount2'] + datas['amount3'])
raise osv.except_osv('Payment aborted !', 'You should pay all the total: "%.2f" are missing to accomplish the payment.' %(round(rest, 2)))
raise osv.except_osv(_('Payment aborted !'), _('You should pay all the total: "%.2f" are missing to accomplish the payment.') %(round(rest, 2)))
lots = lot_obj.browse(cr, uid, context['active_ids'], context)
for lot in lots:
if datas['buyer_id']:
lot_obj.write(cr, uid, [lot.id], {'ach_uid': datas['buyer_id']})
if not lot.auction_id:
raise osv.except_osv('Error !', 'No auction date for "%s": Please set one.'%(lot.name))
raise osv.except_osv(_('Error!'), _('No auction date for "%s": Please set one.') % (lot.name))
lot_obj.write(cr, uid, [lot.id], {'is_ok':True})
for st, stamount in [('statement_id1', 'amount'), ('statement_id2', 'amount2'), ('statement_id3', 'amount3')]:
+2 -2
View File
@@ -1089,9 +1089,9 @@ class calendar_event(osv.osv):
cr.execute("UPDATE %s set exrule=Null where id=%%s" % self._table,( event,))
elif datas.get('rrule_type') == 'custom':
if datas.get('interval', 0) < 0:
raise osv.except_osv('Warning!', 'Interval can not be Negative')
raise osv.except_osv(_('Warning!'), _('Interval can not be Negative'))
if datas.get('count', 0) < 0:
raise osv.except_osv('Warning!', 'Count can not be Negative')
raise osv.except_osv(_('Warning!'), _('Count can not be Negative'))
rrule_custom = self.compute_rule_string(cr, uid, datas, \
context=context)
result[event] = rrule_custom
@@ -146,6 +146,24 @@ msgstr ""
msgid "Warning !"
msgstr ""
#. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:0
#, python-format
msgid "Warning!"
msgstr ""
#. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:0
#, python-format
msgid "Interval can not be Negative"
msgstr ""
#. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:0
#, python-format
msgid "Count can not be Negative"
msgstr ""
#. module: base_calendar
#: selection:base.calendar.set.exrule,week_list:0
#: selection:calendar.event,week_list:0
@@ -27,8 +27,8 @@
I will search for one of the recurrent event and count the number of events
-
!python {model: calendar.event}: |
ids = self.search(cr, uid, [('date', '>=', '2010-05-01 00:00:00'), ('date', '<=', '2010-05-31 00:00:00')] )
assert len(ids)
ids = self.search(cr, uid, [('date', '>=', '2010-04-30 16:00:00'), ('date', '<=', '2010-05-31 00:00:00')] )
assert len(ids) == 10
- |
Now I will make All day event and test it
-
+1 -2
View File
@@ -38,8 +38,7 @@ from tools.safe_eval import safe_eval as eval
try:
import vobject
except ImportError:
raise osv.except_osv('vobject Import Error!','Please install python-vobject \
from http://vobject.skyhouseconsulting.com/')
raise osv.except_osv(_('vobject Import Error!'), _('Please install python-vobject from http://vobject.skyhouseconsulting.com/'))
# O-1 Optional and can come only once
# O-n Optional and can come more than once
+12
View File
@@ -61,6 +61,18 @@ msgstr ""
msgid "Warning !"
msgstr ""
#. module: caldav
#: code:addons/caldav/calendar.py:0
#, python-format
msgid "vobject Import Error!"
msgstr ""
#. module: caldav
#: code:addons/caldav/calendar.py:0
#, python-format
msgid "Please install python-vobject from http://vobject.skyhouseconsulting.com/"
msgstr ""
#. module: caldav
#: field:basic.calendar,has_webcal:0
msgid "WebCal"
+1 -1
View File
@@ -40,7 +40,7 @@
'partner_view.xml'
],
'demo_xml': ['delivery_demo.xml'],
'test':['test/delivery_test.yml','test/delivery_report.yml'],
'test':['test/delivery_report.yml'],
'installable': True,
'active': False,
'certificate': '0033981912253',
@@ -123,3 +123,14 @@ msgstr ""
msgid "Name"
msgstr ""
#. module: document_webdav
#: code:addons/document_webdav/webdav.py:0
#, python-format
msgid "PyWebDAV Import Error!"
msgstr ""
#. module: document_webdav
#: code:addons/document_webdav/webdav.py:0
#, python-format
msgid "Please install PyWebDAV from http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-0.9.4.tar.gz&can=2&q=/"
msgstr ""
+2 -2
View File
@@ -27,14 +27,14 @@ from xml.dom.minicompat import StringTypes
import urlparse
import urllib
from osv import osv
from tools.translate import _
try:
from DAV import utils
from DAV.propfind import PROPFIND
from DAV.report import REPORT
except ImportError:
raise osv.except_osv('PyWebDAV Import Error!','Please install PyWebDAV \
from http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-0.9.4.tar.gz&can=2&q=/')
raise osv.except_osv(_('PyWebDAV Import Error!'), _('Please install PyWebDAV from http://code.google.com/p/pywebdav/downloads/detail?name=PyWebDAV-0.9.4.tar.gz&can=2&q=/'))
import tools
+11
View File
@@ -190,6 +190,17 @@ msgid "Your bank BVR number should be of the form 0X-XXX-X!\n' \\n"
" 'information for the invoice:\n%s"
msgstr ""
#. module: l10n_ch
#: code:addons/l10n_ch/wizard/create_dta.py:0
#, python-format
msgid "No address defined \n' \\n"
" 'for the partner: ' + pline.partner_id.name + '\n' \\n"
" 'on line: ' + pline.name))\n"
"\n"
" if pline.order_id.date_scheduled:\n"
" date_value = datetime.strptime(pline.order_id.date_scheduled, '%Y-%m-%d"
msgstr ""
#. module: l10n_ch
#: view:bvr.invoices.report:0
#: view:bvr.report:0
+3 -3
View File
@@ -464,9 +464,9 @@ def _create_dta(obj, cr, uid, data, context=None):
v['partner_city']= ''
v['partner_zip']= ''
v['partner_country']= ''
raise osv.except_osv('Error', 'No address defined \n' \
raise osv.except_osv(_('Error'), _('No address defined \n' \
'for the partner: ' + pline.partner_id.name + '\n' \
'on line: ' + pline.name)
'on line: ' + pline.name))
if pline.order_id.date_scheduled:
date_value = datetime.strptime(pline.order_id.date_scheduled, '%Y-%m-%d')
@@ -613,4 +613,4 @@ class create_dta_wizard(osv.osv_memory):
create_dta_wizard()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -31,6 +31,18 @@ msgstr ""
msgid "The current step for this item has no email or report to preview."
msgstr ""
#. module: marketing_campaign
#: code:addons/marketing_campaign/marketing_campaign.py:0
#, python-format
msgid "Operation not supported"
msgstr ""
#. module: marketing_campaign
#: code:addons/marketing_campaign/marketing_campaign.py:0
#, python-format
msgid "Sorry, campaign duplication is not supported at the moment."
msgstr ""
#. module: marketing_campaign
#: code:addons/marketing_campaign/marketing_campaign.py:0
#, python-format
@@ -205,7 +205,7 @@ Normal - the campaign runs normally and automatically sends all emails and repor
# prevent duplication until the server properly duplicates several levels of nested o2m
def copy(self, cr, uid, id, default=None, context=None):
raise osv.except_osv("Operation not supported", "Sorry, campaign duplication is not supported at the moment.")
raise osv.except_osv(_("Operation not supported"), _("Sorry, campaign duplication is not supported at the moment."))
marketing_campaign()
-2
View File
@@ -19,8 +19,6 @@
#
##############################################################################
from itertools import groupby
from operator import itemgetter
from datetime import datetime
from osv import osv, fields
from tools.translate import _
@@ -21,4 +21,9 @@
"access_account_tax_manager","account.tax manager","account.model_account_tax","mrp.group_mrp_manager",1,0,0,0
"access_mrp_repair_fee_user_mrp","MRP Repair Fee user mrp","model_mrp_repair_fee","mrp.group_mrp_user",1,1,1,1
"access_mrp_repair_fee_mgr","MRP Repair Fee mgr","model_mrp_repair_fee","mrp.group_mrp_manager",1,0,0,0
"access_account_invoice_user","account.invoice","account.model_account_invoice","mrp.group_mrp_user",1,1,1,1
"access_account_invoice_manager","account.invoice manager","account.model_account_invoice","mrp.group_mrp_manager",1,0,0,0
"access_account_invoice_line_user","account.invoice.line","account.model_account_invoice_line","mrp.group_mrp_user",1,1,1,1
"access_account_invoice_line_manager","account.invoice.line manager","account.model_account_invoice_line","mrp.group_mrp_manager",1,0,0,0
"access_account_journal_user","account.journal","account.model_account_journal","mrp.group_mrp_user",1,1,1,1
"access_account_journal_manager","account.journal manager","account.model_account_journal","mrp.group_mrp_manager",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
21 access_account_tax_manager account.tax manager account.model_account_tax mrp.group_mrp_manager 1 0 0 0
22 access_mrp_repair_fee_user_mrp MRP Repair Fee user mrp model_mrp_repair_fee mrp.group_mrp_user 1 1 1 1
23 access_mrp_repair_fee_mgr MRP Repair Fee mgr model_mrp_repair_fee mrp.group_mrp_manager 1 0 0 0
24 access_account_invoice_user account.invoice account.model_account_invoice mrp.group_mrp_user 1 1 1 1
25 access_account_invoice_manager account.invoice manager account.model_account_invoice mrp.group_mrp_manager 1 0 0 0
26 access_account_invoice_line_user account.invoice.line account.model_account_invoice_line mrp.group_mrp_user 1 1 1 1
27 access_account_invoice_line_manager account.invoice.line manager account.model_account_invoice_line mrp.group_mrp_manager 1 0 0 0
28 access_account_journal_user account.journal account.model_account_journal mrp.group_mrp_user 1 1 1 1
29 access_account_journal_manager account.journal manager account.model_account_journal mrp.group_mrp_manager 1 0 0 0
+2 -2
View File
@@ -85,7 +85,7 @@
obj_lines = self.pool.get('account.invoice.line')
inv_obj = self.pool.get('account.invoice')
repair_id = self.browse(cr, uid, [ref('mrp_repair_rma0')], context=context)[0]
invoice_ids = inv_obj.search(cr, uid, [('partner_id', '=', repair_id.partner_invoice_id.id)])
invoice_ids = inv_obj.search(cr, uid, [('partner_id', '=', repair_id.partner_id.id)])
invoice_id = inv_obj.browse(cr, uid, invoice_ids)[0]
assert repair_id.partner_invoice_id.id == invoice_id.partner_id.id, "No invoice existing for the same partner"
assert repair_id.partner_id.id == invoice_id.partner_id.id, "No invoice existing for the same partner"
@@ -306,6 +306,12 @@ msgstr ""
msgid "No valid pricelist line found !"
msgstr ""
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_discount.py:0
#, python-format
msgid "No Order Lines"
msgstr ""
#. module: point_of_sale
#: report:pos.details:0
#: report:pos.lines:0
@@ -1754,6 +1760,7 @@ msgstr ""
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_payment.py:0
#: code:addons/point_of_sale/wizard/pos_discount.py:0
#, python-format
msgid "Error!"
msgstr ""
+1 -1
View File
@@ -49,7 +49,7 @@ class pos_discount(osv.osv_memory):
record_id = context and context.get('active_id', False) or False
order = self.pool.get('pos.order').browse(cr, uid, record_id, context=context)
if not order.lines:
raise osv.except_osv('Error!','No Order Lines ')
raise osv.except_osv(_('Error!'), _('No Order Lines'))
True
def apply_discount(self, cr, uid, ids, context=None):
"""
+5 -5
View File
@@ -134,7 +134,7 @@
-
Make a work task entry 'Training on OpenERP modules, models and classes' of 10 hours
-
!record {model: project.task, id: project_task_technicaltraining0}:
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
work_ids:
- date: '2010-05-31 15:04:22'
hours: 10.0
@@ -149,7 +149,7 @@
-
Make a work task entry 'Training on OpenERP xml views' of 10 hours
-
!record {model: project.task, id: project_task_technicaltraining0}:
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
work_ids:
- date: '2010-06-01 15:04:46'
hours: 10.0
@@ -164,7 +164,7 @@
-
Make a work task entry 'Training on workflows' of 10 hours
-
!record {model: project.task, id: project_task_technicaltraining0}:
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
work_ids:
- date: '2010-06-02 15:05:24'
hours: 10.0
@@ -200,7 +200,7 @@
-
Make a work task entry 'Training on reports and wizards' of 10 hours
-
!record {model: project.task, id: project_task_technicaltraining0}:
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
work_ids:
- date: '2010-05-31 15:08:40'
hours: 10.0
@@ -251,7 +251,7 @@
-
Make a work task entry 'Training on yml' of 5 hours
-
!record {model: project.task, id: project_task_technicaltraining0}:
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
work_ids:
- date: '2010-05-31 16:55:27'
hours: 5.0
+1
View File
@@ -32,6 +32,7 @@ class project_task(osv.osv):
# force inherit from project.project_task so that
# calendar.todo.active is masked oute
'active': base_project_task._columns['active'],
'date_deadline': base_project_task._columns['date_deadline'],
'write_date': fields.datetime('Write Date'),
'create_date': fields.datetime('Create Date', readonly=True),
'attendee_ids': fields.many2many('calendar.attendee', \
@@ -10,7 +10,7 @@
Create task 'Plan all projects'
-
!record {model: project.task, id: project_task_planallprojects0}:
date_deadline: '2010-06-07 12:00:00'
date_deadline: '2010-06-07'
date_end: '2010-06-04 14:00:00'
date_start: '2010-06-01 17:25:32'
name: Plan all projects
+34 -34
View File
@@ -80,42 +80,42 @@ class project_work(osv.osv):
vals_line = {}
context = kwargs.get('context', {})
if not context.get('no_analytic_entry',False):
obj_task = task_obj.browse(cr, uid, vals['task_id'])
result = self.get_user_related_details(cr, uid, vals.get('user_id', uid))
vals_line['name'] = '%s: %s' % (tools.ustr(obj_task.name), tools.ustr(vals['name']) or '/')
vals_line['user_id'] = vals['user_id']
vals_line['product_id'] = result['product_id']
vals_line['date'] = vals['date'][:10]
#calculate quantity based on employee's product's uom
vals_line['unit_amount'] = vals['hours']
obj_task = task_obj.browse(cr, uid, vals['task_id'])
result = self.get_user_related_details(cr, uid, vals.get('user_id', uid))
vals_line['name'] = '%s: %s' % (tools.ustr(obj_task.name), tools.ustr(vals['name']) or '/')
vals_line['user_id'] = vals['user_id']
vals_line['product_id'] = result['product_id']
vals_line['date'] = vals['date'][:10]
#calculate quantity based on employee's product's uom
vals_line['unit_amount'] = vals['hours']
default_uom = self.pool.get('res.users').browse(cr, uid, uid).company_id.project_time_mode_id.id
if result['product_uom_id'] != default_uom:
vals_line['unit_amount'] = uom_obj._compute_qty(cr, uid, default_uom, vals['hours'], result['product_uom_id'])
acc_id = obj_task.project_id and obj_task.project_id.analytic_account_id.id or False
if acc_id:
vals_line['account_id'] = acc_id
res = obj_timesheet.on_change_account_id(cr, uid, False, acc_id)
if res.get('value'):
vals_line.update(res['value'])
vals_line['general_account_id'] = result['general_account_id']
vals_line['journal_id'] = result['journal_id']
vals_line['amount'] = 0.0
vals_line['product_uom_id'] = result['product_uom_id']
amount = vals_line['unit_amount']
prod_id = vals_line['product_id']
unit = False
timeline_id = obj_timesheet.create(cr, uid, vals=vals_line, context=context)
default_uom = self.pool.get('res.users').browse(cr, uid, uid).company_id.project_time_mode_id.id
if result['product_uom_id'] != default_uom:
vals_line['unit_amount'] = uom_obj._compute_qty(cr, uid, default_uom, vals['hours'], result['product_uom_id'])
acc_id = obj_task.project_id and obj_task.project_id.analytic_account_id.id or False
if acc_id:
vals_line['account_id'] = acc_id
res = obj_timesheet.on_change_account_id(cr, uid, False, acc_id)
if res.get('value'):
vals_line.update(res['value'])
vals_line['general_account_id'] = result['general_account_id']
vals_line['journal_id'] = result['journal_id']
vals_line['amount'] = 0.0
vals_line['product_uom_id'] = result['product_uom_id']
amount = vals_line['unit_amount']
prod_id = vals_line['product_id']
unit = False
timeline_id = obj_timesheet.create(cr, uid, vals=vals_line, context=context)
# Compute based on pricetype
amount_unit = obj_timesheet.on_change_unit_amount(cr, uid, timeline_id,
prod_id, amount, False, unit, context=context)
if amount_unit and 'amount' in amount_unit.get('value',{}):
updv = { 'amount': amount_unit['value']['amount'] }
obj_timesheet.write(cr, uid, [timeline_id], updv, context=context)
vals['hr_analytic_timesheet_id'] = timeline_id
# Compute based on pricetype
amount_unit = obj_timesheet.on_change_unit_amount(cr, uid, timeline_id,
prod_id, amount, False, unit, context=context)
if amount_unit and 'amount' in amount_unit.get('value',{}):
updv = { 'amount': amount_unit['value']['amount'] }
obj_timesheet.write(cr, uid, [timeline_id], updv, context=context)
vals['hr_analytic_timesheet_id'] = timeline_id
return super(project_work,self).create(cr, uid, vals, *args, **kwargs)
def write(self, cr, uid, ids, vals, context=None):
@@ -378,3 +378,14 @@ msgstr ""
msgid "Purchase Orders"
msgstr ""
#. module: purchase_requisition
#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:0
#, python-format
msgid "Error!"
msgstr ""
#. module: purchase_requisition
#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:0
#, python-format
msgid "No Product in Tender"
msgstr ""
@@ -24,6 +24,7 @@ from datetime import datetime
from dateutil.relativedelta import relativedelta
from osv import fields, osv
from osv.orm import browse_record, browse_null
from tools.translate import _
class purchase_requisition_partner(osv.osv_memory):
_name = "purchase.requisition.partner"
@@ -38,7 +39,7 @@ class purchase_requisition_partner(osv.osv_memory):
record_id = context and context.get('active_id', False) or False
tender = self.pool.get('purchase.requisition').browse(cr, uid, record_id)
if not tender.line_ids:
raise osv.except_osv('Error!','No Product in Tender')
raise osv.except_osv(_('Error!'), _('No Product in Tender'))
True
def onchange_partner_id(self, cr, uid, ids, partner_id):
+7
View File
@@ -3379,10 +3379,17 @@ msgstr ""
#: code:addons/stock/product.py:0
#: code:addons/stock/stock.py:0
#: code:addons/stock/wizard/stock_splitinto.py:0
#: code:addons/stock/wizard/stock_fill_inventory.py:0
#, python-format
msgid "Error!"
msgstr ""
#. module: stock
#: code:addons/stock/wizard/stock_fill_inventory.py:0
#, python-format
msgid "Stock Inventory is done"
msgstr ""
#. module: stock
#: code:addons/stock/stock.py:0
#, python-format
-1
View File
@@ -2008,7 +2008,6 @@ class stock_move(osv.osv):
for id in ids:
wf_service.trg_trigger(uid, 'stock.move', id, cr)
picking_obj = self.pool.get('stock.picking')
wf_service = netsvc.LocalService("workflow")
for pick_id in picking_ids:
wf_service.trg_write(uid, 'stock.picking', pick_id, cr)
+1 -1
View File
@@ -45,7 +45,7 @@ class stock_fill_inventory(osv.osv_memory):
if context.get('active_id', False):
stock = self.pool.get('stock.inventory').browse(cr, uid, context.get('active_id', False))
if stock.state=='done':
raise osv.except_osv('Error!','Stock Inventory is done')
raise osv.except_osv(_('Error!'), _('Stock Inventory is done'))
True
def fill_inventory(self, cr, uid, ids, context=None):
@@ -60,16 +60,12 @@
}
pick_obj.do_partial(cr, uid, [ref('stock_picking_out0')], partial_datas, context=context)
-
As the Invoice state of the picking order is To be invoiced. I create a record for create invoice.
-
!record {model: stock.invoice.onshipping, id: stock_invoice_onshipping_0}:
invoice_date: '2010-08-04'
journal_id: account.bank_journal
-
I create a Customer invoice for my outgoing picking order.
As the Invoice state of the picking order is To be invoiced. I create invoice for my outgoing picking order.
-
!python {model: stock.invoice.onshipping}: |
self.create_invoice(cr, uid, [ref("stock_invoice_onshipping_0")], {"lang": "en_US",
wiz_id = self.create(cr, uid, {'invoice_date': '2010-08-04', 'journal_id': ref('account.bank_journal')},
{'active_ids': [ref("stock_picking_out0")]})
self.create_invoice(cr, uid, [wiz_id], {"lang": "en_US",
"search_default_available": 1, "tz": False, "active_model": "stock.picking",
"contact_display": "partner", "active_ids": [ref("stock_picking_out0")], "active_id": ref("stock_picking_out0")})
-
@@ -1977,9 +1977,9 @@ class Parser(BaseParser):
if toclevel < wgMaxTocLevel:
toc.append(u"</li>\n")
toc.append(u"</ul>\n</li>\n" * max(0, toclevel - 1))
#TODO: use gettext
#toc.insert(0, u'<div id="toc"><h2>' + _('Table of Contents') + '</h2>')
toc.insert(0, u'<div id="toc"><h2>Table of Contents</h2>')
#TODO: use gettext
#toc.insert(0, u'<div id="toc"><h2>' + _('Table of Contents') + '</h2>')
toc.insert(0, u'<div id="toc"><h2>Table of Contents</h2>')
toc.append(u'</ul>\n</div>')
# split up and insert constructed headlines