commit
0bf0d7eae1
|
@ -278,7 +278,7 @@ class account_account(osv.osv):
|
|||
# ON l.account_id = tmp.id
|
||||
# or make _get_children_and_consol return a query and join on that
|
||||
request = ("SELECT l.account_id as id, " +\
|
||||
' , '.join(map(mapping.__getitem__, field_names)) +
|
||||
', '.join(map(mapping.__getitem__, field_names)) +
|
||||
" FROM account_move_line l" \
|
||||
" WHERE l.account_id IN %s " \
|
||||
+ filters +
|
||||
|
@ -838,7 +838,7 @@ class account_period(osv.osv):
|
|||
'date_start': fields.date('Start of Period', required=True, states={'done':[('readonly',True)]}),
|
||||
'date_stop': fields.date('End of Period', required=True, states={'done':[('readonly',True)]}),
|
||||
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True, states={'done':[('readonly',True)]}, select=True),
|
||||
'state': fields.selection([('draft','Draft'), ('done','Done')], 'State', readonly=True,
|
||||
'state': fields.selection([('draft','Open'), ('done','Closed')], 'State', readonly=True,
|
||||
help='When monthly periods are created. The state is \'Draft\'. At the end of monthly period it is in \'Done\' state.'),
|
||||
'company_id': fields.related('fiscalyear_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
|
||||
}
|
||||
|
@ -1538,7 +1538,7 @@ class account_tax_code(osv.osv):
|
|||
if context is None:
|
||||
context = {}
|
||||
move_state = ('posted', )
|
||||
if context.get('state', False) == 'all':
|
||||
if context.get('state', 'all') == 'all':
|
||||
move_state = ('draft', 'posted', )
|
||||
if context.get('fiscalyear_id', False):
|
||||
fiscalyear_id = context['fiscalyear_id']
|
||||
|
|
|
@ -31,12 +31,12 @@ class account_analytic_line(osv.osv):
|
|||
_inherit = 'account.analytic.line'
|
||||
_description = 'Analytic Line'
|
||||
_columns = {
|
||||
'product_uom_id' : fields.many2one('product.uom', 'UoM'),
|
||||
'product_id' : fields.many2one('product.product', 'Product'),
|
||||
'general_account_id' : fields.many2one('account.account', 'General Account', required=True, ondelete='cascade'),
|
||||
'move_id' : fields.many2one('account.move.line', 'Move Line', ondelete='cascade', select=True),
|
||||
'journal_id' : fields.many2one('account.analytic.journal', 'Analytic Journal', required=True, ondelete='cascade', select=True),
|
||||
'code' : fields.char('Code', size=8),
|
||||
'product_uom_id': fields.many2one('product.uom', 'UoM'),
|
||||
'product_id': fields.many2one('product.product', 'Product'),
|
||||
'general_account_id': fields.many2one('account.account', 'General Account', required=True, ondelete='cascade'),
|
||||
'move_id': fields.many2one('account.move.line', 'Move Line', ondelete='cascade', select=True),
|
||||
'journal_id': fields.many2one('account.analytic.journal', 'Analytic Journal', required=True, ondelete='cascade', select=True),
|
||||
'code': fields.char('Code', size=8),
|
||||
'ref': fields.char('Ref.', size=64),
|
||||
'currency_id': fields.related('move_id', 'currency_id', type='many2one', relation='res.currency', string='Account currency', store=True, help="The related account currency if not equal to the company one.", readonly=True),
|
||||
'amount_currency': fields.related('move_id', 'amount_currency', type='float', string='Amount currency', store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True),
|
||||
|
@ -88,7 +88,7 @@ class account_analytic_line(osv.osv):
|
|||
company_id = j_id.company_id.id
|
||||
result = 0.0
|
||||
is_purchase = False
|
||||
|
||||
|
||||
if j_id.type <> 'sale':
|
||||
a = prod.product_tmpl_id.property_account_expense.id
|
||||
if not a:
|
||||
|
|
|
@ -21,9 +21,7 @@
|
|||
|
||||
import time
|
||||
|
||||
import netsvc
|
||||
from osv import fields, osv
|
||||
from tools.misc import currency
|
||||
from tools.translate import _
|
||||
import decimal_precision as dp
|
||||
|
||||
|
|
|
@ -151,15 +151,14 @@ class account_cash_statement(osv.osv):
|
|||
res[r] = round(res[r], 2)
|
||||
return res
|
||||
|
||||
def _get_company(self, cr, uid, context={}):
|
||||
def _get_company(self, cr, uid, context=None):
|
||||
user_pool = self.pool.get('res.users')
|
||||
company_pool = self.pool.get('res.company')
|
||||
user = user_pool.browse(cr, uid, uid, context)
|
||||
company_id = user.company_id and user.company_id.id
|
||||
user = user_pool.browse(cr, uid, uid, context=context)
|
||||
company_id = user.company_id
|
||||
if not company_id:
|
||||
company_id = company_pool.search(cr, uid, [])[0]
|
||||
|
||||
return company_id
|
||||
company_id = company_pool.search(cr, uid, [])
|
||||
return company_id and company_id[0] or False
|
||||
|
||||
def _get_cash_open_box_lines(self, cr, uid, context={}):
|
||||
res = []
|
||||
|
@ -229,7 +228,7 @@ class account_cash_statement(osv.osv):
|
|||
'balance_end_cash': fields.function(_balance_end_cash, method=True, store=True, string='Balance', help="Closing balance based on cashBox"),
|
||||
'starting_details_ids': fields.one2many('account.cashbox.line', 'starting_id', string='Opening Cashbox'),
|
||||
'ending_details_ids': fields.one2many('account.cashbox.line', 'ending_id', string='Closing Cashbox'),
|
||||
'name': fields.char('Name', size=64, required=True, states={'draft': [('readonly', False)]}, readonly=True, help='if you give the Name other then / , its created Accounting Entries Move will be with same name as statement name. This allows the statement entries to have the same references than the statement itself'),
|
||||
'name': fields.char('Name', size=64, required=True, states={'draft': [('readonly', False)]}, readonly=True, help='if you give the Name other then /, its created Accounting Entries Move will be with same name as statement name. This allows the statement entries to have the same references than the statement itself'),
|
||||
'user_id':fields.many2one('res.users', 'Responsible', required=False),
|
||||
}
|
||||
_defaults = {
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<field name="name">Close a Period</field>
|
||||
<field name="res_model">account.period</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="domain">[('state','=','draft')]</field>
|
||||
<field name="view_id" ref="view_account_period_tree"/>
|
||||
<field name="context">{'search_default_draft': 1}</field>
|
||||
<field name="help"> After closing a period, you will no longer be able to post entries to the period once it has been closed.</field>
|
||||
</record>
|
||||
<menuitem
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
<field name="account_type"/>
|
||||
<field name="currency_id" widget="selection" groups="base.group_extended"/>
|
||||
</form>
|
||||
<tree editable="bottom" string="">
|
||||
<tree editable="bottom" string="Your bank and cash accounts">
|
||||
<field name="acc_name"/>
|
||||
<field name="account_type"/>
|
||||
<field name="currency_id" widget="selection" groups="base.group_extended"/>
|
||||
|
|
|
@ -349,7 +349,7 @@ class account_move_line(osv.osv):
|
|||
return res
|
||||
|
||||
def name_get(self, cr, uid, ids, context={}):
|
||||
if not len(ids):
|
||||
if not ids:
|
||||
return []
|
||||
result = []
|
||||
for line in self.browse(cr, uid, ids, context):
|
||||
|
@ -363,18 +363,18 @@ class account_move_line(osv.osv):
|
|||
if context is None:
|
||||
context = {}
|
||||
|
||||
if not len(args):
|
||||
if not args:
|
||||
return []
|
||||
where = ' and '.join(map(lambda x: '(abs(sum(debit-credit))'+x[1]+str(x[2])+')',args))
|
||||
cursor.execute('select id, sum(debit-credit) from account_move_line \
|
||||
group by id, debit, credit having '+where)
|
||||
res = cursor.fetchall()
|
||||
if not len(res):
|
||||
if not res:
|
||||
return [('id', '=', '0')]
|
||||
return [('id', 'in', [x[0] for x in res])]
|
||||
|
||||
def _invoice_search(self, cursor, user, obj, name, args, context):
|
||||
if not len(args):
|
||||
if not args:
|
||||
return []
|
||||
invoice_obj = self.pool.get('account.invoice')
|
||||
|
||||
|
@ -407,7 +407,7 @@ class account_move_line(osv.osv):
|
|||
qu2 += x[2]
|
||||
else:
|
||||
qu1.append(' (False)')
|
||||
if len(qu1):
|
||||
if qu1:
|
||||
qu1 = ' AND' + ' AND'.join(qu1)
|
||||
else:
|
||||
qu1 = ''
|
||||
|
@ -415,7 +415,7 @@ class account_move_line(osv.osv):
|
|||
'FROM account_move_line l, account_invoice i ' \
|
||||
'WHERE l.move_id = i.move_id ' + qu1, qu2)
|
||||
res = cursor.fetchall()
|
||||
if not len(res):
|
||||
if not res:
|
||||
return [('id', '=', '0')]
|
||||
return [('id', 'in', [x[0] for x in res])]
|
||||
|
||||
|
@ -989,7 +989,7 @@ class account_move_line(osv.osv):
|
|||
part_rec_ids = [rec['reconcile_partial_id'][0] for rec in part_recs]
|
||||
unlink_ids += rec_ids
|
||||
unlink_ids += part_rec_ids
|
||||
if len(unlink_ids):
|
||||
if unlink_ids:
|
||||
obj_move_rec.unlink(cr, uid, unlink_ids)
|
||||
return True
|
||||
|
||||
|
|
|
@ -129,7 +129,7 @@
|
|||
<field name="arch" type="xml">
|
||||
<search string="Search Period">
|
||||
<group>
|
||||
<filter string="Draft" name="draft" domain="[('state','=','draft')]" icon="terp-document-new"/>
|
||||
<filter string="To Close" name="draft" domain="[('state','=','draft')]" icon="terp-document-new"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
|
@ -1640,7 +1640,7 @@
|
|||
<filter string="Purchase" icon="terp-purchase" domain="[('journal_id.type', '=', 'purchase')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="journal_id" widget="selection"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<newline/>
|
||||
|
@ -2590,7 +2590,7 @@
|
|||
</field>
|
||||
</record>
|
||||
<record id="action_view_bank_statement_tree" model="ir.actions.act_window">
|
||||
<field name="name">Cash Register</field>
|
||||
<field name="name">Cash Registers</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">account.bank.statement</field>
|
||||
<field name="view_type">form</field>
|
||||
|
|
|
@ -7,13 +7,13 @@ msgstr ""
|
|||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-10-10 10:37+0000\n"
|
||||
"Last-Translator: Ferdinand @ ChriCar <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-10-11 07:18+0000\n"
|
||||
"Last-Translator: Ferdinand-chricar <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-11 04:45+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-12 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
|
|
@ -8,13 +8,13 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-10-11 04:27+0000\n"
|
||||
"Last-Translator: sugi <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-10-11 07:18+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Mongolian <mn@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-11 04:45+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-12 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
@ -1983,7 +1983,7 @@ msgstr "Шилжүүлэлт"
|
|||
#. module: account
|
||||
#: rml:account.overdue:0
|
||||
msgid "Li."
|
||||
msgstr ""
|
||||
msgstr "Ли."
|
||||
|
||||
#. module: account
|
||||
#: wizard_view:account.chart,init:0
|
||||
|
@ -2262,7 +2262,7 @@ msgstr "Дансны мод"
|
|||
#. module: account
|
||||
#: model:account.journal,name:account.check_journal
|
||||
msgid "x Checks Journal"
|
||||
msgstr ""
|
||||
msgstr "x Чекийн журнал"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.wizard,name:account.wizard_generate_subscription
|
||||
|
@ -4413,7 +4413,7 @@ msgstr "Батлагдсан"
|
|||
#: view:account.tax:0
|
||||
#: view:account.tax.template:0
|
||||
msgid "Credit Notes"
|
||||
msgstr ""
|
||||
msgstr "Орлогын тэмдэглэл"
|
||||
|
||||
#. module: account
|
||||
#: field:account.config.wizard,date2:0
|
||||
|
@ -4430,12 +4430,12 @@ msgstr "Нээлтийн бичилтийг цуцлах"
|
|||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_invoicemanually0
|
||||
msgid "Manually statement"
|
||||
msgstr ""
|
||||
msgstr "Гараар үүсгэсэн тайлан"
|
||||
|
||||
#. module: account
|
||||
#: field:account.payment.term.line,days2:0
|
||||
msgid "Day of the Month"
|
||||
msgstr ""
|
||||
msgstr "Сарын өдөр"
|
||||
|
||||
#. module: account
|
||||
#: field:account.analytic.journal,line_ids:0
|
||||
|
@ -4493,12 +4493,12 @@ msgstr ""
|
|||
#. module: account
|
||||
#: wizard_view:account.wizard_paid_open,init:0
|
||||
msgid "Open Invoice"
|
||||
msgstr ""
|
||||
msgstr "Нэхэмжлэл нээх"
|
||||
|
||||
#. module: account
|
||||
#: model:process.node,note:account.process_node_draftstatement0
|
||||
msgid "Set starting and ending balance for control"
|
||||
msgstr ""
|
||||
msgstr "Балансын удирдлагын эхлэл төгсгөлийг тохируулах"
|
||||
|
||||
#. module: account
|
||||
#: wizard_view:account.wizard_paid_open,init:0
|
||||
|
|
|
@ -302,7 +302,7 @@ class account_invoice(osv.osv):
|
|||
}, help="The Journal Entry of the invoice have been totally reconciled with one or several Journal Entries of payment."),
|
||||
'partner_bank_id': fields.many2one('res.partner.bank', 'Bank Account',
|
||||
help='Bank Account Number, Company bank account if Invoice is customer or supplier refund, otherwise Partner bank account number.', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'move_lines':fields.function(_get_lines , method=True, type='many2many', relation='account.move.line', string='Entry Lines'),
|
||||
'move_lines':fields.function(_get_lines, method=True, type='many2many', relation='account.move.line', string='Entry Lines'),
|
||||
'residual': fields.function(_amount_residual, method=True, digits_compute=dp.get_precision('Account'), string='Residual',
|
||||
store={
|
||||
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 50),
|
||||
|
@ -585,7 +585,7 @@ class account_invoice(osv.osv):
|
|||
else:
|
||||
val['currency_id'] = company.currency_id.id
|
||||
|
||||
return {'value' : val, 'domain': dom }
|
||||
return {'value': val, 'domain': dom }
|
||||
|
||||
# go from canceled state to draft state
|
||||
def action_cancel_draft(self, cr, uid, ids, *args):
|
||||
|
@ -898,7 +898,7 @@ class account_invoice(osv.osv):
|
|||
'name': name,
|
||||
'price': total,
|
||||
'account_id': acc_id,
|
||||
'date_maturity' : inv.date_due or False,
|
||||
'date_maturity': inv.date_due or False,
|
||||
'amount_currency': diff_currency_p \
|
||||
and total_currency or False,
|
||||
'currency_id': diff_currency_p \
|
||||
|
@ -909,7 +909,7 @@ class account_invoice(osv.osv):
|
|||
date = inv.date_invoice or time.strftime('%Y-%m-%d')
|
||||
part = inv.partner_id.id
|
||||
|
||||
line = map(lambda x:(0,0,self.line_get_convert(cr, uid, x, part, date, context={})) ,iml)
|
||||
line = map(lambda x:(0,0,self.line_get_convert(cr, uid, x, part, date, context={})),iml)
|
||||
|
||||
line = self.group_lines(cr, uid, iml, line, inv)
|
||||
|
||||
|
@ -932,7 +932,7 @@ class account_invoice(osv.osv):
|
|||
period_id = inv.period_id and inv.period_id.id or False
|
||||
if not period_id:
|
||||
period_ids = self.pool.get('account.period').search(cr, uid, [('date_start','<=',inv.date_invoice or time.strftime('%Y-%m-%d')),('date_stop','>=',inv.date_invoice or time.strftime('%Y-%m-%d'))])
|
||||
if len(period_ids):
|
||||
if period_ids:
|
||||
period_id = period_ids[0]
|
||||
if period_id:
|
||||
move['period_id'] = period_id
|
||||
|
@ -1018,7 +1018,7 @@ class account_invoice(osv.osv):
|
|||
account_move_obj.unlink(cr, uid, [i['move_id'][0]])
|
||||
if i['payment_ids']:
|
||||
account_move_line_obj = self.pool.get('account.move.line')
|
||||
pay_ids = account_move_line_obj.browse(cr, uid , i['payment_ids'])
|
||||
pay_ids = account_move_line_obj.browse(cr, uid, i['payment_ids'])
|
||||
for move_line in pay_ids:
|
||||
if move_line.reconcile_partial_id and move_line.reconcile_partial_id.line_partial_ids:
|
||||
raise osv.except_osv(_('Error !'), _('You cannot cancel the Invoice which is Partially Paid! You need to unreconcile concerned payment entries!'))
|
||||
|
@ -1043,7 +1043,7 @@ class account_invoice(osv.osv):
|
|||
return True
|
||||
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
if not len(ids):
|
||||
if not ids:
|
||||
return []
|
||||
types = {
|
||||
'out_invoice': 'CI: ',
|
||||
|
@ -1078,7 +1078,9 @@ class account_invoice(osv.osv):
|
|||
|
||||
def refund(self, cr, uid, ids, date=None, period_id=None, description=None, journal_id=None):
|
||||
invoices = self.read(cr, uid, ids, ['name', 'type', 'number', 'reference', 'comment', 'date_due', 'partner_id', 'address_contact_id', 'address_invoice_id', 'partner_contact', 'partner_insite', 'partner_ref', 'payment_term', 'account_id', 'currency_id', 'invoice_line', 'tax_line', 'journal_id'])
|
||||
|
||||
obj_invoice_line = self.pool.get('account.invoice.line')
|
||||
obj_invoice_tax = self.pool.get('account.invoice.tax')
|
||||
obj_journal = self.pool.get('account.journal')
|
||||
new_ids = []
|
||||
for invoice in invoices:
|
||||
del invoice['id']
|
||||
|
@ -1090,20 +1092,20 @@ class account_invoice(osv.osv):
|
|||
'in_refund': 'in_invoice', # Supplier Refund
|
||||
}
|
||||
|
||||
invoice_lines = self.pool.get('account.invoice.line').read(cr, uid, invoice['invoice_line'])
|
||||
invoice_lines = obj_invoice_line.read(cr, uid, invoice['invoice_line'])
|
||||
invoice_lines = self._refund_cleanup_lines(cr, uid, invoice_lines)
|
||||
|
||||
tax_lines = self.pool.get('account.invoice.tax').read(cr, uid, invoice['tax_line'])
|
||||
tax_lines = obj_invoice_tax.read(cr, uid, invoice['tax_line'])
|
||||
tax_lines = filter(lambda l: l['manual'], tax_lines)
|
||||
tax_lines = self._refund_cleanup_lines(cr, uid, tax_lines)
|
||||
if journal_id:
|
||||
refund_journal_ids = [journal_id]
|
||||
elif invoice['type'] == 'in_invoice':
|
||||
refund_journal_ids = self.pool.get('account.journal').search(cr, uid, [('type','=','purchase_refund')])
|
||||
refund_journal_ids = obj_journal.search(cr, uid, [('type','=','purchase_refund')])
|
||||
else:
|
||||
refund_journal_ids = self.pool.get('account.journal').search(cr, uid, [('type','=','sale_refund')])
|
||||
refund_journal_ids = obj_journal.search(cr, uid, [('type','=','sale_refund')])
|
||||
|
||||
if not date :
|
||||
if not date:
|
||||
date = time.strftime('%Y-%m-%d')
|
||||
invoice.update({
|
||||
'type': type_dict[invoice['type']],
|
||||
|
@ -1114,11 +1116,11 @@ class account_invoice(osv.osv):
|
|||
'tax_line': tax_lines,
|
||||
'journal_id': refund_journal_ids
|
||||
})
|
||||
if period_id :
|
||||
if period_id:
|
||||
invoice.update({
|
||||
'period_id': period_id,
|
||||
})
|
||||
if description :
|
||||
if description:
|
||||
invoice.update({
|
||||
'name': description,
|
||||
})
|
||||
|
@ -1406,7 +1408,7 @@ class account_invoice_line(osv.osv):
|
|||
result['uos_id'] = res.uom_id.id or uom or False
|
||||
if result['uos_id']:
|
||||
res2 = res.uom_id.category_id.id
|
||||
if res2 :
|
||||
if res2:
|
||||
domain = {'uos_id':[('category_id','=',res2 )]}
|
||||
|
||||
result['categ_id'] = res.categ_id.id
|
||||
|
@ -1537,8 +1539,8 @@ class account_invoice_tax(osv.osv):
|
|||
'tax_code_id': fields.many2one('account.tax.code', 'Tax Code', help="The tax basis of the tax declaration."),
|
||||
'tax_amount': fields.float('Tax Code Amount', digits_compute=dp.get_precision('Account')),
|
||||
'company_id': fields.related('account_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True),
|
||||
'factor_base' : fields.function(_count_factor, method=True, string='Multipication factor for Base code', type='float', multi="all"),
|
||||
'factor_tax' : fields.function(_count_factor, method=True, string='Multipication factor Tax code', type='float', multi="all")
|
||||
'factor_base': fields.function(_count_factor, method=True, string='Multipication factor for Base code', type='float', multi="all"),
|
||||
'factor_tax': fields.function(_count_factor, method=True, string='Multipication factor Tax code', type='float', multi="all")
|
||||
}
|
||||
|
||||
def base_change(self, cr, uid, ids, base, currency_id=False, company_id=False, date_invoice=False):
|
||||
|
|
|
@ -51,7 +51,7 @@ class account_fiscal_position(osv.osv):
|
|||
return result
|
||||
|
||||
def map_account(self, cr, uid, fposition_id, account_id, context={}):
|
||||
if not fposition_id :
|
||||
if not fposition_id:
|
||||
return account_id
|
||||
for pos in fposition_id.account_ids:
|
||||
if pos.account_src_id.id == account_id:
|
||||
|
@ -111,7 +111,7 @@ class res_partner(osv.osv):
|
|||
return res
|
||||
|
||||
def _asset_difference_search(self, cr, uid, obj, name, type, args, context=None):
|
||||
if not len(args):
|
||||
if not args:
|
||||
return []
|
||||
having_values = tuple(map(itemgetter(2), args))
|
||||
where = ' AND '.join(
|
||||
|
@ -128,7 +128,7 @@ class res_partner(osv.osv):
|
|||
'GROUP BY partner_id HAVING '+where),
|
||||
(type,) + having_values)
|
||||
res = cr.fetchall()
|
||||
if not len(res):
|
||||
if not res:
|
||||
return [('id','=','0')]
|
||||
return [('id','in',map(itemgetter(0), res))]
|
||||
|
||||
|
|
|
@ -198,7 +198,7 @@
|
|||
<field name="parent_id" ref="analytic_project_1"/>
|
||||
</record>
|
||||
<record id="analytic_administratif" model="account.analytic.account">
|
||||
<field name="name">Administratif</field>
|
||||
<field name="name">Administrative</field>
|
||||
<field name="code">1</field>
|
||||
<field name="parent_id" ref="analytic_internal"/>
|
||||
</record>
|
||||
|
|
|
@ -182,6 +182,7 @@
|
|||
<field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" invisible="not context.get('to_invoice', False)"/>
|
||||
<field domain="[('type','=','normal')]" name="account_id"/>
|
||||
<field name="general_account_id" invisible="context.get('to_invoice', False)"/>
|
||||
<field name="user_id" invisible="1" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -430,13 +431,13 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<act_window
|
||||
<act_window
|
||||
context="{'search_default_account_id': [active_id], 'search_default_user_id': False}"
|
||||
id="act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal"
|
||||
name="All Analytic Entries"
|
||||
res_model="account.analytic.line"
|
||||
src_model="account.analytic.account"
|
||||
view_mode="tree,form"
|
||||
id="act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal"
|
||||
name="All Analytic Entries"
|
||||
res_model="account.analytic.line"
|
||||
src_model="account.analytic.account"
|
||||
view_mode="tree,form"
|
||||
view_type="form"/>
|
||||
|
||||
<record id="view_account_journal_1" model="ir.ui.view">
|
||||
|
|
|
@ -119,12 +119,12 @@ class account_analytic_balance(report_sxw.rml_parse):
|
|||
return (debit-credit)
|
||||
|
||||
def _sum_all(self, accounts, date1, date2, option):
|
||||
account_analytic_obj = self.pool.get('account.analytic.account')
|
||||
ids = map(lambda x: x['id'], accounts)
|
||||
if not ids:
|
||||
return 0.0
|
||||
|
||||
if not self.acc_sum_list:
|
||||
account_analytic_obj = self.pool.get('account.analytic.account')
|
||||
ids2 = account_analytic_obj.search(self.cr, self.uid,[('parent_id', 'child_of', ids)])
|
||||
self.acc_sum_list = ids2
|
||||
else:
|
||||
|
|
|
@ -91,14 +91,14 @@ class account_analytic_cost_ledger(report_sxw.rml_parse):
|
|||
|
||||
def _sum_debit(self, accounts, date1, date2):
|
||||
ids = map(lambda x: x.id, accounts)
|
||||
if not len(ids):
|
||||
if not ids:
|
||||
return 0.0
|
||||
self.cr.execute("SELECT sum(amount) FROM account_analytic_line WHERE account_id IN %s AND date>=%s AND date<=%s AND amount>0", (tuple(ids), date1, date2,))
|
||||
return self.cr.fetchone()[0] or 0.0
|
||||
|
||||
def _sum_credit(self, accounts, date1, date2):
|
||||
ids = map(lambda x: x.id, accounts)
|
||||
if not len(ids):
|
||||
if not ids:
|
||||
return 0.0
|
||||
self.cr.execute("SELECT -sum(amount) FROM account_analytic_line WHERE account_id IN %s AND date>=%s AND date<=%s AND amount<0", (tuple(ids),date1, date2,))
|
||||
return self.cr.fetchone()[0] or 0.0
|
||||
|
|
|
@ -102,7 +102,7 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse):
|
|||
|
||||
def _sum_quantity(self, accounts, date1, date2, journals):
|
||||
ids = map(lambda x: x.id, accounts)
|
||||
if not len(ids):
|
||||
if not ids:
|
||||
return 0.0
|
||||
if not journals:
|
||||
self.cr.execute("SELECT sum(unit_amount) \
|
||||
|
|
|
@ -70,7 +70,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
OR (reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
|
||||
AND (l.partner_id=res_partner.id)\
|
||||
AND ' + self.query + ' \
|
||||
ORDER BY res_partner.name' , (self.date_from,))
|
||||
ORDER BY res_partner.name', (self.date_from,))
|
||||
partners = self.cr.dictfetchall()
|
||||
## mise a 0 du total
|
||||
for i in range(7):
|
||||
|
@ -96,7 +96,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
OR (l.reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
|
||||
AND ' + self.query + '\
|
||||
AND account_account.active\
|
||||
GROUP BY partner_id ' , (tuple(move_state), tuple(self.ACCOUNT_TYPE), tuple(partner_ids), self.date_from))
|
||||
GROUP BY partner_id ', (tuple(move_state), tuple(self.ACCOUNT_TYPE), tuple(partner_ids), self.date_from))
|
||||
t = self.cr.fetchall()
|
||||
for i in t:
|
||||
totals[i[0]] = i[1]
|
||||
|
@ -131,7 +131,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
OR (l.reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
|
||||
AND '+ self.query + '\
|
||||
AND account_account.active\
|
||||
GROUP BY l.partner_id' , (tuple(move_state), tuple(self.ACCOUNT_TYPE), self.date_from, tuple(partner_ids), self.date_from))
|
||||
GROUP BY l.partner_id', (tuple(move_state), tuple(self.ACCOUNT_TYPE), self.date_from, tuple(partner_ids), self.date_from))
|
||||
t = self.cr.fetchall()
|
||||
for i in t:
|
||||
future_past[i[0]] = i[1]
|
||||
|
@ -140,7 +140,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
# Each history will contain : history[1] = {'<partner_id>': <partner_debit-credit>}
|
||||
history = []
|
||||
for i in range(5):
|
||||
args_list = (tuple(move_state), tuple(self.ACCOUNT_TYPE), tuple(partner_ids) ,self.date_from,)
|
||||
args_list = (tuple(move_state), tuple(self.ACCOUNT_TYPE), tuple(partner_ids),self.date_from,)
|
||||
dates_query = '(COALESCE(l.date_maturity,l.date)'
|
||||
if form[str(i)]['start'] and form[str(i)]['stop']:
|
||||
dates_query += ' BETWEEN %s AND %s)'
|
||||
|
@ -153,7 +153,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
args_list += (form[str(i)]['stop'],)
|
||||
|
||||
self.cr.execute('SELECT l.partner_id, SUM(l.debit-l.credit)\
|
||||
FROM account_move_line AS l, account_account , account_move am \
|
||||
FROM account_move_line AS l, account_account, account_move am \
|
||||
WHERE (l.account_id = account_account.id) AND (l.move_id=am.id)\
|
||||
AND (am.state IN %s)\
|
||||
AND (account_account.type IN %s)\
|
||||
|
@ -163,7 +163,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
AND '+ self.query + '\
|
||||
AND account_account.active\
|
||||
AND ' + dates_query + '\
|
||||
GROUP BY l.partner_id' , args_list)
|
||||
GROUP BY l.partner_id', args_list)
|
||||
t = self.cr.fetchall()
|
||||
d = {}
|
||||
for i in t:
|
||||
|
@ -227,7 +227,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
self.total_account.append(0)
|
||||
totals = {}
|
||||
self.cr.execute('SELECT SUM(l.debit-l.credit) \
|
||||
FROM account_move_line AS l, account_account , account_move am \
|
||||
FROM account_move_line AS l, account_account, account_move am \
|
||||
WHERE (l.account_id = account_account.id) AND (l.move_id=am.id)\
|
||||
AND (am.state IN %s)\
|
||||
AND (l.partner_id IS NULL)\
|
||||
|
@ -235,7 +235,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
AND ((l.reconcile_id IS NULL) \
|
||||
OR (l.reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
|
||||
AND ' + self.query + '\
|
||||
AND account_account.active ' ,(tuple(move_state), tuple(self.ACCOUNT_TYPE), self.date_from))
|
||||
AND account_account.active ',(tuple(move_state), tuple(self.ACCOUNT_TYPE), self.date_from))
|
||||
t = self.cr.fetchall()
|
||||
for i in t:
|
||||
totals['Unknown Partner'] = i[0]
|
||||
|
@ -266,7 +266,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
AND ((l.reconcile_id IS NULL)\
|
||||
OR (l.reconcile_id IN (SELECT recon.id FROM account_move_reconcile AS recon WHERE recon.create_date > %s )))\
|
||||
AND '+ self.query + '\
|
||||
AND account_account.active ' , (tuple(move_state), tuple(self.ACCOUNT_TYPE), self.date_from, self.date_from))
|
||||
AND account_account.active ', (tuple(move_state), tuple(self.ACCOUNT_TYPE), self.date_from, self.date_from))
|
||||
t = self.cr.fetchall()
|
||||
for i in t:
|
||||
future_past['Unknown Partner'] = i[0]
|
||||
|
@ -286,7 +286,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
args_list += (form[str(i)]['stop'],)
|
||||
|
||||
self.cr.execute('SELECT SUM(l.debit-l.credit)\
|
||||
FROM account_move_line AS l, account_account , account_move am \
|
||||
FROM account_move_line AS l, account_account, account_move am \
|
||||
WHERE (l.account_id = account_account.id) AND (l.move_id=am.id)\
|
||||
AND (am.state IN %s)\
|
||||
AND (account_account.type IN %s)\
|
||||
|
@ -296,7 +296,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
AND '+ self.query + '\
|
||||
AND account_account.active\
|
||||
AND ' + dates_query + '\
|
||||
GROUP BY l.partner_id' , args_list)
|
||||
GROUP BY l.partner_id', args_list)
|
||||
t = self.cr.fetchall()
|
||||
d = {}
|
||||
for i in t:
|
||||
|
|
|
@ -33,7 +33,7 @@ class analytic_entries_report(osv.osv):
|
|||
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'),
|
||||
('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'),
|
||||
('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
|
||||
'user_id' : fields.many2one('res.users', 'User',readonly=True),
|
||||
'user_id': fields.many2one('res.users', 'User',readonly=True),
|
||||
'name': fields.char('Description', size=64, readonly=True),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True),
|
||||
|
|
|
@ -56,6 +56,24 @@
|
|||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Account" name="Account" icon="terp-folder-green" context="{'group_by':'account_id'}" groups="analytic.group_analytic_accounting"/>
|
||||
<filter string="General Account" icon="terp-folder-green" context="{'group_by':'general_account_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Product UOM" icon="terp-mrp" context="{'group_by':'product_uom_id'}"/>
|
||||
<separator orientation="vertical" groups="base.group_multi_company"/>
|
||||
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Day" icon="terp-go-today" context="{'group_by':'day'}"/>
|
||||
<filter string="Month" name="Month" icon="terp-go-month" context="{'group_by':'month'}"/>
|
||||
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="currency_id" widget="selection"/>
|
||||
<field name="general_account_id" widget="selection"/>
|
||||
|
@ -66,23 +84,6 @@
|
|||
<field name="account_id" groups="analytic.group_analytic_accounting"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Partner" icon="terp-personal" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Account" name="Account" icon="terp-folder-green" context="{'group_by':'account_id'}" groups="analytic.group_analytic_accounting"/>
|
||||
<filter string="General Account" icon="terp-folder-green" context="{'group_by':'general_account_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Product UOM" icon="terp-mrp" context="{'group_by':'product_uom_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Day" icon="terp-go-today" context="{'group_by':'day'}"/>
|
||||
<filter string="Month" name="Month" icon="terp-go-month" context="{'group_by':'month'}"/>
|
||||
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -86,7 +86,7 @@ class account_balance(report_sxw.rml_parse, common_report_header):
|
|||
self.sum_debit += account_rec['debit']
|
||||
self.sum_credit += account_rec['credit']
|
||||
if disp_acc == 'bal_movement':
|
||||
if res['credit'] > 0 or res['debit'] > 0 or res['balance'] > 0 :
|
||||
if res['credit'] > 0 or res['debit'] > 0 or res['balance'] > 0:
|
||||
self.result_acc.append(res)
|
||||
elif disp_acc == 'bal_solde':
|
||||
if res['balance'] != 0:
|
||||
|
|
|
@ -139,7 +139,7 @@ class account_balance_landscape(rml_parse.rml_parse):
|
|||
ctx['state'] = form['context'].get('state','all')
|
||||
tmp = self.pool.get('account.account').browse(self.cr, self.uid, ids, ctx.copy())
|
||||
|
||||
if len(tmp):
|
||||
if tmp:
|
||||
accounts.append(tmp)
|
||||
|
||||
merged_accounts=zip(*accounts)
|
||||
|
@ -198,7 +198,7 @@ class account_balance_landscape(rml_parse.rml_parse):
|
|||
ctx['state'] = form['context'].get('state','all')
|
||||
tmp1 = self.pool.get('account.account').browse(self.cr, self.uid, ids, ctx.copy())
|
||||
|
||||
if len(tmp1):
|
||||
if tmp1:
|
||||
accounts.append(tmp1)
|
||||
|
||||
if level==1: #if parent is called,done is not empty when called again.
|
||||
|
|
|
@ -71,11 +71,12 @@ class journal_print(report_sxw.rml_parse, common_report_header):
|
|||
move_state = ['draft','posted']
|
||||
if self.target_move == 'posted':
|
||||
move_state = ['posted']
|
||||
self.cr.execute('SELECT a.currency_id ,a.code, a.name, c.code AS currency_code,l.currency_id ,l.amount_currency ,SUM(debit) AS debit, SUM(credit) AS credit \
|
||||
|
||||
self.cr.execute('SELECT a.currency_id ,a.code, a.name, c.code AS currency_code, l.currency_id, l.amount_currency, SUM(debit) AS debit, SUM(credit) AS credit \
|
||||
from account_move_line l \
|
||||
LEFT JOIN account_move am ON (l.move_id=am.id) \
|
||||
LEFT JOIN account_account a ON (l.account_id=a.id) \
|
||||
LEFT JOIN res_currency c on (l.currency_id=c.id) WHERE am.state IN %s AND l.period_id=%s AND l.journal_id=%s '+self.query_get_clause+' GROUP BY a.id, a.code, a.name,l.amount_currency,c.code , a.currency_id,l.currency_id', (tuple(move_state), period_id, journal_id))
|
||||
LEFT JOIN res_currency c on (l.currency_id=c.id) WHERE am.state IN %s AND l.period_id=%s AND l.journal_id=%s '+self.query_get_clause+' GROUP BY a.id, a.code, a.name,l.amount_currency,c.code, a.currency_id,l.currency_id', (tuple(move_state), period_id, journal_id))
|
||||
return self.cr.dictfetchall()
|
||||
|
||||
def _set_get_account_currency_code(self, account_id):
|
||||
|
@ -91,12 +92,12 @@ class journal_print(report_sxw.rml_parse, common_report_header):
|
|||
def _get_account(self, data):
|
||||
if data['model'] == 'account.journal.period':
|
||||
return self.pool.get('account.journal.period').browse(self.cr, self.uid, data['id']).company_id.name
|
||||
return super(journal_print ,self)._get_account(data)
|
||||
return super(journal_print,self)._get_account(data)
|
||||
|
||||
def _get_fiscalyear(self, data):
|
||||
if data['model'] == 'account.journal.period':
|
||||
return self.pool.get('account.journal.period').browse(self.cr, self.uid, data['id']).fiscalyear_id.name
|
||||
return super(journal_print ,self)._get_fiscalyear(data)
|
||||
return super(journal_print,self)._get_fiscalyear(data)
|
||||
|
||||
def _display_currency(self, data):
|
||||
if data['model'] == 'account.journal.period':
|
||||
|
|
|
@ -293,7 +293,7 @@
|
|||
<td><para style="terp_tblheader_Details_Right">Currency</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="50.0,270.0,70.0,70.0,70.0" style="Table_Final_Total">[[ display_currency(data) == False or removeParentNode('blockTable') ]]
|
||||
<blockTable colWidths="50.0,300.0,70.0,70.0,70.0" style="Table_Final_Total">[[ display_currency(data) == False or removeParentNode('blockTable') ]]
|
||||
<tr>
|
||||
<td><para style="terp_default_Bold_9">Total:</para></td>
|
||||
<td><para style="terp_default_Bold_9"><font color="white"> </font></para></td>
|
||||
|
@ -314,7 +314,7 @@
|
|||
</blockTable>
|
||||
<section>
|
||||
<para style="terp_default_8">[[ repeatIn(lines(o.period_id.id,o.journal_id.id),'line') ]]</para>
|
||||
<blockTable colWidths="50.0,270.0,70.0,70.0,70.0" style="Table_Journal_Line_Content">[[ display_currency(data) == False or removeParentNode('blockTable') ]]
|
||||
<blockTable colWidths="50.0,300.0,70.0,70.0,70.0" style="Table_Journal_Line_Content">[[ display_currency(data) == False or removeParentNode('blockTable') ]]
|
||||
<tr>
|
||||
<td><para style="terp_default_9">[[ line['code'] ]]</para></td>
|
||||
<td><para style="terp_default_9">[[ line['name'] ]]</para></td>
|
||||
|
|
|
@ -55,7 +55,7 @@ class account_entries_report(osv.osv):
|
|||
'move_line_state': fields.selection([('draft','Unbalanced'), ('valid','Valid')], 'State of Move Line', readonly=True),
|
||||
'reconcile_id': fields.many2one('account.move.reconcile', readonly=True),
|
||||
'partner_id': fields.many2one('res.partner','Partner', readonly=True),
|
||||
'analytic_account_id' : fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
|
||||
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
|
||||
'quantity': fields.float('Products Quantity', digits=(16,2), readonly=True),
|
||||
'user_type': fields.many2one('account.account.type', 'Account Type', readonly=True),
|
||||
'type': fields.selection([
|
||||
|
|
|
@ -117,15 +117,15 @@ class general_ledger(rml_parse.rml_parse, common_report_header):
|
|||
sold_account = self._sum_balance_account(child_account)
|
||||
self.sold_accounts[child_account.id] = sold_account
|
||||
if self.display_account == 'bal_movement':
|
||||
if child_account.type != 'view' and num_entry <> 0 :
|
||||
if child_account.type != 'view' and num_entry <> 0:
|
||||
res.append(child_account)
|
||||
elif self.display_account == 'bal_solde':
|
||||
if child_account.type != 'view' and num_entry <> 0 :
|
||||
if child_account.type != 'view' and num_entry <> 0:
|
||||
if ( sold_account <> 0.0):
|
||||
res.append(child_account)
|
||||
else:
|
||||
res.append(child_account)
|
||||
if not len(res):
|
||||
if not res:
|
||||
return [account]
|
||||
return res
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ class journal_print(report_sxw.rml_parse, common_report_header):
|
|||
if self.target_move == 'posted':
|
||||
move_state = ['posted']
|
||||
|
||||
self.cr.execute('SELECT SUM(debit) FROM account_move_line l , account_move am '
|
||||
self.cr.execute('SELECT SUM(debit) FROM account_move_line l, account_move am '
|
||||
'WHERE l.move_id=am.id AND am.state IN %s AND l.period_id IN %s AND l.journal_id IN %s ' + self.query_get_clause + ' ',
|
||||
(tuple(move_state), tuple(period_id), tuple(journal_id)))
|
||||
return self.cr.fetchone()[0] or 0.0
|
||||
|
@ -121,7 +121,7 @@ class journal_print(report_sxw.rml_parse, common_report_header):
|
|||
if self.target_move == 'posted':
|
||||
move_state = ['posted']
|
||||
|
||||
self.cr.execute('SELECT l.id FROM account_move_line l, account_move am WHERE l.move_id=am.id AND am.state IN %s AND l.period_id=%s AND l.journal_id IN %s ' + self.query_get_clause + ' ORDER BY l.'+ self.sort_selection + '' ,(tuple(move_state), period_id, tuple(journal_id) ))
|
||||
self.cr.execute('SELECT l.id FROM account_move_line l, account_move am WHERE l.move_id=am.id AND am.state IN %s AND l.period_id=%s AND l.journal_id IN %s ' + self.query_get_clause + ' ORDER BY l.'+ self.sort_selection + '',(tuple(move_state), period_id, tuple(journal_id) ))
|
||||
ids = map(lambda x: x[0], self.cr.fetchall())
|
||||
return obj_mline.browse(self.cr, self.uid, ids)
|
||||
|
||||
|
@ -138,12 +138,12 @@ class journal_print(report_sxw.rml_parse, common_report_header):
|
|||
def _get_fiscalyear(self, data):
|
||||
if data['model'] == 'account.journal.period':
|
||||
return self.pool.get('account.journal.period').browse(self.cr, self.uid, data['id']).fiscalyear_id.name
|
||||
return super(journal_print ,self)._get_fiscalyear(data)
|
||||
return super(journal_print, self)._get_fiscalyear(data)
|
||||
|
||||
def _get_account(self, data):
|
||||
if data['model'] == 'account.journal.period':
|
||||
return self.pool.get('account.journal.period').browse(self.cr, self.uid, data['id']).company_id.name
|
||||
return super(journal_print ,self)._get_account(data)
|
||||
return super(journal_print, self)._get_account(data)
|
||||
|
||||
def _display_currency(self, data):
|
||||
if data['model'] == 'account.journal.period':
|
||||
|
|
|
@ -83,7 +83,7 @@ class partner_balance(report_sxw.rml_parse, common_report_header):
|
|||
full_account = []
|
||||
result_tmp = 0.0
|
||||
self.cr.execute(
|
||||
"SELECT p.ref,l.account_id,ac.name AS account_name,ac.code AS code ,p.name, sum(debit) AS debit, sum(credit) AS credit, " \
|
||||
"SELECT p.ref,l.account_id,ac.name AS account_name,ac.code AS code,p.name, sum(debit) AS debit, sum(credit) AS credit, " \
|
||||
"CASE WHEN sum(debit) > sum(credit) " \
|
||||
"THEN sum(debit) - sum(credit) " \
|
||||
"ELSE 0 " \
|
||||
|
@ -254,7 +254,7 @@ class partner_balance(report_sxw.rml_parse, common_report_header):
|
|||
"JOIN account_move am ON (am.id = l.move_id)" \
|
||||
"WHERE l.account_id IN %s" \
|
||||
"AND am.state IN %s" \
|
||||
"AND " + self.query + "" ,
|
||||
"AND " + self.query + "",
|
||||
(tuple(self.account_ids), tuple(move_state)))
|
||||
temp_res = float(self.cr.fetchone()[0] or 0.0)
|
||||
return temp_res
|
||||
|
@ -273,7 +273,7 @@ class partner_balance(report_sxw.rml_parse, common_report_header):
|
|||
"JOIN account_move am ON (am.id = l.move_id)" \
|
||||
"WHERE l.account_id IN %s" \
|
||||
"AND am.state IN %s" \
|
||||
"AND " + self.query + "" ,
|
||||
"AND " + self.query + "",
|
||||
(tuple(self.account_ids), tuple(move_state)))
|
||||
temp_res = float(self.cr.fetchone()[0] or 0.0)
|
||||
return temp_res
|
||||
|
|
|
@ -30,11 +30,11 @@ class Overdue(report_sxw.rml_parse):
|
|||
def __init__(self, cr, uid, name, context):
|
||||
super(Overdue, self).__init__(cr, uid, name, context=context)
|
||||
self.localcontext.update( {
|
||||
'time' : time,
|
||||
'adr_get' : self._adr_get,
|
||||
'getLines' : self._lines_get,
|
||||
'tel_get' : self._tel_get,
|
||||
'message' : self._message,
|
||||
'time': time,
|
||||
'adr_get': self._adr_get,
|
||||
'getLines': self._lines_get,
|
||||
'tel_get': self._tel_get,
|
||||
'message': self._message,
|
||||
})
|
||||
self.context = context
|
||||
def _adr_get(self, partner, type):
|
||||
|
@ -47,10 +47,10 @@ class Overdue(report_sxw.rml_parse):
|
|||
'name': False,
|
||||
'street': False,
|
||||
'street2': False,
|
||||
'city' : False,
|
||||
'zip' : False,
|
||||
'city': False,
|
||||
'zip': False,
|
||||
'state_id':False,
|
||||
'country_id' : False,
|
||||
'country_id': False,
|
||||
}
|
||||
if adr_id:
|
||||
result = res_partner_address.read(self.cr, self.uid, [adr_id], context=self.context.copy())
|
||||
|
|
|
@ -34,17 +34,17 @@ class rml_parse(report_sxw.rml_parse):
|
|||
self.localcontext.update({
|
||||
'comma_me': self.comma_me,
|
||||
'format_date': self._get_and_change_date_format_for_swiss,
|
||||
'strip_name' : self._strip_name,
|
||||
'explode_name' : self._explode_name,
|
||||
'strip_name': self._strip_name,
|
||||
'explode_name': self._explode_name,
|
||||
})
|
||||
|
||||
def comma_me(self,amount):
|
||||
#print "#" + str(amount) + "#"
|
||||
if not amount:
|
||||
amount = 0.0
|
||||
if type(amount) is float :
|
||||
if type(amount) is float:
|
||||
amount = str('%.2f'%amount)
|
||||
else :
|
||||
else:
|
||||
amount = str(amount)
|
||||
if (amount == '0'):
|
||||
return ' '
|
||||
|
|
|
@ -43,13 +43,13 @@ ir_sequence_fiscalyear()
|
|||
class ir_sequence(osv.osv):
|
||||
_inherit = 'ir.sequence'
|
||||
_columns = {
|
||||
'fiscal_ids' : fields.one2many('account.sequence.fiscalyear',
|
||||
'fiscal_ids': fields.one2many('account.sequence.fiscalyear',
|
||||
'sequence_main_id', 'Sequences')
|
||||
}
|
||||
def get_id(self, cr, uid, sequence_id, test='id', context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
cr.execute('select id from ir_sequence where '
|
||||
cr.execute('select id from ir_sequence where '
|
||||
+ test + '=%s and active=%s', (sequence_id, True,))
|
||||
res = cr.dictfetchone()
|
||||
if res:
|
||||
|
|
|
@ -67,6 +67,8 @@
|
|||
import netsvc, tools, os, time
|
||||
import datetime
|
||||
from mx.DateTime import *
|
||||
import warnings
|
||||
warnings.filterwarnings('ignore',".*struct integer overflow masking is deprecated*")
|
||||
start = datetime.date.fromtimestamp(time.mktime(time.strptime(time.strftime('%Y-%m-%d'), "%Y-%m-%d")))
|
||||
start = DateTime(int(start.year), int(start.month), int(start.day))
|
||||
res = {}
|
||||
|
|
|
@ -170,7 +170,7 @@ class account_automatic_reconcile(osv.osv_memory):
|
|||
"AND reconcile_id IS NULL",
|
||||
(account_id, partner_id))
|
||||
line_ids = [id for (id,) in cr.fetchall()]
|
||||
if len(line_ids):
|
||||
if line_ids:
|
||||
reconciled += len(line_ids)
|
||||
if allow_write_off:
|
||||
move_line_obj.reconcile(cr, uid, line_ids, 'auto', form['writeoff_acc_id'], form['period_id'], form['journal_id'], context)
|
||||
|
|
|
@ -71,8 +71,8 @@ class account_change_currency(osv.osv_memory):
|
|||
if old_rate <= 0:
|
||||
raise osv.except_osv(_('Error'), _('Current currency is not confirured properly !'))
|
||||
new_price = (line.price_unit / old_rate ) * rate
|
||||
obj_inv_line.write(cr, uid, [line.id], {'price_unit' : new_price})
|
||||
obj_inv.write(cr, uid, [invoice.id], {'currency_id' : new_currency}, context=context)
|
||||
obj_inv_line.write(cr, uid, [line.id], {'price_unit': new_price})
|
||||
obj_inv.write(cr, uid, [invoice.id], {'currency_id': new_currency}, context=context)
|
||||
return {}
|
||||
|
||||
account_change_currency()
|
||||
|
|
|
@ -65,9 +65,9 @@ class account_fiscalyear_close(osv.osv_memory):
|
|||
context = {}
|
||||
fy_id = data[0]['fy_id']
|
||||
|
||||
cr.execute("SELECT id FROM account_period WHERE date_stop < (SELECT date_start FROM account_fiscalyear WHERE id = %s)" , (str(data[0]['fy2_id']),))
|
||||
cr.execute("SELECT id FROM account_period WHERE date_stop < (SELECT date_start FROM account_fiscalyear WHERE id = %s)", (str(data[0]['fy2_id']),))
|
||||
fy_period_set = ','.join(map(lambda id: str(id[0]), cr.fetchall()))
|
||||
cr.execute("SELECT id FROM account_period WHERE date_start > (SELECT date_stop FROM account_fiscalyear WHERE id = %s)" , (str(fy_id),))
|
||||
cr.execute("SELECT id FROM account_period WHERE date_start > (SELECT date_stop FROM account_fiscalyear WHERE id = %s)", (str(fy_id),))
|
||||
fy2_period_set = ','.join(map(lambda id: str(id[0]), cr.fetchall()))
|
||||
|
||||
period = obj_acc_period.browse(cr, uid, data[0]['period_id'], context=context)
|
||||
|
|
|
@ -100,7 +100,7 @@ class account_invoice_refund(osv.osv_memory):
|
|||
raise osv.except_osv(_('Error !'), _('Can not %s draft/proforma/cancel invoice.') % (mode))
|
||||
if inv.reconciled and mode in ('cancel', 'modify'):
|
||||
raise osv.except_osv(_('Error !'), _('Can not %s invoice which is already reconciled, invoice should be unreconciled first. You can only Refund this invoice') % (mode))
|
||||
if form['period'] :
|
||||
if form['period']:
|
||||
period = form['period']
|
||||
else:
|
||||
period = inv.period_id and inv.period_id.id or False
|
||||
|
@ -108,9 +108,9 @@ class account_invoice_refund(osv.osv_memory):
|
|||
if not journal_id:
|
||||
journal_id = inv.journal_id.id
|
||||
|
||||
if form['date'] :
|
||||
if form['date']:
|
||||
date = form['date']
|
||||
if not form['period'] :
|
||||
if not form['period']:
|
||||
cr.execute("select name from ir_model_fields \
|
||||
where model = 'account.period' \
|
||||
and name = 'company_id'")
|
||||
|
@ -128,7 +128,7 @@ class account_invoice_refund(osv.osv_memory):
|
|||
period = res[0]
|
||||
else:
|
||||
date = inv.date_invoice
|
||||
if form['description'] :
|
||||
if form['description']:
|
||||
description = form['description']
|
||||
else:
|
||||
description = inv.name
|
||||
|
@ -147,18 +147,18 @@ class account_invoice_refund(osv.osv_memory):
|
|||
if mode in ('cancel', 'modify'):
|
||||
movelines = inv.move_id.line_id
|
||||
to_reconcile_ids = {}
|
||||
for line in movelines :
|
||||
if line.account_id.id == inv.account_id.id :
|
||||
for line in movelines:
|
||||
if line.account_id.id == inv.account_id.id:
|
||||
to_reconcile_ids[line.account_id.id] = [line.id]
|
||||
if type(line.reconcile_id) != osv.orm.browse_null :
|
||||
if type(line.reconcile_id) != osv.orm.browse_null:
|
||||
reconcile_obj.unlink(cr, uid, line.reconcile_id.id)
|
||||
wf_service.trg_validate(uid, 'account.invoice', \
|
||||
refund.id, 'invoice_open', cr)
|
||||
refund = inv_obj.browse(cr, uid, refund_id[0], context=context)
|
||||
for tmpline in refund.move_id.line_id :
|
||||
if tmpline.account_id.id == inv.account_id.id :
|
||||
for tmpline in refund.move_id.line_id:
|
||||
if tmpline.account_id.id == inv.account_id.id:
|
||||
to_reconcile_ids[tmpline.account_id.id].append(tmpline.id)
|
||||
for account in to_reconcile_ids :
|
||||
for account in to_reconcile_ids:
|
||||
account_m_line_obj.reconcile(cr, uid, to_reconcile_ids[account],
|
||||
writeoff_period_id=period,
|
||||
writeoff_journal_id = inv.journal_id.id,
|
||||
|
@ -214,7 +214,7 @@ class account_invoice_refund(osv.osv_memory):
|
|||
return result
|
||||
|
||||
def invoice_refund(self, cr, uid, ids, context=None):
|
||||
data_refund = self.read(cr, uid, ids, [] ,context=context)[0]['filter_refund']
|
||||
data_refund = self.read(cr, uid, ids, [],context=context)[0]['filter_refund']
|
||||
return self.compute_refund(cr, uid, ids, data_refund, context=context)
|
||||
|
||||
account_invoice_refund()
|
||||
|
|
|
@ -33,7 +33,7 @@ class account_move_journal(osv.osv_memory):
|
|||
"""
|
||||
ids = self.pool.get('account.period').find(cr, uid, context=context)
|
||||
period_id = False
|
||||
if len(ids):
|
||||
if ids:
|
||||
period_id = ids[0]
|
||||
return period_id
|
||||
|
||||
|
@ -91,9 +91,9 @@ class account_move_journal(osv.osv_memory):
|
|||
<form string="Standard entries">
|
||||
<separator string="Open Journal Items !" colspan="4"/>
|
||||
<group colspan="4" >
|
||||
<label width="300" string="Journal : %s"/>
|
||||
<label width="300" string="Journal: %s"/>
|
||||
<newline/>
|
||||
<label width="300" string="Period : %s"/>
|
||||
<label width="300" string="Period: %s"/>
|
||||
</group>
|
||||
<group colspan="4" col="4">
|
||||
<label string ="" colspan="2"/>
|
||||
|
|
|
@ -46,7 +46,7 @@ class account_move_line_select(osv.osv_memory):
|
|||
fiscalyears = fiscalyear_obj.browse(cr, uid, fiscalyear_ids)
|
||||
|
||||
period_ids = []
|
||||
if fiscalyears :
|
||||
if fiscalyears:
|
||||
for fiscalyear in fiscalyears:
|
||||
for period in fiscalyear.period_ids:
|
||||
period_ids.append(period.id)
|
||||
|
@ -56,7 +56,7 @@ class account_move_line_select(osv.osv_memory):
|
|||
id = mod_obj.read(cr, uid, [result], ['res_id'])[0]['res_id']
|
||||
result = act_obj.read(cr, uid, [id])[0]
|
||||
result['context'] = {
|
||||
'fiscalyear': False ,
|
||||
'fiscalyear': False,
|
||||
'account_id': context['active_id'],
|
||||
'active_id': context['active_id'],
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<record id="action_idea_post_vote_values" model="ir.values">
|
||||
<field name="model_id" ref="model_account_period" />
|
||||
<field name="object" eval="1" />
|
||||
<field name="name"></field>
|
||||
<field name="name">Close a Period</field>
|
||||
<field name="key2">client_action_multi</field>
|
||||
<field name="value" eval="'ir.actions.act_window,' + str(ref('action_account_period_close'))"/>
|
||||
<field name="key">action</field>
|
||||
|
|
|
@ -83,7 +83,7 @@ class account_move_line_reconcile(osv.osv_memory):
|
|||
data = self.read(cr, uid, ids, context=context)
|
||||
date = time.strftime('%Y-%m-%d')
|
||||
ids = self.pool.get('account.period').find(cr, uid, dt=date, context=context)
|
||||
if len(ids):
|
||||
if ids:
|
||||
period_id = ids[0]
|
||||
#stop the reconciliation process by partner (manual reconciliation) only if there is nothing more to reconcile for this partner
|
||||
if 'active_ids' in context and context['active_ids']:
|
||||
|
@ -93,10 +93,10 @@ class account_move_line_reconcile(osv.osv_memory):
|
|||
credit_ml_ids = account_move_line_obj.search(cr, uid, [('partner_id', '=', partner_id), ('account_id.reconcile', '=', True), ('reconcile_id', '=', False), ('credit', '>', 0)], context=context)
|
||||
for ml_id in context['active_ids']:
|
||||
if ml_id in debit_ml_ids:
|
||||
debit_ml_ids.remove(ml_id)
|
||||
debit_ml_ids.remove(ml_id)
|
||||
if ml_id in credit_ml_ids:
|
||||
credit_ml_ids.remove(ml_id)
|
||||
if not (len(debit_ml_ids) and len(credit_ml_ids)):
|
||||
if not debit_ml_ids and credit_ml_ids:
|
||||
context.update({'stop_reconcile': True})
|
||||
account_move_line_obj.reconcile(cr, uid, context['active_ids'], 'manual', account_id,
|
||||
period_id, journal_id, context=context)
|
||||
|
@ -161,7 +161,7 @@ class account_move_line_reconcile_writeoff(osv.osv_memory):
|
|||
date = context['date_p']
|
||||
|
||||
ids = self.pool.get('account.period').find(cr, uid, dt=date, context=context)
|
||||
if len(ids):
|
||||
if ids:
|
||||
period_id = ids[0]
|
||||
|
||||
context.update({'stop_reconcile': True})
|
||||
|
|
|
@ -44,7 +44,7 @@ class account_unreconcile_reconcile(osv.osv_memory):
|
|||
rec_ids = context['active_ids']
|
||||
if context is None:
|
||||
context = {}
|
||||
if len(rec_ids):
|
||||
if rec_ids:
|
||||
obj_move_reconcile.unlink(cr, uid, rec_ids)
|
||||
return {}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ class account_analytic_account(osv.osv):
|
|||
dp = 2
|
||||
res = dict([(i, {}) for i in ids])
|
||||
|
||||
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
|
||||
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)], context=context))
|
||||
accounts = self.browse(cr, uid, ids, context=context)
|
||||
|
||||
for f in fields:
|
||||
|
@ -62,10 +62,10 @@ class account_analytic_account(osv.osv):
|
|||
for id in ids:
|
||||
res[id][f] = 0.0
|
||||
if parent_ids:
|
||||
cr.execute("select account_analytic_line.account_id, max(date) \
|
||||
from account_analytic_line \
|
||||
where account_id IN %s \
|
||||
and invoice_id is not null \
|
||||
cr.execute("SELECT account_analytic_line.account_id, MAX(date) \
|
||||
FROM account_analytic_line \
|
||||
WHERE account_id IN %s \
|
||||
AND invoice_id IS NOT NULL \
|
||||
GROUP BY account_analytic_line.account_id;", (parent_ids,))
|
||||
for account_id, sum in cr.fetchall():
|
||||
if account_id not in res:
|
||||
|
@ -85,25 +85,25 @@ class account_analytic_account(osv.osv):
|
|||
# This computation doesn't take care of pricelist !
|
||||
# Just consider list_price
|
||||
cr.execute("""SELECT account_analytic_account.id, \
|
||||
COALESCE(sum (product_template.list_price * \
|
||||
COALESCE(SUM (product_template.list_price * \
|
||||
account_analytic_line.unit_amount * \
|
||||
((100-hr_timesheet_invoice_factor.factor)/100)),0.0) \
|
||||
((100-hr_timesheet_invoice_factor.factor)/100)), 0.0) \
|
||||
AS ca_to_invoice \
|
||||
FROM product_template \
|
||||
join product_product \
|
||||
on product_template.id = product_product.product_tmpl_id \
|
||||
JOIN product_product \
|
||||
ON product_template.id = product_product.product_tmpl_id \
|
||||
JOIN account_analytic_line \
|
||||
on account_analytic_line.product_id = product_product.id \
|
||||
ON account_analytic_line.product_id = product_product.id \
|
||||
JOIN account_analytic_journal \
|
||||
on account_analytic_line.journal_id = account_analytic_journal.id \
|
||||
ON account_analytic_line.journal_id = account_analytic_journal.id \
|
||||
JOIN account_analytic_account \
|
||||
on account_analytic_account.id = account_analytic_line.account_id \
|
||||
ON account_analytic_account.id = account_analytic_line.account_id \
|
||||
JOIN hr_timesheet_invoice_factor \
|
||||
on hr_timesheet_invoice_factor.id = account_analytic_account.to_invoice \
|
||||
ON hr_timesheet_invoice_factor.id = account_analytic_account.to_invoice \
|
||||
WHERE account_analytic_account.id IN %s \
|
||||
AND account_analytic_line.invoice_id is null \
|
||||
AND account_analytic_line.invoice_id IS NULL \
|
||||
AND account_analytic_line.to_invoice IS NOT NULL \
|
||||
and account_analytic_journal.type in ('purchase','general') \
|
||||
AND account_analytic_journal.type IN ('purchase','general') \
|
||||
GROUP BY account_analytic_account.id;""", (parent_ids,))
|
||||
for account_id, sum in cr.fetchall():
|
||||
if account_id not in res:
|
||||
|
@ -124,13 +124,13 @@ class account_analytic_account(osv.osv):
|
|||
for id in ids:
|
||||
res[id][f] = ''
|
||||
if parent_ids:
|
||||
cr.execute ("select account_analytic_line.account_id, \
|
||||
date(max(account_invoice.date_invoice)) \
|
||||
from account_analytic_line \
|
||||
join account_invoice \
|
||||
on account_analytic_line.invoice_id = account_invoice.id \
|
||||
where account_analytic_line.account_id IN %s \
|
||||
and account_analytic_line.invoice_id is not null \
|
||||
cr.execute ("SELECT account_analytic_line.account_id, \
|
||||
DATE(MAX(account_invoice.date_invoice)) \
|
||||
FROM account_analytic_line \
|
||||
JOIN account_invoice \
|
||||
ON account_analytic_line.invoice_id = account_invoice.id \
|
||||
WHERE account_analytic_line.account_id IN %s \
|
||||
AND account_analytic_line.invoice_id IS NOT NULL \
|
||||
GROUP BY account_analytic_line.account_id",(parent_ids,))
|
||||
for account_id, lid in cr.fetchall():
|
||||
res[account_id][f] = lid
|
||||
|
@ -142,10 +142,10 @@ class account_analytic_account(osv.osv):
|
|||
for id in ids:
|
||||
res[id][f] = ''
|
||||
if parent_ids:
|
||||
cr.execute("select account_analytic_line.account_id, max(date) \
|
||||
from account_analytic_line \
|
||||
where account_id IN %s \
|
||||
and invoice_id is null \
|
||||
cr.execute("SELECT account_analytic_line.account_id, MAX(date) \
|
||||
FROM account_analytic_line \
|
||||
WHERE account_id IN %s \
|
||||
AND invoice_id IS NULL \
|
||||
GROUP BY account_analytic_line.account_id" ,(parent_ids,))
|
||||
for account_id, lwd in cr.fetchall():
|
||||
if account_id not in res:
|
||||
|
@ -159,13 +159,13 @@ class account_analytic_account(osv.osv):
|
|||
for id in ids:
|
||||
res[id][f] = 0.0
|
||||
if parent_ids:
|
||||
cr.execute("select account_analytic_line.account_id, COALESCE(sum(unit_amount),0.0) \
|
||||
from account_analytic_line \
|
||||
join account_analytic_journal \
|
||||
on account_analytic_line.journal_id = account_analytic_journal.id \
|
||||
where account_analytic_line.account_id IN %s \
|
||||
and account_analytic_journal.type='general' \
|
||||
and invoice_id is null \
|
||||
cr.execute("SELECT account_analytic_line.account_id, COALESCE(SUM(unit_amount), 0.0) \
|
||||
FROM account_analytic_line \
|
||||
JOIN account_analytic_journal \
|
||||
ON account_analytic_line.journal_id = account_analytic_journal.id \
|
||||
WHERE account_analytic_line.account_id IN %s \
|
||||
AND account_analytic_journal.type='general' \
|
||||
AND invoice_id IS NULL \
|
||||
AND to_invoice IS NOT NULL \
|
||||
GROUP BY account_analytic_line.account_id;",(parent_ids,))
|
||||
for account_id, sua in cr.fetchall():
|
||||
|
@ -182,12 +182,12 @@ class account_analytic_account(osv.osv):
|
|||
for id in ids:
|
||||
res[id][f] = 0.0
|
||||
if parent_ids:
|
||||
cr.execute("select account_analytic_line.account_id,COALESCE(SUM(unit_amount),0.0) \
|
||||
from account_analytic_line \
|
||||
join account_analytic_journal \
|
||||
on account_analytic_line.journal_id = account_analytic_journal.id \
|
||||
where account_analytic_line.account_id IN %s \
|
||||
and account_analytic_journal.type='general' \
|
||||
cr.execute("SELECT account_analytic_line.account_id, COALESCE(SUM(unit_amount), 0.0) \
|
||||
FROM account_analytic_line \
|
||||
JOIN account_analytic_journal \
|
||||
ON account_analytic_line.journal_id = account_analytic_journal.id \
|
||||
WHERE account_analytic_line.account_id IN %s \
|
||||
AND account_analytic_journal.type='general' \
|
||||
GROUP BY account_analytic_line.account_id",(parent_ids,))
|
||||
ff = cr.fetchall()
|
||||
for account_id, hq in ff:
|
||||
|
@ -211,24 +211,24 @@ class account_analytic_account(osv.osv):
|
|||
# This computation doesn't take care of pricelist !
|
||||
# Just consider list_price
|
||||
if parent_ids:
|
||||
cr.execute("""select account_analytic_line.account_id as account_id, \
|
||||
COALESCE(sum((account_analytic_line.unit_amount * pt.list_price) \
|
||||
cr.execute("""SELECT account_analytic_line.account_id AS account_id, \
|
||||
COALESCE(SUM((account_analytic_line.unit_amount * pt.list_price) \
|
||||
- (account_analytic_line.unit_amount * pt.list_price \
|
||||
* hr.factor)),0.0) as somme
|
||||
from account_analytic_line \
|
||||
left join account_analytic_journal \
|
||||
on (account_analytic_line.journal_id = account_analytic_journal.id) \
|
||||
join product_product pp \
|
||||
on (account_analytic_line.product_id = pp.id) \
|
||||
join product_template pt \
|
||||
on (pp.product_tmpl_id = pt.id) \
|
||||
join account_analytic_account a \
|
||||
on (a.id=account_analytic_line.account_id) \
|
||||
join hr_timesheet_invoice_factor hr \
|
||||
on (hr.id=a.to_invoice) \
|
||||
where account_analytic_line.account_id IN %s \
|
||||
and a.to_invoice IS NOT NULL \
|
||||
and account_analytic_journal.type IN ('purchase','general')
|
||||
* hr.factor)), 0.0) AS somme
|
||||
FROM account_analytic_line \
|
||||
LEFT JOIN account_analytic_journal \
|
||||
ON (account_analytic_line.journal_id = account_analytic_journal.id) \
|
||||
JOIN product_product pp \
|
||||
ON (account_analytic_line.product_id = pp.id) \
|
||||
JOIN product_template pt \
|
||||
ON (pp.product_tmpl_id = pt.id) \
|
||||
JOIN account_analytic_account a \
|
||||
ON (a.id=account_analytic_line.account_id) \
|
||||
JOIN hr_timesheet_invoice_factor hr \
|
||||
ON (hr.id=a.to_invoice) \
|
||||
WHERE account_analytic_line.account_id IN %s \
|
||||
AND a.to_invoice IS NOT NULL \
|
||||
AND account_analytic_journal.type IN ('purchase', 'general')
|
||||
GROUP BY account_analytic_line.account_id""",(parent_ids,))
|
||||
for account_id, sum in cr.fetchall():
|
||||
res2[account_id] = round(sum, dp)
|
||||
|
@ -250,53 +250,51 @@ class account_analytic_account(osv.osv):
|
|||
|
||||
def _ca_invoiced_calc(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
|
||||
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)], context=context))
|
||||
if parent_ids:
|
||||
cr.execute("select account_analytic_line.account_id, COALESCE(sum(amount_currency),0.0) \
|
||||
from account_analytic_line \
|
||||
join account_analytic_journal \
|
||||
on account_analytic_line.journal_id = account_analytic_journal.id \
|
||||
where account_analytic_line.account_id IN %s \
|
||||
and account_analytic_journal.type = 'sale' \
|
||||
group by account_analytic_line.account_id" ,(parent_ids,))
|
||||
cr.execute("SELECT account_analytic_line.account_id, COALESCE(SUM(amount_currency), 0.0) \
|
||||
FROM account_analytic_line \
|
||||
JOIN account_analytic_journal \
|
||||
ON account_analytic_line.journal_id = account_analytic_journal.id \
|
||||
WHERE account_analytic_line.account_id IN %s \
|
||||
AND account_analytic_journal.type = 'sale' \
|
||||
GROUP BY account_analytic_line.account_id", (parent_ids,))
|
||||
for account_id, sum in cr.fetchall():
|
||||
res[account_id] = round(sum,2)
|
||||
|
||||
return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, res, context)
|
||||
return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, res, context=context)
|
||||
|
||||
def _total_cost_calc(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
|
||||
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)], context=context))
|
||||
if parent_ids:
|
||||
cr.execute("""select account_analytic_line.account_id,COALESCE(sum(amount_currency),0.0) \
|
||||
|
||||
from account_analytic_line \
|
||||
join account_analytic_journal \
|
||||
on account_analytic_line.journal_id = account_analytic_journal.id \
|
||||
where account_analytic_line.account_id IN %s \
|
||||
and amount<0 \
|
||||
cr.execute("""SELECT account_analytic_line.account_id, COALESCE(SUM(amount_currency), 0.0) \
|
||||
FROM account_analytic_line \
|
||||
JOIN account_analytic_journal \
|
||||
ON account_analytic_line.journal_id = account_analytic_journal.id \
|
||||
WHERE account_analytic_line.account_id IN %s \
|
||||
AND amount<0 \
|
||||
GROUP BY account_analytic_line.account_id""",(parent_ids,))
|
||||
for account_id, sum in cr.fetchall():
|
||||
res[account_id] = round(sum,2)
|
||||
return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, res, context)
|
||||
return self._compute_currency_for_level_tree(cr, uid, ids, parent_ids, res, context=context)
|
||||
|
||||
def _remaining_hours_calc(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
for account in self.browse(cr, uid, ids):
|
||||
for account in self.browse(cr, uid, ids, context=context):
|
||||
if account.quantity_max != 0:
|
||||
res[account.id] = account.quantity_max - account.hours_quantity
|
||||
else:
|
||||
res[account.id]=0.0
|
||||
res[account.id] = 0.0
|
||||
for id in ids:
|
||||
res[id] = round(res.get(id, 0.0),2)
|
||||
return res
|
||||
|
||||
def _hours_qtt_invoiced_calc(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
for account in self.browse(cr, uid, ids):
|
||||
for account in self.browse(cr, uid, ids, context=context):
|
||||
res[account.id] = account.hours_quantity - account.hours_qtt_non_invoiced
|
||||
if res[account.id] < 0:
|
||||
res[account.id]=0.0
|
||||
res[account.id] = 0.0
|
||||
for id in ids:
|
||||
res[id] = round(res.get(id, 0.0),2)
|
||||
return res
|
||||
|
@ -414,7 +412,7 @@ class account_analytic_account_summary_user(osv.osv):
|
|||
max_user = cr.fetchone()[0]
|
||||
account_ids = [int(str(x/max_user - (x%max_user == 0 and 1 or 0))) for x in ids]
|
||||
user_ids = [int(str(x-((x/max_user - (x%max_user == 0 and 1 or 0)) *max_user))) for x in ids]
|
||||
parent_ids = tuple(account_obj.search(cr, uid, [('parent_id', 'child_of', account_ids)]))
|
||||
parent_ids = tuple(account_obj.search(cr, uid, [('parent_id', 'child_of', account_ids)], context=context))
|
||||
if parent_ids:
|
||||
cr.execute('SELECT id, unit_amount ' \
|
||||
'FROM account_analytic_analysis_summary_user ' \
|
||||
|
@ -436,7 +434,7 @@ class account_analytic_account_summary_user(osv.osv):
|
|||
'account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
|
||||
'unit_amount': fields.function(_unit_amount, method=True, type='float',
|
||||
string='Total Time'),
|
||||
'user' : fields.many2one('res.users', 'User'),
|
||||
'user': fields.many2one('res.users', 'User'),
|
||||
}
|
||||
|
||||
def init(self, cr):
|
||||
|
@ -477,30 +475,30 @@ class account_analytic_account_summary_user(osv.osv):
|
|||
|
||||
def _read_flat(self, cr, user, ids, fields, context=None, load='_classic_read'):
|
||||
if not context:
|
||||
context={}
|
||||
context = {}
|
||||
if not ids:
|
||||
return []
|
||||
|
||||
if fields==None:
|
||||
if fields is None:
|
||||
fields = self._columns.keys()
|
||||
res_trans_obj = self.pool.get('ir.translation')
|
||||
|
||||
# construct a clause for the rules :
|
||||
# construct a clause for the rules:
|
||||
d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name, 'read', context=context)
|
||||
|
||||
# all inherited fields + all non inherited fields for which the attribute whose name is in load is True
|
||||
fields_pre = filter(lambda x: x in self._columns and getattr(self._columns[x],'_classic_write'), fields) + self._inherits.values()
|
||||
|
||||
res = []
|
||||
cr.execute('SELECT MAX(id) FROM res_users')
|
||||
max_user = cr.fetchone()[0]
|
||||
if len(fields_pre) :
|
||||
if fields_pre:
|
||||
fields_pre2 = map(lambda x: (x in ('create_date', 'write_date')) and ('date_trunc(\'second\', '+x+') as '+x) or '"'+x+'"', fields_pre)
|
||||
for i in range(0, len(ids), cr.IN_MAX):
|
||||
sub_ids = ids[i:i+cr.IN_MAX]
|
||||
if d1:
|
||||
cr.execute('select %s from \"%s\" where id IN (%s) ' \
|
||||
'and account_id IN (%s) ' \
|
||||
'and "user" IN (%s) and %s order by %s' % \
|
||||
cr.execute('SELECT %s FROM \"%s\" WHERE id IN (%s) ' \
|
||||
'AND account_id IN (%s) ' \
|
||||
'AND "user" IN (%s) AND %s ORDER BY %s' % \
|
||||
(','.join(fields_pre2 + ['id']), self._table,
|
||||
','.join([str(x) for x in sub_ids]),
|
||||
','.join([str(x/max_user - (x%max_user == 0 and 1 or 0)) for x in sub_ids]),
|
||||
|
@ -510,9 +508,9 @@ class account_analytic_account_summary_user(osv.osv):
|
|||
raise except_orm(_('AccessError'),
|
||||
_('You try to bypass an access rule (Document type: %s).') % self._description)
|
||||
else:
|
||||
cr.execute('select %s from \"%s\" where id IN (%s) ' \
|
||||
'and account_id IN (%s) ' \
|
||||
'and "user" IN (%s) order by %s' % \
|
||||
cr.execute('SELECT %s FROM \"%s\" WHERE id IN (%s) ' \
|
||||
'AND account_id IN (%s) ' \
|
||||
'AND "user" IN (%s) ORDER BY %s' % \
|
||||
(','.join(fields_pre2 + ['id']), self._table,
|
||||
','.join([str(x) for x in sub_ids]),
|
||||
','.join([str(x/max_user - (x%max_user == 0 and 1 or 0)) for x in sub_ids]),
|
||||
|
@ -521,7 +519,6 @@ class account_analytic_account_summary_user(osv.osv):
|
|||
res.extend(cr.dictfetchall())
|
||||
else:
|
||||
res = map(lambda x: {'id': x}, ids)
|
||||
res_trans_obj = self.pool.get('ir.translation')
|
||||
for f in fields_pre:
|
||||
if self._columns[f].translate:
|
||||
ids = map(lambda x: x['id'], res)
|
||||
|
@ -579,7 +576,7 @@ class account_analytic_account_summary_month(osv.osv):
|
|||
account_obj = self.pool.get('account.analytic.account')
|
||||
account_ids = [int(str(int(x))[:-6]) for x in ids]
|
||||
month_ids = [int(str(int(x))[-6:]) for x in ids]
|
||||
parent_ids = tuple(account_obj.search(cr, uid, [('parent_id', 'child_of', account_ids)]))
|
||||
parent_ids = tuple(account_obj.search(cr, uid, [('parent_id', 'child_of', account_ids)], context=context))
|
||||
if parent_ids:
|
||||
cr.execute('SELECT id, unit_amount ' \
|
||||
'FROM account_analytic_analysis_summary_month ' \
|
||||
|
@ -598,11 +595,9 @@ class account_analytic_account_summary_month(osv.osv):
|
|||
return res
|
||||
|
||||
_columns = {
|
||||
'account_id': fields.many2one('account.analytic.account', 'Analytic Account',
|
||||
readonly=True),
|
||||
'unit_amount': fields.function(_unit_amount, method=True, type='float',
|
||||
string='Total Time'),
|
||||
'month': fields.char('Month', size=25, readonly=True),
|
||||
'account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
|
||||
'unit_amount': fields.function(_unit_amount, method=True, type='float', string='Total Time'),
|
||||
'month': fields.char('Month', size=32, readonly=True),
|
||||
}
|
||||
|
||||
def init(self, cr):
|
||||
|
@ -654,28 +649,27 @@ class account_analytic_account_summary_month(osv.osv):
|
|||
|
||||
def _read_flat(self, cr, user, ids, fields, context=None, load='_classic_read'):
|
||||
if not context:
|
||||
context={}
|
||||
context = {}
|
||||
if not ids:
|
||||
return []
|
||||
|
||||
if fields==None:
|
||||
if fields is None:
|
||||
fields = self._columns.keys()
|
||||
|
||||
res_trans_obj = self.pool.get('ir.translation')
|
||||
# construct a clause for the rules :
|
||||
d1, d2, tables = self.pool.get('ir.rule').domain_get(cr, user, self._name)
|
||||
d1, d2, tables= self.pool.get('ir.rule').domain_get(cr, user, self._name)
|
||||
|
||||
# all inherited fields + all non inherited fields for which the attribute whose name is in load is True
|
||||
fields_pre = filter(lambda x: x in self._columns and getattr(self._columns[x],'_classic_write'), fields) + self._inherits.values()
|
||||
|
||||
res = []
|
||||
if len(fields_pre) :
|
||||
if fields_pre:
|
||||
fields_pre2 = map(lambda x: (x in ('create_date', 'write_date')) and ('date_trunc(\'second\', '+x+') as '+x) or '"'+x+'"', fields_pre)
|
||||
for i in range(0, len(ids), cr.IN_MAX):
|
||||
sub_ids = ids[i:i+cr.IN_MAX]
|
||||
if d1:
|
||||
cr.execute('select %s from \"%s\" where id IN (%s) ' \
|
||||
'and account_id IN (%s) ' \
|
||||
'and month_id IN (%s) and %s order by %s' % \
|
||||
cr.execute('SELECT %s FROM \"%s\" WHERE id IN (%s) ' \
|
||||
'AND account_id IN (%s) ' \
|
||||
'AND month_id IN (%s) AND %s ORDER BY %s' % \
|
||||
(','.join(fields_pre2 + ['id']), self._table,
|
||||
','.join([str(x) for x in sub_ids]),
|
||||
','.join([str(x)[:-6] for x in sub_ids]),
|
||||
|
@ -685,9 +679,9 @@ class account_analytic_account_summary_month(osv.osv):
|
|||
raise except_orm(_('AccessError'),
|
||||
_('You try to bypass an access rule (Document type: %s).') % self._description)
|
||||
else:
|
||||
cr.execute('select %s from \"%s\" where id IN (%s) ' \
|
||||
'and account_id IN (%s) ' \
|
||||
'and month_id IN (%s) order by %s' % \
|
||||
cr.execute('SELECT %s FROM \"%s\" WHERE id IN (%s) ' \
|
||||
'AND account_id IN (%s) ' \
|
||||
'AND month_id IN (%s) ORDER BY %s' % \
|
||||
(','.join(fields_pre2 + ['id']), self._table,
|
||||
','.join([str(x) for x in sub_ids]),
|
||||
','.join([str(x)[:-6] for x in sub_ids]),
|
||||
|
@ -697,7 +691,6 @@ class account_analytic_account_summary_month(osv.osv):
|
|||
else:
|
||||
res = map(lambda x: {'id': x}, ids)
|
||||
|
||||
res_trans_obj = self.pool.get('ir.translation')
|
||||
for f in fields_pre:
|
||||
if self._columns[f].translate:
|
||||
ids = map(lambda x: x['id'], res)
|
||||
|
@ -739,10 +732,8 @@ class account_analytic_account_summary_month(osv.osv):
|
|||
res2 = self._columns[f].get(cr, self, ids, f, user, context=context, values=res)
|
||||
for record in res:
|
||||
record[f] = res2[record['id']]
|
||||
|
||||
return res
|
||||
|
||||
account_analytic_account_summary_month()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -21,13 +21,13 @@
|
|||
|
||||
import time
|
||||
|
||||
from osv import fields,osv
|
||||
from osv import fields, osv
|
||||
|
||||
class account_analytic_default(osv.osv):
|
||||
_name = 'account.analytic.default'
|
||||
_description = 'Analytic Distribution'
|
||||
_rec_name = 'analytic_id'
|
||||
_order = 'sequence'
|
||||
_name = "account.analytic.default"
|
||||
_description = "Analytic Distribution"
|
||||
_rec_name = "analytic_id"
|
||||
_order = "sequence"
|
||||
_columns = {
|
||||
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of analytic distribution."),
|
||||
'analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'),
|
||||
|
@ -38,50 +38,50 @@ class account_analytic_default(osv.osv):
|
|||
'date_start': fields.date('Start Date'),
|
||||
'date_stop': fields.date('End Date'),
|
||||
}
|
||||
|
||||
|
||||
def account_get(self, cr, uid, product_id=None, partner_id=None, user_id=None, date=None, context=None):
|
||||
domain = []
|
||||
if product_id:
|
||||
domain += ['|',('product_id','=',product_id)]
|
||||
domain += [('product_id','=',False)]
|
||||
domain += ['|', ('product_id', '=', product_id)]
|
||||
domain += [('product_id','=', False)]
|
||||
if partner_id:
|
||||
domain += ['|',('partner_id','=',partner_id)]
|
||||
domain += [('partner_id','=',False)]
|
||||
domain += ['|', ('partner_id', '=', partner_id)]
|
||||
domain += [('partner_id', '=', False)]
|
||||
if user_id:
|
||||
domain += ['|',('user_id','=',user_id)]
|
||||
domain += [('user_id','=',False)]
|
||||
domain += ['|',('user_id', '=', user_id)]
|
||||
domain += [('user_id','=', False)]
|
||||
if date:
|
||||
domain += ['|',('date_start','<=',date),('date_start','=',False)]
|
||||
domain += ['|',('date_stop','>=',date),('date_stop','=',False)]
|
||||
domain += ['|', ('date_start', '<=', date), ('date_start', '=', False)]
|
||||
domain += ['|', ('date_stop', '>=', date), ('date_stop', '=', False)]
|
||||
best_index = -1
|
||||
res = False
|
||||
for rec in self.browse(cr, uid, self.search(cr, uid, domain, context=context), context=context):
|
||||
index = 0
|
||||
if rec.product_id: index+=1
|
||||
if rec.partner_id: index+=1
|
||||
if rec.user_id: index+=1
|
||||
if rec.date_start: index+=1
|
||||
if rec.date_stop: index+=1
|
||||
if index>best_index:
|
||||
if rec.product_id: index += 1
|
||||
if rec.partner_id: index += 1
|
||||
if rec.user_id: index += 1
|
||||
if rec.date_start: index += 1
|
||||
if rec.date_stop: index += 1
|
||||
if index > best_index:
|
||||
res = rec
|
||||
best_index = index
|
||||
return res
|
||||
|
||||
|
||||
account_analytic_default()
|
||||
|
||||
class account_invoice_line(osv.osv):
|
||||
_inherit = 'account.invoice.line'
|
||||
_description = 'Invoice Line'
|
||||
_inherit = "account.invoice.line"
|
||||
_description = "Invoice Line"
|
||||
|
||||
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None):
|
||||
res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id=currency_id, context=context)
|
||||
rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context)
|
||||
res_prod = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id=currency_id, context=context)
|
||||
rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context=context)
|
||||
if rec:
|
||||
res_prod['value'].update({'account_analytic_id':rec.analytic_id.id})
|
||||
res_prod['value'].update({'account_analytic_id': rec.analytic_id.id})
|
||||
else:
|
||||
res_prod['value'].update({'account_analytic_id':False})
|
||||
res_prod['value'].update({'account_analytic_id': False})
|
||||
return res_prod
|
||||
|
||||
|
||||
account_invoice_line()
|
||||
|
||||
|
||||
|
@ -95,28 +95,27 @@ class stock_picking(osv.osv):
|
|||
if rec:
|
||||
return rec.analytic_id.id
|
||||
|
||||
return super(stock_picking, self)._get_account_analytic_invoice(cursor,
|
||||
user, picking, move_line)
|
||||
return super(stock_picking, self)._get_account_analytic_invoice(cursor, user, picking, move_line)
|
||||
|
||||
stock_picking()
|
||||
|
||||
class sale_order_line(osv.osv):
|
||||
_inherit = 'sale.order.line'
|
||||
_inherit = "sale.order.line"
|
||||
|
||||
# Method overridden to set the analytic account by default on criterion match
|
||||
def invoice_line_create(self, cr, uid, ids, context=None):
|
||||
create_ids = super(sale_order_line,self).invoice_line_create(cr, uid, ids, context)
|
||||
create_ids = super(sale_order_line, self).invoice_line_create(cr, uid, ids, context=context)
|
||||
if not ids:
|
||||
return create_ids
|
||||
sale_line = self.browse(cr, uid, ids[0], context)
|
||||
sale_line = self.browse(cr, uid, ids[0], context=context)
|
||||
inv_line_obj = self.pool.get('account.invoice.line')
|
||||
anal_def_obj = self.pool.get('account.analytic.default')
|
||||
|
||||
for line in inv_line_obj.browse(cr, uid, create_ids, context):
|
||||
rec = anal_def_obj.account_get(cr, uid, line.product_id.id, sale_line.order_id.partner_id.id, sale_line.order_id.user_id.id, time.strftime('%Y-%m-%d'), context)
|
||||
for line in inv_line_obj.browse(cr, uid, create_ids, context=context):
|
||||
rec = anal_def_obj.account_get(cr, uid, line.product_id.id, sale_line.order_id.partner_id.id, sale_line.order_id.user_id.id, time.strftime('%Y-%m-%d'), context=context)
|
||||
|
||||
if rec:
|
||||
inv_line_obj.write(cr, uid, [line.id], {'account_analytic_id':rec.analytic_id.id}, context=context)
|
||||
inv_line_obj.write(cr, uid, [line.id], {'account_analytic_id': rec.analytic_id.id}, context=context)
|
||||
return create_ids
|
||||
|
||||
sale_order_line()
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
<field name="product_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="company_id"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from lxml import etree
|
||||
|
||||
import time
|
||||
from lxml import etree
|
||||
|
||||
from osv import fields, osv
|
||||
import tools
|
||||
|
@ -34,10 +35,10 @@ class one2many_mod2(fields.one2many):
|
|||
res[id] = []
|
||||
ids2 = None
|
||||
if 'journal_id' in context:
|
||||
journal = obj.pool.get('account.journal').browse(cr, user, context['journal_id'], context)
|
||||
journal = obj.pool.get('account.journal').browse(cr, user, context['journal_id'], context=context)
|
||||
pnum = int(name[7]) -1
|
||||
plan = journal.plan_id
|
||||
if plan and len(plan.plan_ids)>pnum:
|
||||
if plan and len(plan.plan_ids) > pnum:
|
||||
acc_id = plan.plan_ids[pnum].root_analytic_id.id
|
||||
ids2 = obj.pool.get(self._obj).search(cr, user, [(self._fields_id,'in',ids),('analytic_account_id','child_of',[acc_id])], limit=self._limit)
|
||||
if ids2 is None:
|
||||
|
@ -50,8 +51,8 @@ class account_analytic_plan(osv.osv):
|
|||
_name = "account.analytic.plan"
|
||||
_description = "Analytic Plan"
|
||||
_columns = {
|
||||
'name': fields.char('Analytic Plan', size=64, required=True, select=True,),
|
||||
'plan_ids': fields.one2many('account.analytic.plan.line','plan_id','Analytic Plans'),
|
||||
'name': fields.char('Analytic Plan', size=64, required=True, select=True),
|
||||
'plan_ids': fields.one2many('account.analytic.plan.line', 'plan_id', 'Analytic Plans'),
|
||||
}
|
||||
|
||||
account_analytic_plan()
|
||||
|
@ -61,10 +62,10 @@ class account_analytic_plan_line(osv.osv):
|
|||
_description = "Analytic Plan Line"
|
||||
_order = "sequence, id"
|
||||
_columns = {
|
||||
'plan_id':fields.many2one('account.analytic.plan','Analytic Plan'),
|
||||
'plan_id': fields.many2one('account.analytic.plan','Analytic Plan'),
|
||||
'name': fields.char('Plan Name', size=64, required=True, select=True),
|
||||
'sequence':fields.integer('Sequence'),
|
||||
'root_analytic_id': fields.many2one('account.analytic.account','Root Account',help="Root account of this plan.",required=False),
|
||||
'sequence': fields.integer('Sequence'),
|
||||
'root_analytic_id': fields.many2one('account.analytic.account', 'Root Account', help="Root account of this plan.", required=False),
|
||||
'min_required': fields.float('Minimum Allowed (%)'),
|
||||
'max_required': fields.float('Maximum Allowed (%)'),
|
||||
}
|
||||
|
@ -76,27 +77,28 @@ class account_analytic_plan_line(osv.osv):
|
|||
account_analytic_plan_line()
|
||||
|
||||
class account_analytic_plan_instance(osv.osv):
|
||||
_name = 'account.analytic.plan.instance'
|
||||
_description = 'Analytic Plan Instance'
|
||||
_name = "account.analytic.plan.instance"
|
||||
_description = "Analytic Plan Instance"
|
||||
_columns = {
|
||||
'name':fields.char('Analytic Distribution', size=64),
|
||||
'code':fields.char('Distribution Code', size=16),
|
||||
'name': fields.char('Analytic Distribution', size=64),
|
||||
'code': fields.char('Distribution Code', size=16),
|
||||
'journal_id': fields.many2one('account.analytic.journal', 'Analytic Journal' ),
|
||||
'account_ids':fields.one2many('account.analytic.plan.instance.line', 'plan_id', 'Account Id'),
|
||||
'account1_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account1 Id'),
|
||||
'account2_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account2 Id'),
|
||||
'account3_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account3 Id'),
|
||||
'account4_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account4 Id'),
|
||||
'account5_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account5 Id'),
|
||||
'account6_ids':one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account6 Id'),
|
||||
'plan_id':fields.many2one('account.analytic.plan', "Model's Plan"),
|
||||
'account_ids': fields.one2many('account.analytic.plan.instance.line', 'plan_id', 'Account Id'),
|
||||
'account1_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account1 Id'),
|
||||
'account2_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account2 Id'),
|
||||
'account3_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account3 Id'),
|
||||
'account4_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account4 Id'),
|
||||
'account5_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account5 Id'),
|
||||
'account6_ids': one2many_mod2('account.analytic.plan.instance.line', 'plan_id', 'Account6 Id'),
|
||||
'plan_id': fields.many2one('account.analytic.plan', "Model's Plan"),
|
||||
}
|
||||
|
||||
def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
|
||||
if context is None:
|
||||
context = {}
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
if context.get('journal_id', False):
|
||||
journal = self.pool.get('account.journal').browse(cr, user, [context['journal_id']], context=context)[0]
|
||||
journal = journal_obj.browse(cr, user, [context['journal_id']], context=context)[0]
|
||||
analytic_journal = journal.analytic_journal_id and journal.analytic_journal_id.id or False
|
||||
args.append('|')
|
||||
args.append(('journal_id', '=', analytic_journal))
|
||||
|
@ -108,15 +110,16 @@ class account_analytic_plan_instance(osv.osv):
|
|||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
default.update({'account1_ids':False, 'account2_ids':False, 'account3_ids':False,
|
||||
default.update({'account1_ids':False, 'account2_ids':False, 'account3_ids':False,
|
||||
'account4_ids':False, 'account5_ids':False, 'account6_ids':False})
|
||||
return super(account_analytic_plan_instance, self).copy(cr, uid, id, default, context)
|
||||
return super(account_analytic_plan_instance, self).copy(cr, uid, id, default, context=context)
|
||||
|
||||
def _default_journal(self, cr, uid, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
if context.has_key('journal_id') and context['journal_id']:
|
||||
journal = self.pool.get('account.journal').browse(cr, uid, context['journal_id'])
|
||||
journal = journal_obj.browse(cr, uid, context['journal_id'], context=context)
|
||||
if journal.analytic_journal_id:
|
||||
return journal.analytic_journal_id.id
|
||||
return False
|
||||
|
@ -127,7 +130,7 @@ class account_analytic_plan_instance(osv.osv):
|
|||
}
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
res = []
|
||||
for inst in self.browse(cr, uid, ids, context):
|
||||
for inst in self.browse(cr, uid, ids, context=context):
|
||||
name = inst.name or '/'
|
||||
if name and inst.code:
|
||||
name=name+' ('+inst.code+')'
|
||||
|
@ -135,7 +138,7 @@ class account_analytic_plan_instance(osv.osv):
|
|||
return res
|
||||
|
||||
def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100):
|
||||
args= args or []
|
||||
args = args or []
|
||||
if name:
|
||||
ids = self.search(cr, uid, [('code', '=', name)] + args, limit=limit, context=context or {})
|
||||
if not ids:
|
||||
|
@ -145,15 +148,16 @@ class account_analytic_plan_instance(osv.osv):
|
|||
return self.name_get(cr, uid, ids, context or {})
|
||||
|
||||
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
||||
wiz_id = self.pool.get('ir.actions.act_window').search(cr, uid, [("name","=","analytic.plan.create.model.action")])
|
||||
wiz_id = self.pool.get('ir.actions.act_window').search(cr, uid, [("name","=","analytic.plan.create.model.action")], context=context)
|
||||
res = super(account_analytic_plan_instance,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
|
||||
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
analytic_plan_obj = self.pool.get('account.analytic.plan')
|
||||
if (res['type']=='form'):
|
||||
plan_id = False
|
||||
if context.get('journal_id',False):
|
||||
plan_id = self.pool.get('account.journal').browse(cr, uid, int(context['journal_id']), context).plan_id
|
||||
elif context.get('plan_id',False):
|
||||
plan_id = self.pool.get('account.analytic.plan').browse(cr, uid, int(context['plan_id']), context)
|
||||
if context.get('journal_id', False):
|
||||
plan_id = journal_obj.browse(cr, uid, int(context['journal_id']), context=context).plan_id
|
||||
elif context.get('plan_id', False):
|
||||
plan_id = analytic_plan_obj.browse(cr, uid, int(context['plan_id']), context=context)
|
||||
|
||||
if plan_id:
|
||||
i=1
|
||||
|
@ -183,40 +187,43 @@ class account_analytic_plan_instance(osv.osv):
|
|||
return res
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
ana_plan_instance_obj = self.pool.get('account.analytic.plan.instance')
|
||||
acct_anal_acct = self.pool.get('account.analytic.account')
|
||||
acct_anal_plan_line_obj = self.pool.get('account.analytic.plan.line')
|
||||
if context and 'journal_id' in context:
|
||||
journal= self.pool.get('account.journal').browse(cr, uid, context['journal_id'])
|
||||
journal = journal_obj.browse(cr, uid, context['journal_id'], context=context)
|
||||
|
||||
pids = self.pool.get('account.analytic.plan.instance').search(cr, uid, [('name','=',vals['name']),('code','=',vals['code']),('plan_id','<>',False)])
|
||||
pids = ana_plan_instance_obj.search(cr, uid, [('name','=',vals['name']), ('code','=',vals['code']), ('plan_id','<>',False)], context=context)
|
||||
if pids:
|
||||
raise osv.except_osv(_('Error'), _('A model having this name and code already exists !'))
|
||||
|
||||
acct_anal_acct = self.pool.get('account.analytic.account')
|
||||
acct_anal_plan_line_obj = self.pool.get('account.analytic.plan.line')
|
||||
res = acct_anal_plan_line_obj.search(cr, uid, [('plan_id','=',journal.plan_id.id)])
|
||||
res = acct_anal_plan_line_obj.search(cr, uid, [('plan_id','=',journal.plan_id.id)], context=context)
|
||||
for i in res:
|
||||
total_per_plan = 0
|
||||
item = acct_anal_plan_line_obj.browse(cr, uid, i)
|
||||
temp_list=['account1_ids','account2_ids','account3_ids','account4_ids','account5_ids','account6_ids']
|
||||
item = acct_anal_plan_line_obj.browse(cr, uid, i, context=context)
|
||||
temp_list = ['account1_ids','account2_ids','account3_ids','account4_ids','account5_ids','account6_ids']
|
||||
for l in temp_list:
|
||||
if vals.has_key(l):
|
||||
for tempo in vals[l]:
|
||||
if acct_anal_acct.search(cr, uid, [('parent_id','child_of',[item.root_analytic_id.id]),('id','=',tempo[2]['analytic_account_id'])]):
|
||||
if acct_anal_acct.search(cr, uid, [('parent_id', 'child_of', [item.root_analytic_id.id]), ('id', '=', tempo[2]['analytic_account_id'])], context=context):
|
||||
total_per_plan += tempo[2]['rate']
|
||||
if total_per_plan < item.min_required or total_per_plan > item.max_required:
|
||||
raise osv.except_osv(_('Value Error') ,_('The Total Should be Between %s and %s') % (str(item.min_required), str(item.max_required)))
|
||||
raise osv.except_osv(_('Value Error'),_('The Total Should be Between %s and %s') % (str(item.min_required), str(item.max_required)))
|
||||
|
||||
return super(account_analytic_plan_instance, self).create(cr, uid, vals, context)
|
||||
return super(account_analytic_plan_instance, self).create(cr, uid, vals, context=context)
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True):
|
||||
this = self.browse(cr, uid, ids[0])
|
||||
this = self.browse(cr, uid, ids[0], context=context)
|
||||
invoice_line_obj = self.pool.get('account.invoice.line')
|
||||
if this.plan_id and not vals.has_key('plan_id'):
|
||||
#this instance is a model, so we have to create a new plan instance instead of modifying it
|
||||
#copy the existing model
|
||||
temp_id = self.copy(cr, uid, this.id, None, context)
|
||||
temp_id = self.copy(cr, uid, this.id, None, context=context)
|
||||
#get the list of the invoice line that were linked to the model
|
||||
list = self.pool.get('account.invoice.line').search(cr, uid, [('analytics_id','=',this.id)])
|
||||
lists = invoice_line_obj.search(cr, uid, [('analytics_id','=',this.id)], context=context)
|
||||
#make them link to the copy
|
||||
self.pool.get('account.invoice.line').write(cr, uid, list, {'analytics_id':temp_id}, context)
|
||||
invoice_line_obj.write(cr, uid, lists, {'analytics_id':temp_id}, context=context)
|
||||
|
||||
#and finally modify the old model to be not a model anymore
|
||||
vals['plan_id'] = False
|
||||
|
@ -224,25 +231,25 @@ class account_analytic_plan_instance(osv.osv):
|
|||
vals['name'] = this.name and (str(this.name)+'*') or "*"
|
||||
if not vals.has_key('code'):
|
||||
vals['code'] = this.code and (str(this.code)+'*') or "*"
|
||||
return super(account_analytic_plan_instance, self).write(cr, uid, ids, vals, context)
|
||||
return super(account_analytic_plan_instance, self).write(cr, uid, ids, vals, context=context)
|
||||
|
||||
account_analytic_plan_instance()
|
||||
|
||||
class account_analytic_plan_instance_line(osv.osv):
|
||||
_name='account.analytic.plan.instance.line'
|
||||
_description = 'Analytic Instance Line'
|
||||
_columns={
|
||||
'plan_id':fields.many2one('account.analytic.plan.instance', 'Plan Id'),
|
||||
'analytic_account_id':fields.many2one('account.analytic.account', 'Analytic Account', required=True),
|
||||
'rate':fields.float('Rate (%)', required=True),
|
||||
_name = "account.analytic.plan.instance.line"
|
||||
_description = "Analytic Instance Line"
|
||||
_columns = {
|
||||
'plan_id': fields.many2one('account.analytic.plan.instance', 'Plan Id'),
|
||||
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True),
|
||||
'rate': fields.float('Rate (%)', required=True),
|
||||
}
|
||||
_defaults = {
|
||||
'rate': 100.0
|
||||
}
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
if not len(ids):
|
||||
if not ids:
|
||||
return []
|
||||
reads = self.read(cr, uid, ids, ['analytic_account_id'], context)
|
||||
reads = self.read(cr, uid, ids, ['analytic_account_id'], context=context)
|
||||
res = []
|
||||
for record in reads:
|
||||
res.append((record['id'], record['analytic_account_id']))
|
||||
|
@ -251,44 +258,44 @@ class account_analytic_plan_instance_line(osv.osv):
|
|||
account_analytic_plan_instance_line()
|
||||
|
||||
class account_journal(osv.osv):
|
||||
_inherit='account.journal'
|
||||
_name='account.journal'
|
||||
_inherit = "account.journal"
|
||||
_name = "account.journal"
|
||||
_columns = {
|
||||
'plan_id':fields.many2one('account.analytic.plan', 'Analytic Plans'),
|
||||
'plan_id': fields.many2one('account.analytic.plan', 'Analytic Plans'),
|
||||
}
|
||||
|
||||
account_journal()
|
||||
|
||||
class account_invoice_line(osv.osv):
|
||||
_inherit='account.invoice.line'
|
||||
_name='account.invoice.line'
|
||||
_inherit = "account.invoice.line"
|
||||
_name = "account.invoice.line"
|
||||
_columns = {
|
||||
'analytics_id':fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'),
|
||||
'analytics_id': fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'),
|
||||
}
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
if 'analytics_id' in vals and isinstance(vals['analytics_id'],tuple):
|
||||
if 'analytics_id' in vals and isinstance(vals['analytics_id'], tuple):
|
||||
vals['analytics_id'] = vals['analytics_id'][0]
|
||||
return super(account_invoice_line, self).create(cr, uid, vals, context)
|
||||
return super(account_invoice_line, self).create(cr, uid, vals, context=context)
|
||||
|
||||
def move_line_get_item(self, cr, uid, line, context=None):
|
||||
res= super(account_invoice_line,self).move_line_get_item(cr, uid, line, context={})
|
||||
res ['analytics_id']=line.analytics_id and line.analytics_id.id or False
|
||||
res = super(account_invoice_line, self).move_line_get_item(cr, uid, line, context=context)
|
||||
res ['analytics_id'] = line.analytics_id and line.analytics_id.id or False
|
||||
return res
|
||||
|
||||
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None):
|
||||
res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context=context)
|
||||
rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context)
|
||||
res_prod = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context=context)
|
||||
rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context=context)
|
||||
if rec and rec.analytics_id:
|
||||
res_prod['value'].update({'analytics_id':rec.analytics_id.id})
|
||||
res_prod['value'].update({'analytics_id': rec.analytics_id.id})
|
||||
return res_prod
|
||||
|
||||
account_invoice_line()
|
||||
|
||||
class account_move_line(osv.osv):
|
||||
|
||||
_inherit='account.move.line'
|
||||
_name='account.move.line'
|
||||
_inherit = "account.move.line"
|
||||
_name = "account.move.line"
|
||||
_columns = {
|
||||
'analytics_id':fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'),
|
||||
}
|
||||
|
@ -300,9 +307,9 @@ class account_move_line(osv.osv):
|
|||
return data
|
||||
|
||||
def create_analytic_lines(self, cr, uid, ids, context=None):
|
||||
super(account_move_line, self).create_analytic_lines(cr, uid, ids, context)
|
||||
super(account_move_line, self).create_analytic_lines(cr, uid, ids, context=context)
|
||||
analytic_line_obj = self.pool.get('account.analytic.line')
|
||||
for line in self.browse(cr, uid, ids, context):
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
if line.analytics_id:
|
||||
if not line.journal_id.analytic_journal_id:
|
||||
raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (line.journal_id.name,))
|
||||
|
@ -333,24 +340,25 @@ account_move_line()
|
|||
|
||||
class account_invoice(osv.osv):
|
||||
_name = "account.invoice"
|
||||
_inherit="account.invoice"
|
||||
_inherit = "account.invoice"
|
||||
|
||||
def line_get_convert(self, cr, uid, x, part, date, context=None):
|
||||
res=super(account_invoice,self).line_get_convert(cr, uid, x, part, date, context)
|
||||
res['analytics_id']=x.get('analytics_id',False)
|
||||
res=super(account_invoice,self).line_get_convert(cr, uid, x, part, date, context=context)
|
||||
res['analytics_id'] = x.get('analytics_id', False)
|
||||
return res
|
||||
|
||||
def _get_analytic_lines(self, cr, uid, id):
|
||||
inv = self.browse(cr, uid, [id])[0]
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
invoice_line_obj = self.pool.get('account.invoice.line')
|
||||
acct_ins_obj = self.pool.get('account.analytic.plan.instance')
|
||||
company_currency = inv.company_id.currency_id.id
|
||||
if inv.type in ('out_invoice', 'in_refund'):
|
||||
sign = 1
|
||||
else:
|
||||
sign = -1
|
||||
|
||||
iml = self.pool.get('account.invoice.line').move_line_get(cr, uid, inv.id)
|
||||
acct_ins_obj = self.pool.get('account.analytic.plan.instance')
|
||||
iml = invoice_line_obj.move_line_get(cr, uid, inv.id)
|
||||
|
||||
for il in iml:
|
||||
if il.get('analytics_id', False):
|
||||
|
@ -369,8 +377,8 @@ class account_invoice(osv.osv):
|
|||
al_vals = {
|
||||
'name': il['name'],
|
||||
'date': inv['date_invoice'],
|
||||
'unit_amount':qtty,
|
||||
'product_id':il['product_id'],
|
||||
'unit_amount': qtty,
|
||||
'product_id': il['product_id'],
|
||||
'account_id': line2.analytic_account_id.id,
|
||||
'amount': amt,
|
||||
'product_uom_id': il['uos_id'],
|
||||
|
@ -378,7 +386,7 @@ class account_invoice(osv.osv):
|
|||
'journal_id': self._get_journal_analytic(cr, uid, inv.type),
|
||||
'ref': ref,
|
||||
}
|
||||
il['analytic_lines'].append((0,0,al_vals))
|
||||
il['analytic_lines'].append((0, 0, al_vals))
|
||||
return iml
|
||||
|
||||
account_invoice()
|
||||
|
@ -391,7 +399,7 @@ class account_analytic_plan(osv.osv):
|
|||
account_analytic_plan()
|
||||
|
||||
class analytic_default(osv.osv):
|
||||
_inherit = 'account.analytic.default'
|
||||
_inherit = "account.analytic.default"
|
||||
_columns = {
|
||||
'analytics_id': fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'),
|
||||
}
|
||||
|
@ -399,21 +407,20 @@ class analytic_default(osv.osv):
|
|||
analytic_default()
|
||||
|
||||
class sale_order_line(osv.osv):
|
||||
_inherit = 'sale.order.line'
|
||||
_inherit = "sale.order.line"
|
||||
|
||||
# Method overridden to set the analytic account by default on criterion match
|
||||
def invoice_line_create(self, cr, uid, ids, context=None):
|
||||
create_ids = super(sale_order_line,self).invoice_line_create(cr, uid, ids, context)
|
||||
create_ids = super(sale_order_line,self).invoice_line_create(cr, uid, ids, context=context)
|
||||
inv_line_obj = self.pool.get('account.invoice.line')
|
||||
acct_anal_def_obj = self.pool.get('account.analytic.default')
|
||||
if ids:
|
||||
sale_line = self.browse(cr, uid, ids[0], context)
|
||||
inv_line_obj = self.pool.get('account.invoice.line')
|
||||
acct_anal_def_obj = self.pool.get('account.analytic.default')
|
||||
|
||||
for line in inv_line_obj.browse(cr, uid, create_ids, context):
|
||||
sale_line = self.browse(cr, uid, ids[0], context=context)
|
||||
for line in inv_line_obj.browse(cr, uid, create_ids, context=context):
|
||||
rec = acct_anal_def_obj.account_get(cr, uid, line.product_id.id, sale_line.order_id.partner_id.id, uid, time.strftime('%Y-%m-%d'), context)
|
||||
|
||||
if rec:
|
||||
inv_line_obj.write(cr, uid, [line.id], {'analytics_id':rec.analytics_id.id}, context=context)
|
||||
inv_line_obj.write(cr, uid, [line.id], {'analytics_id': rec.analytics_id.id}, context=context)
|
||||
return create_ids
|
||||
|
||||
sale_order_line()
|
||||
|
|
|
@ -29,8 +29,8 @@ class crossovered_analytic(report_sxw.rml_parse):
|
|||
self.localcontext.update( {
|
||||
'time': time,
|
||||
'lines': self._lines,
|
||||
'ref_lines' : self._ref_lines,
|
||||
'find_children':self.find_children,
|
||||
'ref_lines': self._ref_lines,
|
||||
'find_children': self.find_children,
|
||||
})
|
||||
self.base_amount = 0.00
|
||||
|
||||
|
@ -39,11 +39,12 @@ class crossovered_analytic(report_sxw.rml_parse):
|
|||
final_list = []
|
||||
parent_list = []
|
||||
set_list = []
|
||||
analytic_obj = self.pool.get('account.analytic.account')
|
||||
for id in ref_ids:
|
||||
# to avoid duplicate entries
|
||||
if id not in to_return_ids:
|
||||
to_return_ids.append(self.pool.get('account.analytic.account').search(self.cr,self.uid,[('parent_id','child_of',[id])]))
|
||||
data_accnt = self.pool.get('account.analytic.account').browse(self.cr,self.uid,to_return_ids[0])
|
||||
to_return_ids.append(analytic_obj.search(self.cr,self.uid,[('parent_id','child_of',[id])]))
|
||||
data_accnt = analytic_obj.browse(self.cr,self.uid,to_return_ids[0])
|
||||
for data in data_accnt:
|
||||
if data.parent_id and data.parent_id.id == ref_ids[0]:
|
||||
parent_list.append(data.id)
|
||||
|
@ -54,7 +55,7 @@ class crossovered_analytic(report_sxw.rml_parse):
|
|||
|
||||
def set_account(self,cats):
|
||||
lst = []
|
||||
category = self.pool.get('account.analytic.account').read(self.cr,self.uid,cats)
|
||||
category = self.pool.get('account.analytic.account').read(self.cr, self.uid, cats)
|
||||
for cat in category:
|
||||
lst.append(cat['id'])
|
||||
if cat['child_ids']:
|
||||
|
@ -75,44 +76,44 @@ class crossovered_analytic(report_sxw.rml_parse):
|
|||
else:
|
||||
journal = 'is not null'
|
||||
|
||||
query_general = "select id from account_analytic_line where (journal_id " + journal +") AND date>='"+ str(form['date1']) +"'"" AND date<='" + str(form['date2']) + "'"
|
||||
query_general = "SELECT id FROM account_analytic_line WHERE (journal_id " + journal +") AND date>='"+ str(form['date1']) +"'"" AND date<='" + str(form['date2']) + "'"
|
||||
|
||||
self.cr.execute(query_general)
|
||||
l_ids=self.cr.fetchall()
|
||||
l_ids = self.cr.fetchall()
|
||||
line_ids = [x[0] for x in l_ids]
|
||||
|
||||
obj_line = line_pool.browse(self.cr,self.uid,line_ids)
|
||||
|
||||
#this structure will be usefull for easily knowing the account_analytic_line that are related to the reference account. At this purpose, we save the move_id of analytic lines.
|
||||
self.dict_acc_ref[form['ref']] = []
|
||||
children_list = self.pool.get('account.analytic.account').search(self.cr,self.uid,[('parent_id','child_of',[form['ref']])])
|
||||
children_list = acc_pool.search(self.cr, self.uid, [('parent_id', 'child_of', [form['ref']])])
|
||||
for obj in obj_line:
|
||||
if obj.account_id.id in children_list:
|
||||
if obj.move_id and obj.move_id.id not in self.dict_acc_ref[form['ref']]:
|
||||
self.dict_acc_ref[form['ref']].append(obj.move_id.id)
|
||||
|
||||
res['ref_name'] = acc_pool.name_get(self.cr,self.uid,[form['ref']])[0][1]
|
||||
res['ref_code'] = acc_pool.browse(self.cr,self.uid,form['ref']).code
|
||||
res['ref_name'] = acc_pool.name_get(self.cr, self.uid, [form['ref']])[0][1]
|
||||
res['ref_code'] = acc_pool.browse(self.cr, self.uid, form['ref']).code
|
||||
|
||||
self.final_list = children_list
|
||||
selected_ids = line_pool.search(self.cr,self.uid,[('account_id','in',self.final_list)])
|
||||
selected_ids = line_pool.search(self.cr, self.uid, [('account_id', 'in' ,self.final_list)])
|
||||
if selected_ids:
|
||||
query="SELECT sum(aal.amount) AS amt, sum(aal.unit_amount) AS qty FROM account_analytic_line AS aal, account_analytic_account AS aaa \
|
||||
WHERE aal.account_id=aaa.id AND aal.id IN ("+','.join(map(str,selected_ids))+") AND (aal.journal_id " + journal +") AND aal.date>='"+ str(form['date1']) +"'"" AND aal.date<='" + str(form['date2']) + "'"
|
||||
|
||||
query = "SELECT SUM(aal.amount) AS amt, SUM(aal.unit_amount) AS qty FROM account_analytic_line AS aal, account_analytic_account AS aaa \
|
||||
WHERE aal.account_id = aaa.id AND aal.id IN ("+','.join(map(str,selected_ids))+") AND (aal.journal_id " + journal +") AND aal.date>='"+ str(form['date1']) +"'"" AND aal.date<='" + str(form['date2']) + "'"
|
||||
|
||||
self.cr.execute(query)
|
||||
info=self.cr.dictfetchall()
|
||||
|
||||
res['ref_qty']=info[0]['qty']
|
||||
res['ref_amt']=info[0]['amt']
|
||||
self.base_amount= info[0]['amt']
|
||||
res['ref_qty']=0.0
|
||||
res['ref_amt']=0.0
|
||||
self.base_amount= 0.0
|
||||
res['ref_qty'] = info[0]['qty']
|
||||
res['ref_amt'] = info[0]['amt']
|
||||
self.base_amount = info[0]['amt']
|
||||
res['ref_qty'] = 0.0
|
||||
res['ref_amt'] = 0.0
|
||||
self.base_amount = 0.0
|
||||
result.append(res)
|
||||
return result
|
||||
|
||||
def _lines(self,form,ids={}):
|
||||
def _lines(self, form, ids={}):
|
||||
if not ids:
|
||||
ids = self.ids
|
||||
|
||||
|
@ -122,43 +123,43 @@ class crossovered_analytic(report_sxw.rml_parse):
|
|||
journal= 'is not null'
|
||||
|
||||
acc_pool = self.pool.get('account.analytic.account')
|
||||
line_pool=self.pool.get('account.analytic.line')
|
||||
acc_id=[]
|
||||
final=[]
|
||||
child_ids=[]
|
||||
self.list_ids=[]
|
||||
line_pool = self.pool.get('account.analytic.line')
|
||||
acc_id = []
|
||||
final = []
|
||||
child_ids = []
|
||||
self.list_ids = []
|
||||
|
||||
self.final_list = self.find_children(ids)
|
||||
|
||||
for acc_id in self.final_list:
|
||||
selected_ids = line_pool.search(self.cr,self.uid,[('account_id','=',acc_id),('move_id','in',self.dict_acc_ref[form['ref']])])
|
||||
selected_ids = line_pool.search(self.cr, self.uid, [('account_id','=',acc_id), ('move_id', 'in', self.dict_acc_ref[form['ref']])])
|
||||
if selected_ids:
|
||||
query="SELECT aaa.code as code , sum(aal.amount) AS amt, sum(aal.unit_amount) AS qty,aaa.name as acc_name,aal.account_id as id FROM account_analytic_line AS aal, account_analytic_account AS aaa \
|
||||
query="SELECT aaa.code AS code, SUM(aal.amount) AS amt, SUM(aal.unit_amount) AS qty, aaa.name AS acc_name, aal.account_id AS id FROM account_analytic_line AS aal, account_analytic_account AS aaa \
|
||||
WHERE aal.account_id=aaa.id AND aal.id IN ("+','.join(map(str,selected_ids))+") AND (aal.journal_id " + journal +") AND aal.date>='"+ str(form['date1']) +"'"" AND aal.date<='" + str(form['date2']) + "'"" GROUP BY aal.account_id,aaa.name,aaa.code ORDER BY aal.account_id"
|
||||
|
||||
self.cr.execute(query)
|
||||
res = self.cr.dictfetchall()
|
||||
if res:
|
||||
for element in res:
|
||||
if self.base_amount<>0.00:
|
||||
element['perc']= (element['amt'] / self.base_amount) * 100.00
|
||||
if self.base_amount <> 0.00:
|
||||
element['perc'] = (element['amt'] / self.base_amount) * 100.00
|
||||
else:
|
||||
element['perc']=0.00
|
||||
element['perc'] = 0.00
|
||||
else:
|
||||
result={}
|
||||
res=[]
|
||||
result['id']=acc_id
|
||||
data_account = acc_pool.browse(self.cr,self.uid,acc_id)
|
||||
result['acc_name']=data_account.name
|
||||
result = {}
|
||||
res = []
|
||||
result['id'] = acc_id
|
||||
data_account = acc_pool.browse(self.cr, self.uid, acc_id)
|
||||
result['acc_name'] = data_account.name
|
||||
result['code'] = data_account.code
|
||||
result['amt']=result['qty']=result['perc']=0.00
|
||||
result['amt'] = result['qty'] = result['perc'] = 0.00
|
||||
if not form['empty_line']:
|
||||
res.append(result)
|
||||
else:
|
||||
result = {}
|
||||
res = []
|
||||
result['id'] = acc_id
|
||||
data_account = acc_pool.browse(self.cr,self.uid,acc_id)
|
||||
data_account = acc_pool.browse(self.cr, self.uid, acc_id)
|
||||
result['acc_name'] = data_account.name
|
||||
result['code'] = data_account.code
|
||||
result['amt'] = result['qty'] = result['perc'] = 0.00
|
||||
|
|
|
@ -18,37 +18,38 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
|
||||
from osv import osv, fields
|
||||
from tools.translate import _
|
||||
|
||||
class account_crossovered_analytic(osv.osv_memory):
|
||||
_name = 'account.crossovered.analytic'
|
||||
_description = 'Print Crossovered Analytic'
|
||||
_name = "account.crossovered.analytic"
|
||||
_description = "Print Crossovered Analytic"
|
||||
_columns = {
|
||||
'date1': fields.date('Start Date', required=True),
|
||||
'date2': fields.date('End Date', required=True),
|
||||
'journal_ids': fields.many2many('account.analytic.journal', 'crossovered_journal_rel', 'crossover_id', 'journal_id', 'Analytic Journal'),
|
||||
'ref': fields.many2one('account.analytic.account', 'Analytic Account Reference', required=False),
|
||||
'empty_line': fields.boolean('Dont show empty lines'),
|
||||
}
|
||||
}
|
||||
_defaults = {
|
||||
'date1': lambda *a: time.strftime('%Y-01-01'),
|
||||
'date2': lambda *a: time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
'date1': time.strftime('%Y-01-01'),
|
||||
'date2': time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
|
||||
def print_report(self, cr, uid, ids, context=None):
|
||||
cr.execute('select account_id from account_analytic_line')
|
||||
cr.execute('SELECT account_id FROM account_analytic_line')
|
||||
res = cr.fetchall()
|
||||
acc_ids = [x[0] for x in res]
|
||||
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
|
||||
obj_acc = self.pool.get('account.analytic.account').browse(cr, uid, data['ref'])
|
||||
obj_acc = self.pool.get('account.analytic.account').browse(cr, uid, data['ref'], context=context)
|
||||
name = obj_acc.name
|
||||
|
||||
account_ids = self.pool.get('account.analytic.account').search(cr, uid, [('parent_id', 'child_of', [data['ref']])])
|
||||
account_ids = self.pool.get('account.analytic.account').search(cr, uid, [('parent_id', 'child_of', [data['ref']])], context=context)
|
||||
|
||||
flag = True
|
||||
for acc in account_ids:
|
||||
|
@ -62,12 +63,12 @@ class account_crossovered_analytic(osv.osv_memory):
|
|||
'ids': [],
|
||||
'model': 'account.analytic.account',
|
||||
'form': data
|
||||
}
|
||||
}
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.analytic.account.crossovered.analytic',
|
||||
'datas': datas,
|
||||
}
|
||||
}
|
||||
|
||||
account_crossovered_analytic()
|
||||
|
||||
|
|
|
@ -18,24 +18,26 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv
|
||||
from tools.translate import _
|
||||
|
||||
class analytic_plan_create_model(osv.osv_memory):
|
||||
_name = 'analytic.plan.create.model'
|
||||
_description = 'analytic.plan.create.model'
|
||||
_name = "analytic.plan.create.model"
|
||||
_description = "analytic.plan.create.model"
|
||||
|
||||
def activate(self, cr, uid, ids, context=None):
|
||||
plan_obj = self.pool.get('account.analytic.plan.instance')
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
anlytic_plan_obj = self.pool.get('account.analytic.plan')
|
||||
if 'active_id' in context and context['active_id']:
|
||||
plan = plan_obj.browse(cr, uid, context['active_id'], context=context)
|
||||
if (not plan.name) or (not plan.code):
|
||||
raise osv.except_osv(_('Error'), _('Please put a name and a code before saving the model !'))
|
||||
pids = self.pool.get('account.analytic.plan').search(cr, uid, [], context=context)
|
||||
if (not pids):
|
||||
pids = anlytic_plan_obj.search(cr, uid, [], context=context)
|
||||
if not pids:
|
||||
raise osv.except_osv(_('Error'), _('No analytic plan defined !'))
|
||||
plan_obj.write(cr, uid, [context['active_id']], {'plan_id':pids[0]})
|
||||
plan_obj.write(cr, uid, [context['active_id']], {'plan_id':pids[0]}, context=context)
|
||||
|
||||
model_data_ids = mod_obj.search(cr, uid, [('model', '=', 'ir.ui.view'),('name', '=', 'view_analytic_plan_create_model')], context=context)
|
||||
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
|
|
|
@ -128,16 +128,16 @@
|
|||
<para style="terp_tblheader_Details">Description</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Theoretical Amount </para>
|
||||
<para style="terp_tblheader_General_Right">Theoretical Amt </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Planned Amount</para>
|
||||
<para style="terp_tblheader_General_Right">Planned Amt</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Practical Amount</para>
|
||||
<para style="terp_tblheader_General_Right">Practical Amt</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Perc(%)</para>
|
||||
<para style="terp_tblheader_General_Right">Perc(%)</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
@ -166,7 +166,7 @@
|
|||
<blockTable colWidths="202.0,75.0,75.0,78.0,52.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">[[ repeatIn(funct_total(data['form']),'b') ]] Total([[ company.currency_id.code ]]) :</para>
|
||||
<para style="terp_default_Bold_9">[[ repeatIn(funct_total(data['form']),'b') ]] Total:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_right_9">[[ formatLang(b['tot_theo']) ]] [[ company.currency_id.symbol ]]</para>
|
||||
|
|
|
@ -161,13 +161,6 @@
|
|||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P10">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
|
||||
<para style="P1">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P1">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
|
@ -180,19 +173,19 @@
|
|||
<para style="P13">A/c No.</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P13">Budget</para>
|
||||
<para style="terp_tblheader_Details_Right">Budget</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P13">Period Budget</para>
|
||||
<para style="terp_tblheader_Details_Right">Period Budget</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P13">Performance</para>
|
||||
<para style="terp_tblheader_Details_Right">Performance</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P13">Spread</para>
|
||||
<para style="terp_tblheader_Details_Right">Spread</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P13">% performance</para>
|
||||
<para style="terp_tblheader_Details_Right">% performance</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
|
|
@ -127,16 +127,16 @@
|
|||
<para style="terp_tblheader_Details">Description</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Theoretical Amount</para>
|
||||
<para style="terp_tblheader_Details_Right">Theoretical Amt</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Planned Amount</para>
|
||||
<para style="terp_tblheader_Details_Right">Planned Amt</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Practical Amount</para>
|
||||
<para style="terp_tblheader_Details_Right">Practical Amt</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Perc(%)</para>
|
||||
<para style="terp_tblheader_Details_Right">Perc(%)</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
|
|
@ -32,7 +32,7 @@ class followup(osv.osv):
|
|||
}
|
||||
_defaults = {
|
||||
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'account_followup.followup', context=c),
|
||||
}
|
||||
}
|
||||
|
||||
followup()
|
||||
|
||||
|
@ -46,7 +46,7 @@ class followup_line(osv.osv):
|
|||
'start': fields.selection([('days','Net Days'),('end_of_month','End of Month')], 'Type of Term', size=64, required=True),
|
||||
'followup_id': fields.many2one('account_followup.followup', 'Follow Ups', required=True, ondelete="cascade"),
|
||||
'description': fields.text('Printed Message', translate=True),
|
||||
}
|
||||
}
|
||||
|
||||
followup_line()
|
||||
|
||||
|
@ -62,12 +62,12 @@ account_move_line()
|
|||
class res_company(osv.osv):
|
||||
_inherit = "res.company"
|
||||
_columns = {
|
||||
'follow_up_msg' : fields.text('Follow-up Message', translate=True),
|
||||
}
|
||||
'follow_up_msg': fields.text('Follow-up Message', translate=True),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'overdue_msg': '''
|
||||
Date : %(date)s
|
||||
Date: %(date)s
|
||||
|
||||
Dear %(partner_name)s,
|
||||
|
||||
|
@ -80,7 +80,7 @@ Thanks,
|
|||
%(user_signature)s
|
||||
%(company_name)s
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
res_company()
|
||||
|
||||
|
|
|
@ -73,7 +73,8 @@
|
|||
<search string="Search Followup">
|
||||
<group col="10" colspan="4">
|
||||
<field name="name"/>
|
||||
</group>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -61,12 +61,12 @@ class account_followup_print(osv.osv_memory):
|
|||
'views': [(resource_id,'form')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
}
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'date': time.strftime('%Y-%m-%d'),
|
||||
'followup_id': _get_followup,
|
||||
}
|
||||
}
|
||||
|
||||
account_followup_print()
|
||||
|
||||
|
@ -80,7 +80,7 @@ class account_followup_print_all(osv.osv_memory):
|
|||
'partner_lang': fields.boolean('Send Email in Partner Language', help='Do not change message text, if you want to send email in partner language, or configure from company'),
|
||||
'email_body': fields.text('Email body'),
|
||||
'summary': fields.text('Summary', required=True, readonly=True)
|
||||
}
|
||||
}
|
||||
def _get_summary(self, cr, uid, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
|
@ -285,14 +285,14 @@ class account_followup_print_all(osv.osv_memory):
|
|||
'ids': [],
|
||||
'model': 'account_followup.followup',
|
||||
'form': data
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account_followup.followup.print',
|
||||
'datas': datas,
|
||||
}
|
||||
}
|
||||
|
||||
account_followup_print_all()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -75,7 +75,8 @@
|
|||
<separator string="Write a notification or a wishful message." colspan="4"/>
|
||||
<field name="name" select="1" colspan="2" />
|
||||
<newline/>
|
||||
<field name="msg" select="1" colspan="2"/>
|
||||
<separator string="Special Message" colspan="4"/>
|
||||
<field name="msg" select="1" nolabel="1" colspan="2"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -29,4 +29,4 @@ import account_move_line
|
|||
import account_invoice
|
||||
import report
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -28,9 +28,9 @@
|
|||
"depends": ["account"],
|
||||
"init_xml": [],
|
||||
"description": """
|
||||
This module provides :
|
||||
* a more efficient way to manage invoice payment.
|
||||
* a basic mechanism to easily plug various automated payment.
|
||||
This module provides :
|
||||
* a more efficient way to manage invoice payment.
|
||||
* a basic mechanism to easily plug various automated payment.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'depends': ['account_voucher'],
|
||||
|
|
|
@ -47,7 +47,7 @@ class account_move_line(osv.osv):
|
|||
return r
|
||||
|
||||
def _to_pay_search(self, cr, uid, obj, name, args, context):
|
||||
if not len(args):
|
||||
if not args:
|
||||
return []
|
||||
line_obj = self.pool.get('account.move.line')
|
||||
query = line_obj._query_get(cr, uid, context={})
|
||||
|
@ -63,17 +63,17 @@ class account_move_line(osv.osv):
|
|||
) %(operator)s %%s ''' % {'operator': x[1]}, args))
|
||||
sql_args = tuple(map(itemgetter(2), args))
|
||||
|
||||
cr.execute(('''select id
|
||||
from account_move_line l
|
||||
where account_id in (select id
|
||||
from account_account
|
||||
where type=%s and active)
|
||||
and reconcile_id is null
|
||||
and credit > 0
|
||||
and ''' + where + ' and ' + query), ('payable',)+sql_args )
|
||||
cr.execute(('''SELECT id
|
||||
FROM account_move_line l
|
||||
WHERE account_id IN (select id
|
||||
FROM account_account
|
||||
WHERE type=%s AND active)
|
||||
AND reconcile_id IS null
|
||||
AND credit > 0
|
||||
AND ''' + where + ' and ' + query), ('payable',)+sql_args )
|
||||
|
||||
res = cr.fetchall()
|
||||
if not len(res):
|
||||
if not res:
|
||||
return [('id','=','0')]
|
||||
return [('id','in',map(lambda x:x[0], res))]
|
||||
|
||||
|
@ -110,7 +110,7 @@ class account_move_line(osv.osv):
|
|||
return line2bank
|
||||
|
||||
_columns = {
|
||||
'amount_to_pay' : fields.function(amount_to_pay, method=True,
|
||||
'amount_to_pay': fields.function(amount_to_pay, method=True,
|
||||
type='float', string='Amount to pay', fnct_search=_to_pay_search),
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
|
||||
from osv import osv, fields
|
||||
|
@ -118,11 +119,10 @@ class payment_order(osv.osv):
|
|||
self.write(cr, uid, order['id'],{'reference':reference})
|
||||
return True
|
||||
|
||||
def set_done(self, cr, uid, id, *args):
|
||||
self.write(cr,uid,id,{'date_done': time.strftime('%Y-%m-%d'),
|
||||
'state': 'done',})
|
||||
def set_done(self, cr, uid, ids, *args):
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'payment.order', id, 'done', cr)
|
||||
self.write(cr, uid, ids, {'date_done': time.strftime('%Y-%m-%d')})
|
||||
wf_service.trg_validate(uid, 'payment.order', ids[0], 'done', cr)
|
||||
return True
|
||||
|
||||
def copy(self, cr, uid, id, default={}, context=None):
|
||||
|
@ -162,7 +162,6 @@ class payment_line(osv.osv):
|
|||
_name = 'payment.line'
|
||||
_description = 'Payment Line'
|
||||
|
||||
|
||||
def translate(self, orig):
|
||||
return {
|
||||
"due_date": "date_maturity",
|
||||
|
@ -330,14 +329,14 @@ class payment_line(osv.osv):
|
|||
'info_owner': fields.function(info_owner, string="Owner Account", method=True, type="text", help='Address of the Main Partner'),
|
||||
'info_partner': fields.function(info_partner, string="Destination Account", method=True, type="text", help='Address of the Ordering Customer.'),
|
||||
'date': fields.date('Payment Date', help="If no payment date is specified, the bank will treat this payment line directly"),
|
||||
'create_date': fields.datetime('Created' , readonly=True),
|
||||
'create_date': fields.datetime('Created', readonly=True),
|
||||
'state': fields.selection([('normal','Free'), ('structured','Structured')], 'Communication Type', required=True),
|
||||
'bank_statement_line_id': fields.many2one('account.bank.statement.line', 'Bank statement line')
|
||||
}
|
||||
_defaults = {
|
||||
'name': lambda obj, cursor, user, context: obj.pool.get('ir.sequence'
|
||||
).get(cursor, user, 'payment.line'),
|
||||
'state': lambda *args: 'normal',
|
||||
'state': 'normal',
|
||||
'currency': _get_currency,
|
||||
'company_currency': _get_currency,
|
||||
'date': _get_date,
|
||||
|
@ -438,5 +437,4 @@ class payment_line(osv.osv):
|
|||
|
||||
payment_line()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -40,6 +40,23 @@
|
|||
|
||||
<menuitem id="menu_main_payment" name="Payment" parent="account.menu_finance" sequence="6"/>
|
||||
|
||||
<record id="view_payment_mode_search" model="ir.ui.view">
|
||||
<field name="name">payment.mode.search</field>
|
||||
<field name="model">payment.mode</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Payment Mode">
|
||||
<field name="name"/>
|
||||
<field name="journal" widget='selection'/>
|
||||
<field name="company_id" widget='selection' groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal'}"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_payment_mode_tree" model="ir.ui.view">
|
||||
<field name="name">payment.mode.tree</field>
|
||||
<field name="model">payment.mode</field>
|
||||
|
@ -52,6 +69,7 @@
|
|||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_payment_mode_form" model="ir.ui.view">
|
||||
<field name="name">payment.mode.form</field>
|
||||
<field name="model">payment.mode</field>
|
||||
|
@ -69,7 +87,8 @@
|
|||
<field name="name">Payment Mode</field>
|
||||
<field name="res_model">payment.mode</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">tree,form,search</field>
|
||||
<field name="search_view_id" ref="view_payment_mode_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_payment_mode_form" id="menu_action_payment_mode_form" parent="account.menu_configuration_misc"/>
|
||||
|
@ -142,7 +161,7 @@
|
|||
<group col="4" colspan="2">
|
||||
<button name="cancel" states="draft,open" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="open" states="draft" string="Confirm Payments" icon="gtk-apply"/>
|
||||
<button name="%(action_account_payment_make_payment)d" states="open" string="Make Payments" type="action" icon="gtk-execute"/>
|
||||
<button name="set_done" states="open" string="Make Payments" type="object" icon="gtk-execute"/>
|
||||
<button name="set_to_draft" states="cancel" string="Set to draft" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</form>
|
||||
|
@ -165,7 +184,7 @@
|
|||
<field name="state"/>
|
||||
<button name="cancel" states="draft,open" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="open" states="draft" string="Confirm Payments" icon="gtk-apply"/>
|
||||
<button name="%(action_account_payment_make_payment)d" states="open" string="Make Payments" type="action" icon="gtk-execute"/>
|
||||
<button name="set_done" states="open" string="Make Payments" type ="object" icon="gtk-execute"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -241,7 +260,6 @@
|
|||
<field name="state"/>
|
||||
</page>
|
||||
<page string="Information">
|
||||
|
||||
<separator colspan="4" string="General Information"/>
|
||||
<group colspan="2">
|
||||
<field name="amount" select="1"/>
|
||||
|
|
|
@ -24,6 +24,8 @@ write({'state':'open'})</field>
|
|||
<record id="act_done" model="workflow.activity">
|
||||
<field name="name">done</field>
|
||||
<field name="wkf_id" ref="wkf_payment_order"/>
|
||||
<field name="action">write({'state':'done'})</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="flow_stop">True</field>
|
||||
</record>
|
||||
<record id="act_cancel" model="workflow.activity">
|
||||
|
@ -33,14 +35,14 @@ write({'state':'open'})</field>
|
|||
<field name="kind">function</field>
|
||||
<field name="flow_stop">True</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Transition -->
|
||||
<record id="trans_draft_open" model="workflow.transition">
|
||||
<field name="act_from" ref="act_draft"/>
|
||||
<field name="act_to" ref="act_open"/>
|
||||
<field name="signal">open</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="trans_open_done" model="workflow.transition">
|
||||
<field name="act_from" ref="act_open"/>
|
||||
<field name="act_to" ref="act_done"/>
|
||||
|
@ -56,6 +58,6 @@ write({'state':'open'})</field>
|
|||
<field name="act_to" ref="act_cancel"/>
|
||||
<field name="signal">cancel</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
|
@ -15,9 +15,9 @@
|
|||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import payment_order
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -31,11 +31,11 @@ class payment_order(report_sxw.rml_parse):
|
|||
self.localcontext.update( {
|
||||
'time': time,
|
||||
'get_invoice_name': self._get_invoice_name,
|
||||
'get_company_currency' : self._get_company_currency,
|
||||
'get_company_currency_symbol': self._get_company_currency_symbol,
|
||||
'get_amount_total_in_currency' : self._get_amount_total_in_currency,
|
||||
'get_amount_total' : self._get_amount_total,
|
||||
'get_account_name' : self._get_account_name,
|
||||
'get_company_currency': self._get_company_currency,
|
||||
'get_company_currency_symbol': self._get_company_currency_symbol,
|
||||
'get_amount_total_in_currency': self._get_amount_total_in_currency,
|
||||
'get_amount_total': self._get_amount_total,
|
||||
'get_account_name': self._get_account_name,
|
||||
|
||||
})
|
||||
def _get_invoice_name(self, invoice_id):
|
||||
|
@ -87,4 +87,4 @@ class payment_order(report_sxw.rml_parse):
|
|||
|
||||
report_sxw.report_sxw('report.payment.order', 'payment.order', 'addons/account_payment/report/payment_order.rml', parser=payment_order, header="external")
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -28,7 +28,7 @@ class payment_order_create(osv.osv_memory):
|
|||
Create a payment object with lines corresponding to the account move line
|
||||
to pay according to the date and the mode provided by the user.
|
||||
Hypothesis:
|
||||
- Small number of non-reconcilied move line , payment mode and bank account type,
|
||||
- Small number of non-reconcilied move line, payment mode and bank account type,
|
||||
- Big number of partner and bank account.
|
||||
|
||||
If a type is given, unsuitable account Entry lines are ignored.
|
||||
|
|
|
@ -21,8 +21,8 @@
|
|||
from osv import fields, osv
|
||||
|
||||
class account_payment_make_payment(osv.osv_memory):
|
||||
_name = 'account.payment.make.payment'
|
||||
_description = 'Account make payment'
|
||||
_name = "account.payment.make.payment"
|
||||
_description = "Account make payment"
|
||||
|
||||
def launch_wizard(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
|
@ -33,10 +33,10 @@ class account_payment_make_payment(osv.osv_memory):
|
|||
# obj_model = self.pool.get('ir.model.data')
|
||||
# obj_act = self.pool.get('ir.actions.act_window')
|
||||
# order = obj_payment_order.browse(cr, uid, context['active_id'], context)
|
||||
obj_payment_order.set_done(cr, uid, context['active_id'], context)
|
||||
obj_payment_order.set_done(cr, uid, [context['active_id']], context)
|
||||
return {}
|
||||
# t = order.mode and order.mode.type.code or 'manual'
|
||||
# if t == 'manual' :
|
||||
# if t == 'manual':
|
||||
# obj_payment_order.set_done(cr,uid,context['active_id'],context)
|
||||
# return {}
|
||||
#
|
||||
|
|
|
@ -77,13 +77,13 @@ class account_payment_populate_statement(osv.osv_memory):
|
|||
|
||||
if line.partner_id:
|
||||
# line['partner_id'] = mv.partner_id.id
|
||||
if amount < 0 :
|
||||
if amount < 0:
|
||||
account = line.partner_id.property_account_payable.id
|
||||
else :
|
||||
else:
|
||||
account = line.partner_id.property_account_receivable.id
|
||||
|
||||
if line.move_line_id:
|
||||
voucher_res = { 'type': 'payment' ,
|
||||
voucher_res = { 'type': 'payment',
|
||||
'name': line.name,
|
||||
'partner_id': line.partner_id.id,
|
||||
'journal_id': statement.journal_id.id,
|
||||
|
|
|
@ -32,18 +32,18 @@ class account_report(osv.osv):
|
|||
_description = "Account Reporting"
|
||||
|
||||
def _amount_get(self, cr, uid, ids, field_name, arg, context={}):
|
||||
obj_fy=self.pool.get('account.fiscalyear')
|
||||
obj_period=self.pool.get('account.period')
|
||||
obj_fy = self.pool.get('account.fiscalyear')
|
||||
obj_period = self.pool.get('account.period')
|
||||
|
||||
def _calc_context(key,obj):
|
||||
if key==0:
|
||||
def _calc_context(key, obj):
|
||||
if key == 0:
|
||||
return obj.find(cr, uid, exception=False)
|
||||
else:
|
||||
obj_key=obj.browse(cr, uid, obj.find(cr, uid, exception=False))
|
||||
if isinstance(obj_key,list):
|
||||
obj_key=obj_key[0]
|
||||
key_ids=obj.search(cr,uid,[('date_stop','<',obj_key.date_start)])
|
||||
if len(key_ids)<abs(key):
|
||||
obj_key = obj.browse(cr, uid, obj.find(cr, uid, exception=False))
|
||||
if isinstance(obj_key, list):
|
||||
obj_key = obj_key[0]
|
||||
key_ids = obj.search(cr, uid, [('date_stop','<',obj_key.date_start)])
|
||||
if len(key_ids) < abs(key):
|
||||
return False
|
||||
return key_ids[key]
|
||||
|
||||
|
@ -53,18 +53,18 @@ class account_report(osv.osv):
|
|||
del context['fiscalyear']
|
||||
acc = self.pool.get('account.account')
|
||||
acc_id = acc.search(cr, uid, [('code','in',code)])
|
||||
return reduce(lambda y,x=0: x.credit+y, acc.browse(cr, uid, acc_id, context),0.0)
|
||||
return reduce(lambda y, x=0: x.credit+y, acc.browse(cr, uid, acc_id, context),0.0)
|
||||
|
||||
def _calc_debit(code,year=0):
|
||||
context['fiscalyear']=_calc_context(year, obj_fy)
|
||||
def _calc_debit(code, year=0):
|
||||
context['fiscalyear'] = _calc_context(year, obj_fy)
|
||||
if not context['fiscalyear']:
|
||||
del context['fiscalyear']
|
||||
acc = self.pool.get('account.account')
|
||||
acc_id = acc.search(cr, uid, [('code','in',code)])
|
||||
return reduce(lambda y,x=0: x.debit+y, acc.browse(cr, uid, acc_id, context),0.0)
|
||||
return reduce(lambda y, x=0: x.debit+y, acc.browse(cr, uid, acc_id, context), 0.0)
|
||||
|
||||
def _calc_balance(code,year=0):
|
||||
context['fiscalyear']=_calc_context(year, obj_fy)
|
||||
def _calc_balance(code, year=0):
|
||||
context['fiscalyear'] = _calc_context(year, obj_fy)
|
||||
if not context['fiscalyear']:
|
||||
del context['fiscalyear']
|
||||
acc = self.pool.get('account.account')
|
||||
|
@ -72,21 +72,21 @@ class account_report(osv.osv):
|
|||
for c in code:
|
||||
for i in c.split('-'):
|
||||
account_ids += acc.search(cr, uid, [('code', 'ilike', i)])
|
||||
return reduce(lambda y,x=0: x.balance+y, acc.browse(cr, uid, account_ids, context),0.0)
|
||||
return reduce(lambda y, x=0: x.balance+y, acc.browse(cr, uid, account_ids, context), 0.0)
|
||||
|
||||
def _calc_report(*code):
|
||||
acc = self.pool.get('account.report.report')
|
||||
acc_id = acc.search(cr, uid, [('code','in',code)])
|
||||
return reduce(lambda y,x=0: x.amount+y, acc.browse(cr, uid, acc_id, context),0.0)
|
||||
acc_id = acc.search(cr, uid, [('code', 'in', code)])
|
||||
return reduce(lambda y, x=0: x.amount+y, acc.browse(cr, uid, acc_id, context),0.0)
|
||||
|
||||
def _calc_tax_code(code,period=0):
|
||||
context['period_id']=_calc_context(period, obj_period)
|
||||
def _calc_tax_code(code, period=0):
|
||||
context['period_id'] = _calc_context(period, obj_period)
|
||||
if not context['period_id']:
|
||||
return 0.00
|
||||
context['period_id']=context['period_id'][0]
|
||||
context['period_id'] = context['period_id'][0]
|
||||
acc = self.pool.get('account.tax.code')
|
||||
acc_id = acc.search(cr, uid, [('code','in',code)])
|
||||
return reduce(lambda y,x=0: x.sum_period+y, acc.browse(cr, uid, acc_id, context),0.0)
|
||||
acc_id = acc.search(cr, uid, [('code', 'in', code)])
|
||||
return reduce(lambda y, x=0: x.sum_period+y, acc.browse(cr, uid, acc_id, context), 0.0)
|
||||
result = {}
|
||||
for rep in self.browse(cr, uid, ids, context):
|
||||
objdict = {
|
||||
|
@ -97,18 +97,18 @@ class account_report(osv.osv):
|
|||
'tax_code': _calc_tax_code,
|
||||
}
|
||||
try:
|
||||
val = eval(getattr(rep,'expression'), objdict)
|
||||
val = eval(getattr(rep, 'expression'), objdict)
|
||||
except:
|
||||
val = 0.0
|
||||
|
||||
if field_name=='status':
|
||||
if val<rep.badness_limit:
|
||||
if field_name == 'status':
|
||||
if val < rep.badness_limit:
|
||||
result[rep.id] = 'very bad'
|
||||
elif val==rep.badness_limit:
|
||||
elif val == rep.badness_limit:
|
||||
result[rep.id] = 'bad'
|
||||
elif val<rep.goodness_limit:
|
||||
result[rep.id] = 'normal'
|
||||
elif val==rep.goodness_limit:
|
||||
elif val == rep.goodness_limit:
|
||||
result[rep.id] = 'good'
|
||||
else:
|
||||
result[rep.id] = 'very good'
|
||||
|
@ -117,10 +117,10 @@ class account_report(osv.osv):
|
|||
return result
|
||||
|
||||
def onchange_parent_id(self, cr, uid, ids, parent_id):
|
||||
v={}
|
||||
v = {}
|
||||
if parent_id:
|
||||
acc=self.pool.get('account.report.report').browse(cr, uid, parent_id)
|
||||
v['type']=acc.type
|
||||
acc = self.pool.get('account.report.report').browse(cr, uid, parent_id)
|
||||
v['type'] = acc.type
|
||||
return {'value': v}
|
||||
|
||||
_columns = {
|
||||
|
@ -135,8 +135,8 @@ class account_report(osv.osv):
|
|||
('other','Others')],
|
||||
'Type', required=True),
|
||||
'expression': fields.char('Expression', size=240, required=True),
|
||||
'badness_limit' :fields.float('Badness Indicator Limit', digits=(16,2), help='This Value sets the limit of badness.'),
|
||||
'goodness_limit' :fields.float('Goodness Indicator Limit', digits=(16,2), help='This Value sets the limit of goodness.'),
|
||||
'badness_limit': fields.float('Badness Indicator Limit', digits=(16,2), help='This Value sets the limit of badness.'),
|
||||
'goodness_limit': fields.float('Goodness Indicator Limit', digits=(16,2), help='This Value sets the limit of goodness.'),
|
||||
'parent_id': fields.many2one('account.report.report', 'Parent'),
|
||||
'child_ids': fields.one2many('account.report.report', 'parent_id', 'Children'),
|
||||
'note': fields.text('Note'),
|
||||
|
@ -152,8 +152,8 @@ class account_report(osv.osv):
|
|||
('very good', 'Very Good')
|
||||
],
|
||||
string='Status'),
|
||||
'disp_tree':fields.boolean('Display Tree', help='When the indicators are printed, if one indicator is set with this field to True, then it will display one more graphs with all its children in tree'),
|
||||
'disp_graph':fields.boolean('Display As Graph', help='If the field is set to True, information will be printed as a Graph, otherwise as an array.'),
|
||||
'disp_tree': fields.boolean('Display Tree', help='When the indicators are printed, if one indicator is set with this field to True, then it will display one more graphs with all its children in tree'),
|
||||
'disp_graph': fields.boolean('Display As Graph', help='If the field is set to True, information will be printed as a Graph, otherwise as an array.'),
|
||||
}
|
||||
_defaults = {
|
||||
'active': lambda *args: True,
|
||||
|
@ -162,9 +162,9 @@ class account_report(osv.osv):
|
|||
|
||||
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
|
||||
if not args:
|
||||
args=[]
|
||||
args = []
|
||||
if not context:
|
||||
context={}
|
||||
context = {}
|
||||
ids = []
|
||||
if name:
|
||||
ids = self.search(cr, user, [('code','=',name)]+ args, limit=limit, context=context)
|
||||
|
@ -183,12 +183,12 @@ account_report()
|
|||
class account_report_history(osv.osv):
|
||||
|
||||
def _calc_value(self, cr, uid, ids, name, args, context):
|
||||
acc_report_id=self.read(cr, uid, ids, ['tmp','period_id'])
|
||||
tmp_ids={}
|
||||
acc_report_id = self.read(cr, uid, ids, ['tmp','period_id'])
|
||||
tmp_ids = {}
|
||||
for a in acc_report_id:
|
||||
period_val=pooler.get_pool(cr.dbname).get('account.period').read(cr, uid, [a['period_id'][0]])[0]
|
||||
period_id=pooler.get_pool(cr.dbname).get('account.period').search(cr, uid, [('date_start','<=',period_val['date_start']),('fiscalyear_id','=',period_val['fiscalyear_id'][0])])
|
||||
tmp_ids[a['id']] = pooler.get_pool(cr.dbname).get('account.report.report').read(cr, uid, [a['tmp']], context={'periods':period_id})[0]['amount']
|
||||
period_val = pooler.get_pool(cr.dbname).get('account.period').read(cr, uid, [a['period_id'][0]])[0]
|
||||
period_id = pooler.get_pool(cr.dbname).get('account.period').search(cr, uid, [('date_start', '<=', period_val['date_start']),('fiscalyear_id', '=', period_val['fiscalyear_id'][0])])
|
||||
tmp_ids[a['id']] = pooler.get_pool(cr.dbname).get('account.report.report').read(cr, uid, [a['tmp']], context={'periods': period_id})[0]['amount']
|
||||
return tmp_ids
|
||||
|
||||
_name = "account.report.history"
|
||||
|
@ -197,11 +197,11 @@ class account_report_history(osv.osv):
|
|||
_auto = False
|
||||
_order='name'
|
||||
_columns = {
|
||||
'period_id': fields.many2one('account.period','Period', readonly=True, select=True),
|
||||
'fiscalyear_id': fields.many2one('account.fiscalyear','Fiscal Year', readonly=True, select=True),
|
||||
'name': fields.many2one('account.report.report','Indicator', readonly=True, select=True),
|
||||
'period_id': fields.many2one('account.period', 'Period', readonly=True, select=True),
|
||||
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', readonly=True, select=True),
|
||||
'name': fields.many2one('account.report.report', 'Indicator', readonly=True, select=True),
|
||||
'val': fields.function(_calc_value, method=True, string='Value', readonly=True),
|
||||
'tmp' : fields.integer(string='temp',readonly=True)
|
||||
'tmp' : fields.integer(string='temp', readonly=True)
|
||||
}
|
||||
|
||||
def init(self, cr):
|
||||
|
|
|
@ -7,13 +7,13 @@ msgstr ""
|
|||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-09-29 08:36+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-10-11 20:16+0000\n"
|
||||
"Last-Translator: simone.sandri <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-09-30 04:38+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-12 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_report
|
||||
|
@ -308,7 +308,7 @@ msgstr "Report per personale Contabile"
|
|||
#: model:ir.actions.act_window,name:account_report.action_account_report_form
|
||||
#: model:ir.ui.menu,name:account_report.menu_action_account_report_form
|
||||
msgid "New Reporting Item Formula"
|
||||
msgstr ""
|
||||
msgstr "Nuova Formula di Riporto Oggetti"
|
||||
|
||||
#. module: account_report
|
||||
#: field:account.report.report,code:0
|
||||
|
|
|
@ -29,8 +29,9 @@ from tools.translate import _
|
|||
|
||||
class account_move_line(osv.osv):
|
||||
_inherit = 'account.move.line'
|
||||
|
||||
def _unreconciled(self, cr, uid, ids, prop, unknow_none, context):
|
||||
res={}
|
||||
res = {}
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
res[line.id] = line.debit - line.credit
|
||||
if line.reconcile_partial_id:
|
||||
|
@ -43,9 +44,11 @@ class account_move_line(osv.osv):
|
|||
_columns = {
|
||||
'amount_unreconciled': fields.function(_unreconciled, method=True, string='Unreconciled Amount'),
|
||||
}
|
||||
|
||||
account_move_line()
|
||||
|
||||
class account_voucher(osv.osv):
|
||||
|
||||
def _get_type(self, cr, uid, ids, context={}):
|
||||
return context.get('type', False)
|
||||
|
||||
|
@ -92,7 +95,7 @@ class account_voucher(osv.osv):
|
|||
journal_id = context.get('journal_id', False)
|
||||
if journal_id:
|
||||
journal = journal_pool.browse(cr, uid, journal_id)
|
||||
currency_id = journal.company_id.currency_id.id
|
||||
# currency_id = journal.company_id.currency_id.id
|
||||
if journal.currency:
|
||||
return journal.currency.id
|
||||
return False
|
||||
|
@ -112,15 +115,15 @@ class account_voucher(osv.osv):
|
|||
return [(r['id'], (str("%.2f" % r['amount']) or '')) for r in self.read(cr, uid, ids, ['amount'], context, load='_classic_write')]
|
||||
|
||||
def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
|
||||
if not view_id and context.get('invoice_type',False):
|
||||
if not view_id and context.get('invoice_type', False):
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
if context.get('invoice_type') in ('out_invoice','out_refund'):
|
||||
if context.get('invoice_type') in ('out_invoice', 'out_refund'):
|
||||
result = mod_obj._get_id(cr, uid, 'account_voucher', 'view_vendor_receipt_form')
|
||||
else:
|
||||
result = mod_obj._get_id(cr, uid, 'account_voucher', 'view_vendor_payment_form')
|
||||
result = mod_obj.read(cr, uid, [result], ['res_id'], context=context)[0]['res_id']
|
||||
view_id = result
|
||||
res = super(account_voucher,self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
|
||||
res = super(account_voucher, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
|
||||
doc = etree.XML(res['arch'])
|
||||
nodes = doc.xpath("//field[@name='partner_id']")
|
||||
if context.get('type', 'sale') in ('purchase', 'payment'):
|
||||
|
@ -223,7 +226,7 @@ class account_voucher(osv.osv):
|
|||
total_tax = 0.0
|
||||
|
||||
if not tax[0].price_include:
|
||||
for tax_line in tax_pool.compute_all(cr, uid, tax, voucher_amount, 1).get('taxes',[]):
|
||||
for tax_line in tax_pool.compute_all(cr, uid, tax, voucher_amount, 1).get('taxes', []):
|
||||
total_tax += tax_line.get('amount', 0.0)
|
||||
total += total_tax
|
||||
else:
|
||||
|
@ -231,7 +234,7 @@ class account_voucher(osv.osv):
|
|||
line_total = 0.0
|
||||
line_tax = 0.0
|
||||
|
||||
for tax_line in tax_pool.compute_all(cr, uid, tax, line.untax_amount or line.amount, 1).get('taxes',[]):
|
||||
for tax_line in tax_pool.compute_all(cr, uid, tax, line.untax_amount or line.amount, 1).get('taxes', []):
|
||||
line_tax += tax_line.get('amount', 0.0)
|
||||
line_total += tax_line.get('price_unit')
|
||||
total_tax += line_tax
|
||||
|
@ -246,8 +249,8 @@ class account_voucher(osv.osv):
|
|||
partner_pool = self.pool.get('res.partner')
|
||||
position_pool = self.pool.get('account.fiscal.position')
|
||||
res = {
|
||||
'tax_amount':False,
|
||||
'amount':False,
|
||||
'tax_amount': False,
|
||||
'amount': False,
|
||||
}
|
||||
voucher_total = 0.0
|
||||
voucher_line_ids = []
|
||||
|
@ -271,7 +274,7 @@ class account_voucher(osv.osv):
|
|||
tax = tax_pool.browse(cr, uid, taxes)
|
||||
|
||||
if not tax[0].price_include:
|
||||
for tax_line in tax_pool.compute_all(cr, uid, tax, voucher_total, 1).get('taxes',[]):
|
||||
for tax_line in tax_pool.compute_all(cr, uid, tax, voucher_total, 1).get('taxes', []):
|
||||
total_tax += tax_line.get('amount')
|
||||
total += total_tax
|
||||
|
||||
|
@ -371,7 +374,7 @@ class account_voucher(osv.osv):
|
|||
return default
|
||||
|
||||
if not partner_id and ids:
|
||||
line_ids = line_pool.search(cr, uid, [('voucher_id','=',ids[0])])
|
||||
line_ids = line_pool.search(cr, uid, [('voucher_id', '=', ids[0])])
|
||||
if line_ids:
|
||||
line_pool.unlink(cr, uid, line_ids)
|
||||
return default
|
||||
|
@ -402,7 +405,7 @@ class account_voucher(osv.osv):
|
|||
account_type = 'receivable'
|
||||
|
||||
if not context.get('move_line_ids', False):
|
||||
ids = move_line_pool.search(cr, uid, [('account_id.type','=', account_type), ('reconcile_id','=', False), ('partner_id','=',partner_id)], context=context)
|
||||
ids = move_line_pool.search(cr, uid, [('account_id.type', '=', account_type), ('reconcile_id', '=', False), ('partner_id', '=', partner_id)], context=context)
|
||||
else:
|
||||
ids = context['move_line_ids']
|
||||
ids.reverse()
|
||||
|
@ -469,7 +472,7 @@ class account_voucher(osv.osv):
|
|||
@return: Returns a dict which contains new values, and context
|
||||
"""
|
||||
period_pool = self.pool.get('account.period')
|
||||
pids = period_pool.search(cr, user, [('date_start','<=',date), ('date_stop','>=',date)])
|
||||
pids = period_pool.search(cr, user, [('date_start', '<=', date), ('date_stop', '>=', date)])
|
||||
if not pids:
|
||||
return {}
|
||||
return {
|
||||
|
@ -685,13 +688,13 @@ class account_voucher(osv.osv):
|
|||
if not self.pool.get('res.currency').is_zero(cr, uid, inv.currency_id, line_total):
|
||||
diff = line_total
|
||||
move_line = {
|
||||
'name':name,
|
||||
'account_id':False,
|
||||
'move_id':move_id ,
|
||||
'partner_id':inv.partner_id.id,
|
||||
'date':inv.date,
|
||||
'credit':diff>0 and diff or 0.0,
|
||||
'debit':diff<0 and -diff or 0.0,
|
||||
'name': name,
|
||||
'account_id': False,
|
||||
'move_id': move_id ,
|
||||
'partner_id': inv.partner_id.id,
|
||||
'date': inv.date,
|
||||
'credit': diff > 0 and diff or 0.0,
|
||||
'debit': diff < 0 and -diff or 0.0,
|
||||
}
|
||||
account_id = False
|
||||
if inv.type in ('sale', 'receipt'):
|
||||
|
@ -792,10 +795,10 @@ class account_voucher_line(osv.osv):
|
|||
if move_line_id:
|
||||
move_line = move_line_pool.browse(cr, user, move_line_id, context=context)
|
||||
if move_line.credit:
|
||||
ttype='dr'
|
||||
ttype = 'dr'
|
||||
amount = move_line.credit
|
||||
else:
|
||||
ttype='cr'
|
||||
ttype = 'cr'
|
||||
account_id = move_line.account_id.id
|
||||
res.update({
|
||||
'account_id':account_id,
|
||||
|
@ -909,4 +912,4 @@ class account_bank_statement_line(osv.osv):
|
|||
self.pool.get('account.voucher').unlink(cr, uid, unlink_ids, context=context)
|
||||
return super(account_bank_statement_line, self).unlink(cr, uid, ids, context=context)
|
||||
|
||||
account_bank_statement_line()
|
||||
account_bank_statement_line()
|
|
@ -36,7 +36,7 @@ class report_voucher(report_sxw.rml_parse):
|
|||
})
|
||||
|
||||
def convert(self, amount, cur):
|
||||
amt_en = amount_to_text_en.amount_to_text(amount, 'en', cur);
|
||||
amt_en = amount_to_text_en.amount_to_text(amount, 'en', cur)
|
||||
return amt_en
|
||||
|
||||
def get_title(self, type):
|
||||
|
@ -48,17 +48,17 @@ class report_voucher(report_sxw.rml_parse):
|
|||
def debit(self, move_ids):
|
||||
debit = 0.0
|
||||
for move in move_ids:
|
||||
debit +=move.debit
|
||||
debit += move.debit
|
||||
return debit
|
||||
|
||||
def credit(self, move_ids):
|
||||
credit = 0.0
|
||||
for move in move_ids:
|
||||
credit +=move.credit
|
||||
credit += move.credit
|
||||
return credit
|
||||
|
||||
def _get_ref(self, voucher_id, move_ids):
|
||||
voucher_line = self.pool.get('account.voucher.line').search(self.cr, self.uid, [('partner_id','=',move_ids.partner_id.id), ('voucher_id','=',voucher_id)])
|
||||
voucher_line = self.pool.get('account.voucher.line').search(self.cr, self.uid, [('partner_id', '=', move_ids.partner_id.id), ('voucher_id', '=', voucher_id)])
|
||||
if voucher_line:
|
||||
voucher = self.pool.get('account.voucher.line').browse(self.cr, self.uid, voucher_line)[0]
|
||||
return voucher.name
|
||||
|
@ -69,4 +69,4 @@ report_sxw.report_sxw(
|
|||
'account.voucher',
|
||||
'addons/account_voucher/report/account_voucher.rml',
|
||||
parser=report_voucher,header="external"
|
||||
)
|
||||
)
|
|
@ -35,10 +35,10 @@ class report_voucher_print(report_sxw.rml_parse):
|
|||
})
|
||||
|
||||
def convert(self, amount, cur):
|
||||
amt_en = amount_to_text_en.amount_to_text(amount, 'en', cur);
|
||||
amt_en = amount_to_text_en.amount_to_text(amount, 'en', cur)
|
||||
return amt_en
|
||||
|
||||
def get_lines(self,voucher):
|
||||
def get_lines(self, voucher):
|
||||
result = []
|
||||
if voucher.type in ('payment','receipt'):
|
||||
type = voucher.line_ids and voucher.line_ids[0].type or False
|
||||
|
|
|
@ -20,15 +20,9 @@
|
|||
##############################################################################
|
||||
|
||||
from report import report_sxw
|
||||
import xml.dom.minidom
|
||||
import os, time
|
||||
import osv
|
||||
import re
|
||||
import tools
|
||||
import pooler
|
||||
import re
|
||||
import sys
|
||||
|
||||
from datetime import datetime
|
||||
import re
|
||||
|
||||
class rml_parse(report_sxw.rml_parse):
|
||||
def __init__(self, cr, uid, name, context):
|
||||
|
@ -40,7 +34,7 @@ class rml_parse(report_sxw.rml_parse):
|
|||
'explode_name' : self._explode_name,
|
||||
})
|
||||
|
||||
def comma_me(self,amount):
|
||||
def comma_me(self, amount):
|
||||
if not amount:
|
||||
amount = 0.0
|
||||
if type(amount) is float :
|
||||
|
@ -48,7 +42,7 @@ class rml_parse(report_sxw.rml_parse):
|
|||
else :
|
||||
amount = str(amount)
|
||||
if (amount == '0'):
|
||||
return ' '
|
||||
return ' '
|
||||
orig = amount
|
||||
new = re.sub("^(-?\d+)(\d{3})", "\g<1>'\g<2>", amount)
|
||||
if orig == new:
|
||||
|
@ -60,19 +54,19 @@ class rml_parse(report_sxw.rml_parse):
|
|||
ellipsis = ellipsis or ''
|
||||
try:
|
||||
return string[:maxlen - len(ellipsis) ] + (ellipsis, '')[len(string) < maxlen]
|
||||
except Exception, e:
|
||||
except:
|
||||
return False
|
||||
|
||||
def _strip_name(self, name, maxlen=50):
|
||||
return self._ellipsis(name, maxlen, '...')
|
||||
|
||||
def _get_and_change_date_format_for_swiss (self,date_to_format):
|
||||
date_formatted=''
|
||||
def _get_and_change_date_format_for_swiss (self, date_to_format):
|
||||
date_formatted = ''
|
||||
if date_to_format:
|
||||
date_formatted = strptime (date_to_format,'%Y-%m-%d').strftime('%d.%m.%Y')
|
||||
date_formatted = datetime.strptime(date_to_format,'%Y-%m-%d').strftime('%d.%m.%Y')
|
||||
return date_formatted
|
||||
|
||||
def _explode_name(self,chaine,length):
|
||||
def _explode_name(self, chaine, length):
|
||||
# We will test if the size is less then account
|
||||
full_string = ''
|
||||
if (len(str(chaine)) <= length):
|
||||
|
@ -92,7 +86,7 @@ class rml_parse(report_sxw.rml_parse):
|
|||
|
||||
return full_string
|
||||
|
||||
def makeAscii(self,str):
|
||||
def makeAscii(self, str):
|
||||
try:
|
||||
Stringer = str.encode("utf-8")
|
||||
except UnicodeDecodeError:
|
||||
|
@ -106,7 +100,7 @@ class rml_parse(report_sxw.rml_parse):
|
|||
return Stringer
|
||||
return Stringer
|
||||
|
||||
def explode_this(self,chaine,length):
|
||||
def explode_this(self, chaine, length):
|
||||
chaine = rstrip(chaine)
|
||||
ast = list(chaine)
|
||||
i = length
|
||||
|
@ -116,7 +110,7 @@ class rml_parse(report_sxw.rml_parse):
|
|||
chaine = str("".join(ast))
|
||||
return chaine
|
||||
|
||||
def repair_string(self,chaine):
|
||||
def repair_string(self, chaine):
|
||||
ast = list(chaine)
|
||||
UnicodeAst = []
|
||||
_previouslyfound = False
|
||||
|
@ -135,7 +129,7 @@ class rml_parse(report_sxw.rml_parse):
|
|||
i += i + 1
|
||||
return "".join(UnicodeAst)
|
||||
|
||||
def ReencodeAscii(self,str):
|
||||
def ReencodeAscii(self, str):
|
||||
try:
|
||||
Stringer = str.decode("ascii")
|
||||
except UnicodeEncodeError:
|
||||
|
@ -146,7 +140,7 @@ class rml_parse(report_sxw.rml_parse):
|
|||
return Stringer
|
||||
|
||||
def _add_header(self, node, header=1):
|
||||
if header==2:
|
||||
if header == 2:
|
||||
rml_head = self.rml_header2
|
||||
else:
|
||||
rml_head = self.rml_header
|
||||
|
|
|
@ -86,7 +86,7 @@ class account_statement_from_invoice_lines(osv.osv_memory):
|
|||
'period_id':statement.period_id.id}
|
||||
voucher_id = voucher_obj.create(cr, uid, voucher_res, context=context)
|
||||
|
||||
voucher_line_dict = False
|
||||
voucher_line_dict = {}
|
||||
if result['value']['line_ids']:
|
||||
for line_dict in result['value']['line_ids']:
|
||||
move_line = line_obj.browse(cr, uid, line_dict['move_line_id'], context)
|
||||
|
@ -94,7 +94,7 @@ class account_statement_from_invoice_lines(osv.osv_memory):
|
|||
voucher_line_dict = line_dict
|
||||
|
||||
if voucher_line_dict:
|
||||
voucher_line_dict.update({'voucher_id':voucher_id})
|
||||
voucher_line_dict.update({'voucher_id': voucher_id})
|
||||
voucher_line_obj.create(cr, uid, voucher_line_dict, context=context)
|
||||
if line.journal_id.type == 'sale':
|
||||
type = 'customer'
|
||||
|
@ -147,11 +147,11 @@ class account_statement_from_invoice(osv.osv_memory):
|
|||
# Creating a group that is unique for importing move lines(move lines, once imported into statement lines, should not appear again)
|
||||
for st_line in statement.line_ids:
|
||||
args_move_line = []
|
||||
args_move_line.append(('name','=', st_line.name))
|
||||
args_move_line.append(('ref','=',st_line.ref))
|
||||
args_move_line.append(('name', '=', st_line.name))
|
||||
args_move_line.append(('ref', '=', st_line.ref))
|
||||
if st_line.partner_id:
|
||||
args_move_line.append(('partner_id','=',st_line.partner_id.id))
|
||||
args_move_line.append(('account_id','=',st_line.account_id.id))
|
||||
args_move_line.append(('partner_id', '=', st_line.partner_id.id))
|
||||
args_move_line.append(('account_id', '=', st_line.account_id.id))
|
||||
|
||||
move_line_id = line_obj.search(cr, uid, args_move_line, context=context)
|
||||
if move_line_id:
|
||||
|
@ -159,7 +159,7 @@ class account_statement_from_invoice(osv.osv_memory):
|
|||
|
||||
journal_ids = data['journal_ids']
|
||||
if journal_ids == []:
|
||||
journal_ids = journal_obj.search(cr, uid, [('type', 'in', ('sale','cash','purchase'))], context=context)
|
||||
journal_ids = journal_obj.search(cr, uid, [('type', 'in', ('sale', 'cash', 'purchase'))], context=context)
|
||||
|
||||
args = [
|
||||
('reconcile_id', '=', False),
|
||||
|
@ -167,12 +167,12 @@ class account_statement_from_invoice(osv.osv_memory):
|
|||
('account_id.reconcile', '=', True)]
|
||||
|
||||
if repeated_move_line_ids:
|
||||
args.append(('id','not in',repeated_move_line_ids))
|
||||
args.append(('id', 'not in', repeated_move_line_ids))
|
||||
|
||||
line_ids = line_obj.search(cr, uid, args,
|
||||
context=context)
|
||||
|
||||
model_data_ids = mod_obj.search(cr,uid,[('model','=','ir.ui.view'),('name','=','view_account_statement_from_invoice_lines')], context=context)
|
||||
model_data_ids = mod_obj.search(cr, uid, [('model', '=', 'ir.ui.view'), ('name', '=', 'view_account_statement_from_invoice_lines')], context=context)
|
||||
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
return {
|
||||
'domain': "[('id','in', ["+','.join([str(x) for x in line_ids])+"])]",
|
||||
|
@ -187,4 +187,4 @@ class account_statement_from_invoice(osv.osv_memory):
|
|||
}
|
||||
|
||||
account_statement_from_invoice()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -19,7 +19,6 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
import netsvc
|
||||
from osv import osv
|
||||
from osv import fields
|
||||
|
||||
|
@ -32,11 +31,11 @@ class account_voucher_unreconcile(osv.osv_memory):
|
|||
}
|
||||
|
||||
_defaults = {
|
||||
'remove': lambda *a: True,
|
||||
'remove': True,
|
||||
}
|
||||
|
||||
def trans_unrec(self, cr, uid, ids, context=None):
|
||||
res = self.browse(cr, uid, ids[0])
|
||||
# res = self.browse(cr, uid, ids[0])
|
||||
if context is None:
|
||||
context = {}
|
||||
voucher_pool = self.pool.get('account.voucher')
|
||||
|
|
|
@ -156,7 +156,7 @@ class account_analytic_account(osv.osv):
|
|||
return dict([(i, res[i]) for i in ids])
|
||||
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
if not len(ids):
|
||||
if not ids:
|
||||
return []
|
||||
res = []
|
||||
for account in self.browse(cr, uid, ids, context=context):
|
||||
|
@ -174,7 +174,7 @@ class account_analytic_account(osv.osv):
|
|||
return dict(res)
|
||||
|
||||
_columns = {
|
||||
'name' : fields.char('Account Name', size=128, required=True),
|
||||
'name': fields.char('Account Name', size=128, required=True),
|
||||
'complete_name': fields.function(_complete_name_calc, method=True, type='char', string='Full Account Name'),
|
||||
'code': fields.char('Account Code', size=24),
|
||||
'type': fields.selection([('view','View'), ('normal','Normal')], 'Account Type', help='If you select the View Type, it means you won\'t allow to create journal entries using that account.'),
|
||||
|
@ -182,14 +182,14 @@ class account_analytic_account(osv.osv):
|
|||
'parent_id': fields.many2one('account.analytic.account', 'Parent Analytic Account', select=2),
|
||||
'child_ids': fields.one2many('account.analytic.account', 'parent_id', 'Child Accounts'),
|
||||
'line_ids': fields.one2many('account.analytic.line', 'account_id', 'Analytic Entries'),
|
||||
'balance' : fields.function(_balance_calc, method=True, type='float', string='Balance'),
|
||||
'debit' : fields.function(_debit_calc, method=True, type='float', string='Debit'),
|
||||
'credit' : fields.function(_credit_calc, method=True, type='float', string='Credit'),
|
||||
'balance': fields.function(_balance_calc, method=True, type='float', string='Balance'),
|
||||
'debit': fields.function(_debit_calc, method=True, type='float', string='Debit'),
|
||||
'credit': fields.function(_credit_calc, method=True, type='float', string='Credit'),
|
||||
'quantity': fields.function(_quantity_calc, method=True, type='float', string='Quantity'),
|
||||
'quantity_max': fields.float('Maximum Quantity', help='Sets the higher limit of quantity of hours.'),
|
||||
'partner_id' : fields.many2one('res.partner', 'Associated Partner'),
|
||||
'contact_id' : fields.many2one('res.partner.address', 'Contact'),
|
||||
'user_id' : fields.many2one('res.users', 'Account Manager'),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'contact_id': fields.many2one('res.partner.address', 'Contact'),
|
||||
'user_id': fields.many2one('res.users', 'Account Manager'),
|
||||
'date_start': fields.date('Date Start'),
|
||||
'date': fields.date('Date End'),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True),
|
||||
|
@ -210,10 +210,10 @@ class account_analytic_account(osv.osv):
|
|||
return self.pool.get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
|
||||
|
||||
_defaults = {
|
||||
'type' : 'normal',
|
||||
'type': 'normal',
|
||||
'company_id': _default_company,
|
||||
'state' : 'open',
|
||||
'user_id' : lambda self, cr, uid, ctx : uid,
|
||||
'state': 'open',
|
||||
'user_id': lambda self, cr, uid, ctx: uid,
|
||||
'partner_id': lambda self, cr, uid, ctx: ctx.get('partner_id', False),
|
||||
'contact_id': lambda self, cr, uid, ctx: ctx.get('contact_id', False),
|
||||
'date_start': time.strftime('%Y-%m-%d')
|
||||
|
@ -244,7 +244,7 @@ class account_analytic_account(osv.osv):
|
|||
partner = parent['partner_id'][0]
|
||||
else:
|
||||
partner = False
|
||||
res = {'value' : {}}
|
||||
res = {'value': {}}
|
||||
if partner:
|
||||
res['value']['partner_id'] = partner
|
||||
return res
|
||||
|
@ -271,19 +271,19 @@ class account_analytic_line(osv.osv):
|
|||
_description = 'Analytic Line'
|
||||
|
||||
_columns = {
|
||||
'name' : fields.char('Description', size=256, required=True),
|
||||
'date' : fields.date('Date', required=True, select=1),
|
||||
'amount' : fields.float('Amount', required=True, help='Calculated by multiplying the quantity and the price given in the Product\'s cost price. Always expressed in the company main currency.', digits_compute=dp.get_precision('Account')),
|
||||
'unit_amount' : fields.float('Quantity', help='Specifies the amount of quantity to count.'),
|
||||
'account_id' : fields.many2one('account.analytic.account', 'Analytic Account', required=True, ondelete='cascade', select=True),
|
||||
'user_id' : fields.many2one('res.users', 'User'),
|
||||
'name': fields.char('Description', size=256, required=True),
|
||||
'date': fields.date('Date', required=True, select=1),
|
||||
'amount': fields.float('Amount', required=True, help='Calculated by multiplying the quantity and the price given in the Product\'s cost price. Always expressed in the company main currency.', digits_compute=dp.get_precision('Account')),
|
||||
'unit_amount': fields.float('Quantity', help='Specifies the amount of quantity to count.'),
|
||||
'account_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True, ondelete='cascade', select=True),
|
||||
'user_id': fields.many2one('res.users', 'User'),
|
||||
'company_id': fields.related('account_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
|
||||
|
||||
}
|
||||
_defaults = {
|
||||
'date': time.strftime('%Y-%m-%d'),
|
||||
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', context=c),
|
||||
'amount' : 0.00
|
||||
'amount': 0.00
|
||||
}
|
||||
|
||||
_order = 'date desc'
|
||||
|
|
|
@ -8,13 +8,13 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-06-18 10:59+0000\n"
|
||||
"PO-Revision-Date: 2010-10-10 10:41+0000\n"
|
||||
"Last-Translator: Ferdinand @ ChriCar <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-10-11 07:17+0000\n"
|
||||
"Last-Translator: Ferdinand-chricar <Unknown>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-11 04:45+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-12 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: analytic
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
|
@ -15,7 +15,7 @@
|
|||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
@ -38,7 +38,7 @@ class account_analytic_account(osv.osv):
|
|||
|
||||
_inherit = "account.analytic.account"
|
||||
_columns = {
|
||||
'journal_rate_ids' : fields.one2many('analytic_journal_rate_grid', 'account_id', 'Invoicing Rate per Journal'),
|
||||
'journal_rate_ids': fields.one2many('analytic_journal_rate_grid', 'account_id', 'Invoicing Rate per Journal'),
|
||||
}
|
||||
|
||||
account_analytic_account()
|
||||
|
@ -92,7 +92,7 @@ class hr_analytic_timesheet(osv.osv):
|
|||
if to_invoice:
|
||||
res.setdefault('value',{})
|
||||
res['value']['to_invoice'] = to_invoice[0]
|
||||
|
||||
|
||||
return res
|
||||
|
||||
hr_analytic_timesheet()
|
||||
|
|
|
@ -40,7 +40,7 @@ class account_analytic_account(osv.osv):
|
|||
|
||||
_inherit = "account.analytic.account"
|
||||
_columns = {
|
||||
'user_product_ids' : fields.one2many('analytic_user_funct_grid', 'account_id', 'Users/Products Rel.'),
|
||||
'user_product_ids': fields.one2many('analytic_user_funct_grid', 'account_id', 'Users/Products Rel.'),
|
||||
}
|
||||
|
||||
account_analytic_account()
|
||||
|
|
|
@ -1,18 +1,5 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="view_picking_delivery" model="ir.ui.view">
|
||||
<field name="name">stock.picking.delivery.form20</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="type">form</field>
|
||||
<field name="priority" eval="2"/>
|
||||
<field name="inherit_id" ref="stock.view_picking_delivery_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//form/group/field[@name='date']" position="after">
|
||||
<field name="partner_id" invisible="1"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<data>
|
||||
|
||||
<act_window id="action_claim_from_delivery" name="Claim"
|
||||
domain="[]" target="current"
|
||||
|
@ -20,5 +7,5 @@
|
|||
view_mode="form" res_model="crm.claim"
|
||||
src_model="stock.picking" />
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -8,13 +8,13 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-08-20 12:02+0000\n"
|
||||
"PO-Revision-Date: 2010-10-10 10:45+0000\n"
|
||||
"Last-Translator: Ferdinand @ ChriCar <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-10-11 07:17+0000\n"
|
||||
"Last-Translator: Ferdinand-chricar <Unknown>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-11 04:45+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-12 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: claim_from_delivery
|
||||
|
|
|
@ -158,6 +158,5 @@
|
|||
action="open_board_crm"
|
||||
sequence="1"
|
||||
id="menu_board_crm" icon="terp-graph"/>
|
||||
<menuitem icon="terp-partner" id="base.menu_base_partner" name="Sales" sequence="0" groups="base.group_sale_salesman,base.group_sale_manager,base.group_system,base.group_partner_manager" action="open_board_crm"/>
|
||||
</data>
|
||||
</openerp>
|
||||
</openerp>
|
||||
|
|
|
@ -7,13 +7,13 @@ msgstr ""
|
|||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
|
||||
"PO-Revision-Date: 2010-10-10 08:54+0000\n"
|
||||
"PO-Revision-Date: 2010-10-11 13:45+0000\n"
|
||||
"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-11 04:45+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-12 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm
|
||||
|
@ -583,7 +583,7 @@ msgstr "Augustus"
|
|||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
msgid "Meetings Tree"
|
||||
msgstr "Afsprakenboom"
|
||||
msgstr "Afspraken"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
|
@ -4006,7 +4006,7 @@ msgstr "ICS bestand opslaan"
|
|||
#. module: crm
|
||||
#: wizard_field:caldav.crm.subscribe,init,url_path:0
|
||||
msgid "Provide path for remote calendar"
|
||||
msgstr "Geef het pas naar de remote agenda"
|
||||
msgstr "Geef het pad naar de remote agenda"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.log:0
|
||||
|
|
|
@ -8,35 +8,35 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-08-20 12:29+0000\n"
|
||||
"PO-Revision-Date: 2010-09-10 14:23+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2010-10-11 09:58+0000\n"
|
||||
"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-09-29 05:17+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-12 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,planned_revenue:0
|
||||
msgid "Planned Revenue"
|
||||
msgstr ""
|
||||
msgstr "Verwachte omzet"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising.report,nbr:0
|
||||
msgid "# of Cases"
|
||||
msgstr ""
|
||||
msgstr "# Fondsen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.fundraising.report:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
msgstr "Groepeer op.."
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising.report,probability:0
|
||||
msgid "Avg. Probability"
|
||||
msgstr ""
|
||||
msgstr "Gemiddelde kans"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: help:crm.fundraising,canal_id:0
|
||||
|
@ -45,207 +45,211 @@ msgid ""
|
|||
"customer. With each commercial opportunity, you can indicate "
|
||||
" the canall which is this opportunity source."
|
||||
msgstr ""
|
||||
"De kanalen geven de verschillende beschikbare communicatievormen met de "
|
||||
"klant weer. Met elke kans kunt u het kanaal aangeven wat de oorsprong van de "
|
||||
"kans is."
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Ongeldige modelnaam in de definitie van de actie."
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Funds Form"
|
||||
msgstr ""
|
||||
msgstr "Fondsenformulier"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising.report,delay_close:0
|
||||
msgid "Delay to close"
|
||||
msgstr ""
|
||||
msgstr "Vertraging tot sluiting"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,company_id:0
|
||||
#: view:crm.fundraising.report:0
|
||||
#: field:crm.fundraising.report,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
msgstr "Bedrijf"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:ir.actions.act_window,name:crm_fundraising.crm_fund_categ_action
|
||||
msgid "Fundraising Categories"
|
||||
msgstr ""
|
||||
msgstr "Fondscategorieën"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,email_cc:0
|
||||
msgid "Watchers Emails"
|
||||
msgstr ""
|
||||
msgstr "Email toeschouwers"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
msgid "This Year"
|
||||
msgstr ""
|
||||
msgstr "Dit jaar"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
msgid "Cases"
|
||||
msgstr ""
|
||||
msgstr "Dossiers"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising,priority:0
|
||||
msgid "Highest"
|
||||
msgstr ""
|
||||
msgstr "Hoogste"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
#: field:crm.fundraising.report,day:0
|
||||
msgid "Day"
|
||||
msgstr ""
|
||||
msgstr "Dag"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,partner_mobile:0
|
||||
msgid "Mobile"
|
||||
msgstr ""
|
||||
msgstr "Mobiel"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
msgstr "Notities"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
msgstr "Berichten"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
msgstr "Bedrag"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising,state:0
|
||||
#: selection:crm.fundraising.report,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
msgstr "Geannuleerd"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
#: field:crm.fundraising.report,amount_revenue:0
|
||||
msgid "Est.Revenue"
|
||||
msgstr ""
|
||||
msgstr "Gesch. omzet"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,partner_address_id:0
|
||||
msgid "Partner Contact"
|
||||
msgstr ""
|
||||
msgstr "Contactpersoon relatie"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
msgid "My Case"
|
||||
msgstr ""
|
||||
msgstr "Mijn Fondsen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,ref:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
msgstr "Verwijzing"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,date_action_next:0
|
||||
msgid "Next Action"
|
||||
msgstr ""
|
||||
msgstr "Volgende actie"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Reset to Draft"
|
||||
msgstr ""
|
||||
msgstr "Terugzetten naar Concept"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Extra Info"
|
||||
msgstr ""
|
||||
msgstr "Extra informatie"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:ir.model,name:crm_fundraising.model_crm_fundraising
|
||||
#: model:ir.ui.menu,name:crm_fundraising.menu_config_fundrising
|
||||
#: model:ir.ui.menu,name:crm_fundraising.menu_crm_case_fund_raise
|
||||
msgid "Fund Raising"
|
||||
msgstr ""
|
||||
msgstr "Fondsenwerving"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
#: field:crm.fundraising,partner_id:0
|
||||
#: field:crm.fundraising.report,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
msgstr "Relatie"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:ir.ui.menu,name:crm_fundraising.menu_report_crm_fundraising_tree
|
||||
msgid "Fundraising Analysis"
|
||||
msgstr ""
|
||||
msgstr "Fondsenwerving Analyse"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:ir.module.module,shortdesc:crm_fundraising.module_meta_information
|
||||
msgid "CRM Fundraising"
|
||||
msgstr ""
|
||||
msgstr "CRM Fondsenwerving"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Estimates"
|
||||
msgstr ""
|
||||
msgstr "Schattingen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
#: field:crm.fundraising.report,section_id:0
|
||||
msgid "Section"
|
||||
msgstr ""
|
||||
msgstr "Afdeling"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Dates"
|
||||
msgstr ""
|
||||
msgstr "Data"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
#: field:crm.fundraising,priority:0
|
||||
msgid "Priority"
|
||||
msgstr ""
|
||||
msgstr "Prioriteit"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Send New Email"
|
||||
msgstr ""
|
||||
msgstr "Verstuur nieuwe email"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:crm.case.categ,name:crm_fundraising.categ_fund1
|
||||
msgid "Social Rehabilitation And Rural Upliftment"
|
||||
msgstr ""
|
||||
"Sociale reïntegratie en ontwikkelingsstimulans niet-stedelijke gebieden"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Payment Mode"
|
||||
msgstr ""
|
||||
msgstr "Betalingsvorm"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Reply"
|
||||
msgstr ""
|
||||
msgstr "Beantwoorden"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,email_from:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
msgstr "Email"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,canal_id:0
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
msgstr "Kanaal"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising,priority:0
|
||||
msgid "Lowest"
|
||||
msgstr ""
|
||||
msgstr "Laagste"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,create_date:0
|
||||
msgid "Creation Date"
|
||||
msgstr ""
|
||||
msgstr "Aanmaakdatum"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
|
@ -253,127 +257,127 @@ msgstr ""
|
|||
#: view:crm.fundraising.report:0
|
||||
#: selection:crm.fundraising.report,state:0
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
msgstr "Wacht"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,date_deadline:0
|
||||
msgid "Deadline"
|
||||
msgstr ""
|
||||
msgstr "Uiterste datum"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
msgstr "Juli"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:ir.ui.menu,name:crm_fundraising.menu_crm_case_fundraising-act
|
||||
msgid "Categories"
|
||||
msgstr ""
|
||||
msgstr "Categorieën"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,stage_id:0
|
||||
msgid "Stage"
|
||||
msgstr ""
|
||||
msgstr "Fase"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "History Information"
|
||||
msgstr ""
|
||||
msgstr "Historie Informatie"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,date_closed:0
|
||||
#: selection:crm.fundraising,state:0
|
||||
#: selection:crm.fundraising.report,state:0
|
||||
msgid "Closed"
|
||||
msgstr ""
|
||||
msgstr "Gesloten"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,partner_name2:0
|
||||
msgid "Employee Email"
|
||||
msgstr ""
|
||||
msgstr "E-mail werknemer"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:crm.case.categ,name:crm_fundraising.categ_fund2
|
||||
msgid "Learning And Education"
|
||||
msgstr ""
|
||||
msgstr "Leren en onderwijs"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Contact"
|
||||
msgstr ""
|
||||
msgstr "Contactpersoon"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
msgstr "Ongeldige XML voor weergave opbouw!"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
msgstr "Maart"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Fund Description"
|
||||
msgstr ""
|
||||
msgstr "Fonds omschrijving"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: help:crm.fundraising.report,delay_close:0
|
||||
msgid "Number of Days to close the case"
|
||||
msgstr ""
|
||||
msgstr "Aantal dagen om werving af te sluiten"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
#: model:ir.actions.act_window,name:crm_fundraising.action_report_crm_fundraising
|
||||
#: model:ir.module.module,description:crm_fundraising.module_meta_information
|
||||
msgid "Fundraising"
|
||||
msgstr ""
|
||||
msgstr "Fondsenwerving"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
msgstr "September"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
msgstr "December"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Funds Tree"
|
||||
msgstr ""
|
||||
msgstr "Fondsen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
#: field:crm.fundraising.report,month:0
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
msgstr "Maand"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Escalate"
|
||||
msgstr ""
|
||||
msgstr "Escaleren"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,write_date:0
|
||||
msgid "Update Date"
|
||||
msgstr ""
|
||||
msgstr "Wijzigingsdatum"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:crm.case.resource.type,name:crm_fundraising.type_fund3
|
||||
msgid "Credit Card"
|
||||
msgstr ""
|
||||
msgstr "Creditcard"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:ir.actions.act_window,name:crm_fundraising.crm_fundraising_stage_act
|
||||
msgid "Fundraising Stages"
|
||||
msgstr ""
|
||||
msgstr "Fondswerving fasen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,ref2:0
|
||||
msgid "Reference 2"
|
||||
msgstr ""
|
||||
msgstr "Referentie 2"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
|
@ -381,17 +385,17 @@ msgstr ""
|
|||
#: view:crm.fundraising.report:0
|
||||
#: field:crm.fundraising.report,categ_id:0
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
msgstr "Categorie"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:crm.case.categ,name:crm_fundraising.categ_fund4
|
||||
msgid "Arts And Culture"
|
||||
msgstr ""
|
||||
msgstr "Kunst en cultuur"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,planned_cost:0
|
||||
msgid "Planned Costs"
|
||||
msgstr ""
|
||||
msgstr "Verwachte kosten"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: help:crm.fundraising,email_cc:0
|
||||
|
@ -400,145 +404,148 @@ msgid ""
|
|||
"outbound emails for this record before being sent. Separate multiple email "
|
||||
"addresses with a comma"
|
||||
msgstr ""
|
||||
"Deze email adressen worden toegevoegd aan het CC veld van alle inkomende en "
|
||||
"uitgaande emails van dit record voordat het wordt verstuurd. Meerdere namen "
|
||||
"scheidt u met een komma (,)."
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising,state:0
|
||||
#: view:crm.fundraising.report:0
|
||||
#: selection:crm.fundraising.report,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
msgstr "Concept"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising,priority:0
|
||||
msgid "Low"
|
||||
msgstr ""
|
||||
msgstr "Laag"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: constraint:ir.ui.menu:0
|
||||
msgid "Error ! You can not create recursive Menu."
|
||||
msgstr ""
|
||||
msgstr "Fout ! U kunt geen recursief menu maken."
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
msgid "7 Days"
|
||||
msgstr ""
|
||||
msgstr "7 Dagen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:ir.ui.menu,name:crm_fundraising.menu_crm_fundraising_stage_act
|
||||
msgid "Stages"
|
||||
msgstr ""
|
||||
msgstr "Fasen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
msgstr "Augustus"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising,priority:0
|
||||
msgid "Normal"
|
||||
msgstr ""
|
||||
msgstr "Normaal"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Global CC"
|
||||
msgstr ""
|
||||
msgstr "Globale CC"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
#: model:ir.actions.act_window,name:crm_fundraising.crm_case_category_act_fund_all1
|
||||
msgid "Funds"
|
||||
msgstr ""
|
||||
msgstr "Fondsen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
msgstr "Juni"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,partner_phone:0
|
||||
msgid "Phone"
|
||||
msgstr ""
|
||||
msgstr "Telefoon"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
#: field:crm.fundraising.report,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
msgstr "Gebruiker"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:crm.case.resource.type,name:crm_fundraising.type_fund2
|
||||
msgid "Cheque"
|
||||
msgstr ""
|
||||
msgstr "Cheque"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
msgstr "Actief"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
msgstr "November"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
msgstr "Uitgebreide filters..."
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:ir.ui.menu,name:crm_fundraising.menu_crm_fundraising_resource_act
|
||||
msgid "Resource Type"
|
||||
msgstr ""
|
||||
msgstr "Betalingsvorm"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
msgstr "Zoeken"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
msgstr "Oktober"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
msgstr "Januari"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
msgid "#Fundraising"
|
||||
msgstr ""
|
||||
msgstr "# Fondsen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: help:crm.fundraising,email_from:0
|
||||
msgid "These people will receive email."
|
||||
msgstr ""
|
||||
msgstr "Deze personen ontvangen email."
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
msgstr "Datum"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:crm.case.categ,name:crm_fundraising.categ_fund3
|
||||
msgid "Healthcare"
|
||||
msgstr ""
|
||||
msgstr "Gezondheidszorg"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
msgstr "Historie"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Attachments"
|
||||
msgstr ""
|
||||
msgstr "Bijlagen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Misc"
|
||||
msgstr ""
|
||||
msgstr "Overig"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
|
@ -546,24 +553,24 @@ msgstr ""
|
|||
#: view:crm.fundraising.report:0
|
||||
#: field:crm.fundraising.report,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
msgstr "Status"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.fundraising.report:0
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
msgstr "Klaar"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Communication"
|
||||
msgstr ""
|
||||
msgstr "Communicatie"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.fundraising.report:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "Annuleren"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
|
@ -571,24 +578,25 @@ msgstr ""
|
|||
#: view:crm.fundraising.report:0
|
||||
#: selection:crm.fundraising.report,state:0
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
msgstr "Open"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"De objectnaam moet beginnen met x_ en mag geen speciale tekens bevatten!"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
#: field:crm.fundraising,user_id:0
|
||||
msgid "Responsible"
|
||||
msgstr ""
|
||||
msgstr "Verantwoordelijke"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
msgstr "Actueel"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: help:crm.fundraising,section_id:0
|
||||
|
@ -596,57 +604,59 @@ msgid ""
|
|||
"Sales team to which Case belongs to. Define Responsible user and Email "
|
||||
"account for mail gateway."
|
||||
msgstr ""
|
||||
"Verkoopteam waaraan dit fonds is toegewezen. Definieer de verantwoordelijke "
|
||||
"gebruiker en Email account voor de mail gateway."
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
msgstr "Details"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:ir.model,name:crm_fundraising.model_crm_fundraising_report
|
||||
msgid "CRM Fundraising Report"
|
||||
msgstr ""
|
||||
msgstr "CRM Fondsenwerving overzicht"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,type_id:0
|
||||
msgid "Fundraising Type"
|
||||
msgstr ""
|
||||
msgstr "Betalingsvorm"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
#: field:crm.fundraising.report,amount_revenue_prob:0
|
||||
msgid "Est. Rev*Prob."
|
||||
msgstr ""
|
||||
msgstr "Verw. omzet*kans"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,description:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
msgstr "Omschrijving"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
msgstr "Mei"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,probability:0
|
||||
msgid "Probability (%)"
|
||||
msgstr ""
|
||||
msgstr "Waarschijnlijkheid (%)"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,partner_name:0
|
||||
msgid "Employee's Name"
|
||||
msgstr ""
|
||||
msgstr "Relatienaam"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
msgid "This Month"
|
||||
msgstr ""
|
||||
msgstr "Deze maand"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:ir.actions.act_window,name:crm_fundraising.crm_fundraising_resource_act
|
||||
msgid "Fundraising Resource Type"
|
||||
msgstr ""
|
||||
msgstr "Fondsenwerving betalingsvorm"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: help:crm.fundraising,state:0
|
||||
|
@ -659,86 +669,94 @@ msgid ""
|
|||
" \n"
|
||||
"If the case needs to be reviewed then the state is set to 'Pending'."
|
||||
msgstr ""
|
||||
"De status wordt op 'Concept' gezet als de aanvraag wordt gemaakt. "
|
||||
" \n"
|
||||
"Als de aanvraag in behandeling is, wordt de status op 'Open' gezet. "
|
||||
" \n"
|
||||
"Als de aanvraag klaar is, gaat de status naar 'Gereed'. "
|
||||
" \n"
|
||||
"Als de aanvraag moet worden onderzocht, wordt de status op 'Behandeling' "
|
||||
"gezet."
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
msgstr "Februari"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
#: field:crm.fundraising,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
msgstr "Naam"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Communication history"
|
||||
msgstr ""
|
||||
msgstr "Communicatiegeschiedenis"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:crm.case.resource.type,name:crm_fundraising.type_fund1
|
||||
msgid "Cash"
|
||||
msgstr ""
|
||||
msgstr "Contant"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Funds by Categories"
|
||||
msgstr ""
|
||||
msgstr "Fondsen op categorie"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising.report,month:0
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
msgstr "April"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "References"
|
||||
msgstr ""
|
||||
msgstr "Verwijzingen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: model:crm.case.resource.type,name:crm_fundraising.type_fund4
|
||||
msgid "Demand Draft"
|
||||
msgstr ""
|
||||
msgstr "Incasso"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
msgstr "ID"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
msgid "Search Funds"
|
||||
msgstr ""
|
||||
msgstr "Zoek fondsen"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: selection:crm.fundraising,priority:0
|
||||
msgid "High"
|
||||
msgstr ""
|
||||
msgstr "Hoog"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising:0
|
||||
#: field:crm.fundraising,section_id:0
|
||||
msgid "Sales Team"
|
||||
msgstr ""
|
||||
msgstr "Verkoopteam"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising.report,create_date:0
|
||||
msgid "Create Date"
|
||||
msgstr ""
|
||||
msgstr "Aanmaakdatum"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,date_action_last:0
|
||||
msgid "Last Action"
|
||||
msgstr ""
|
||||
msgstr "Laatste actie"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: view:crm.fundraising.report:0
|
||||
#: field:crm.fundraising.report,name:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
msgstr "Jaar"
|
||||
|
||||
#. module: crm_fundraising
|
||||
#: field:crm.fundraising,duration:0
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
msgstr "Duur"
|
||||
|
|
|
@ -8,124 +8,124 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-08-20 13:01+0000\n"
|
||||
"PO-Revision-Date: 2010-09-10 09:13+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2010-10-11 08:22+0000\n"
|
||||
"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-09-29 05:18+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-12 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk.report,nbr:0
|
||||
msgid "# of Cases"
|
||||
msgstr ""
|
||||
msgstr "# Aanvragen"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
msgstr "Groepeer op.."
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Ongeldige modelnaam in de definitie van de actie."
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Today"
|
||||
msgstr ""
|
||||
msgstr "Vandaag"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "March"
|
||||
msgstr ""
|
||||
msgstr "Maart"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk.report,delay_close:0
|
||||
msgid "Delay to close"
|
||||
msgstr ""
|
||||
msgstr "Vertraging tot sluiting"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,company_id:0
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
msgstr "Bedrijf"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,email_cc:0
|
||||
msgid "Watchers Emails"
|
||||
msgstr ""
|
||||
msgstr "Emails toeschouwers"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "This Year"
|
||||
msgstr ""
|
||||
msgstr "Dit jaar"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Cases"
|
||||
msgstr ""
|
||||
msgstr "Aanvragen"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,priority:0
|
||||
#: selection:crm.helpdesk.report,priority:0
|
||||
msgid "Highest"
|
||||
msgstr ""
|
||||
msgstr "Hoogste"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk.report,day:0
|
||||
msgid "Day"
|
||||
msgstr ""
|
||||
msgstr "Dag"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
msgstr "Notities"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
msgstr "Berichten"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,state:0
|
||||
#: selection:crm.helpdesk.report,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
msgstr "Geannuleerd"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,partner_address_id:0
|
||||
msgid "Partner Contact"
|
||||
msgstr ""
|
||||
msgstr "Contactpersoon relatie"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.ui.menu,name:crm_helpdesk.menu_report_crm_helpdesks_tree
|
||||
msgid "Helpdesk Analysis"
|
||||
msgstr ""
|
||||
msgstr "Helpdesk Analyse"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,ref:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
msgstr "Verwijzing"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,date_action_next:0
|
||||
msgid "Next Action"
|
||||
msgstr ""
|
||||
msgstr "Volgende actie"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Helpdesk Supports"
|
||||
msgstr ""
|
||||
msgstr "Helpdesk ondersteuning"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Extra Info"
|
||||
msgstr ""
|
||||
msgstr "Extra info"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
|
@ -133,30 +133,30 @@ msgstr ""
|
|||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
msgstr "Relatie"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,date_closed:0
|
||||
#: selection:crm.helpdesk,state:0
|
||||
#: selection:crm.helpdesk.report,state:0
|
||||
msgid "Closed"
|
||||
msgstr ""
|
||||
msgstr "Gesloten"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Estimates"
|
||||
msgstr ""
|
||||
msgstr "Schattingen"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,section_id:0
|
||||
msgid "Section"
|
||||
msgstr ""
|
||||
msgstr "Afdeling"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
msgstr "Ongeldige XML voor weergave opbouw!"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
|
@ -164,60 +164,60 @@ msgstr ""
|
|||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,priority:0
|
||||
msgid "Priority"
|
||||
msgstr ""
|
||||
msgstr "Prioriteit"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Send New Email"
|
||||
msgstr ""
|
||||
msgstr "Verstuur nieuwe email"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Won"
|
||||
msgstr ""
|
||||
msgstr "Gewonnen"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Reply"
|
||||
msgstr ""
|
||||
msgstr "Beantwoorden"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
|
||||
msgid "Helpdesk report after Sales Services"
|
||||
msgstr ""
|
||||
msgstr "Helpdesk overzicht Nazorg"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,email_from:0
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
msgstr "Email"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,canal_id:0
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
msgstr "Kanaal"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,priority:0
|
||||
#: selection:crm.helpdesk.report,priority:0
|
||||
msgid "Lowest"
|
||||
msgstr ""
|
||||
msgstr "Laagste"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,create_date:0
|
||||
msgid "Creation Date"
|
||||
msgstr ""
|
||||
msgstr "Aanmaakdatum"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Reset to Draft"
|
||||
msgstr ""
|
||||
msgstr "Terugzetten naar Concept"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: selection:crm.helpdesk,state:0
|
||||
#: selection:crm.helpdesk.report,state:0
|
||||
msgid "Pending"
|
||||
msgstr ""
|
||||
msgstr "Wacht"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
|
@ -225,37 +225,37 @@ msgstr ""
|
|||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,date_deadline:0
|
||||
msgid "Deadline"
|
||||
msgstr ""
|
||||
msgstr "Uiterste datum"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "July"
|
||||
msgstr ""
|
||||
msgstr "July"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action
|
||||
msgid "Helpdesk Categories"
|
||||
msgstr ""
|
||||
msgstr "Helpdesk categorieën"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act
|
||||
msgid "Categories"
|
||||
msgstr ""
|
||||
msgstr "Categorieën"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "History Information"
|
||||
msgstr ""
|
||||
msgstr "Historie informatie"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Dates"
|
||||
msgstr ""
|
||||
msgstr "Data"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "#Helpdesk"
|
||||
msgstr ""
|
||||
msgstr "#Helpdesk"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: help:crm.helpdesk,email_cc:0
|
||||
|
@ -264,187 +264,190 @@ msgid ""
|
|||
"outbound emails for this record before being sent. Separate multiple email "
|
||||
"addresses with a comma"
|
||||
msgstr ""
|
||||
"Deze email addressen worden toegevoegd aan het CC veld van alle inkomende en "
|
||||
"uitgaande emails van dit record voordat het wordt verstuurd. Meerdere namen "
|
||||
"scheidt u met een komma (,)."
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
msgstr "September"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "December"
|
||||
msgstr ""
|
||||
msgstr "December"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,month:0
|
||||
msgid "Month"
|
||||
msgstr ""
|
||||
msgstr "Maand"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Escalate"
|
||||
msgstr ""
|
||||
msgstr "Escaleren"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,write_date:0
|
||||
msgid "Update Date"
|
||||
msgstr ""
|
||||
msgstr "Wijzigingsdatum"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Query"
|
||||
msgstr ""
|
||||
msgstr "Aanvraag"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,ref2:0
|
||||
msgid "Reference 2"
|
||||
msgstr ""
|
||||
msgstr "Referentie 2"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,categ_id:0
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
msgstr "Categorie"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Helpdesk Support"
|
||||
msgstr ""
|
||||
msgstr "Helpdesk ondersteuning"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,planned_cost:0
|
||||
msgid "Planned Costs"
|
||||
msgstr ""
|
||||
msgstr "Verwachte kosten"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.module.module,description:crm_helpdesk.module_meta_information
|
||||
msgid "Helpdesk Management"
|
||||
msgstr ""
|
||||
msgstr "Helpdesk management"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Search Helpdesk"
|
||||
msgstr ""
|
||||
msgstr "Zoek helpdesk"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,state:0
|
||||
#: selection:crm.helpdesk.report,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
msgstr "Concept"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,priority:0
|
||||
#: selection:crm.helpdesk.report,priority:0
|
||||
msgid "Low"
|
||||
msgstr ""
|
||||
msgstr "Laag"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: constraint:ir.ui.menu:0
|
||||
msgid "Error ! You can not create recursive Menu."
|
||||
msgstr ""
|
||||
msgstr "Fout ! U kunt geen recursief menu maken."
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "7 Days"
|
||||
msgstr ""
|
||||
msgstr "7 Dagen"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "August"
|
||||
msgstr ""
|
||||
msgstr "Augustus"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,priority:0
|
||||
#: selection:crm.helpdesk.report,priority:0
|
||||
msgid "Normal"
|
||||
msgstr ""
|
||||
msgstr "Normaal"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Global CC"
|
||||
msgstr ""
|
||||
msgstr "Globale CC"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
msgstr "Juni"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,planned_revenue:0
|
||||
msgid "Planned Revenue"
|
||||
msgstr ""
|
||||
msgstr "Verwachte omzet"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
msgstr "Gebruiker"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
msgstr "Actief"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.module.module,shortdesc:crm_helpdesk.module_meta_information
|
||||
msgid "CRM Helpdesk"
|
||||
msgstr ""
|
||||
msgstr "CRM Helpdesk"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Extended Filters..."
|
||||
msgstr ""
|
||||
msgstr "Uitgebreide filters..."
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111
|
||||
msgid "Helpdesk Requests"
|
||||
msgstr ""
|
||||
msgstr "Helpdesk aanvragen"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
msgstr "Zoeken"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "October"
|
||||
msgstr ""
|
||||
msgstr "Oktober"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "January"
|
||||
msgstr ""
|
||||
msgstr "Januari"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: help:crm.helpdesk,email_from:0
|
||||
msgid "These people will receive email."
|
||||
msgstr ""
|
||||
msgstr "Deze personen ontvangen email."
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: field:crm.helpdesk,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
msgstr "Datum"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "November"
|
||||
msgstr ""
|
||||
msgstr "November"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
msgstr "Historie"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Attachments"
|
||||
msgstr ""
|
||||
msgstr "Bijlagen"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Misc"
|
||||
msgstr ""
|
||||
msgstr "Overig"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
|
@ -452,17 +455,17 @@ msgstr ""
|
|||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
msgstr "Status"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
msgstr "Algemeen"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Send Reminder"
|
||||
msgstr ""
|
||||
msgstr "Verstuur herinnering"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: help:crm.helpdesk,section_id:0
|
||||
|
@ -470,49 +473,52 @@ msgid ""
|
|||
"Sales team to which Case belongs to. Define "
|
||||
"Responsible user and Email account for mail gateway."
|
||||
msgstr ""
|
||||
"Verkoopteam waaraan aanvraag is toegewezen. Definieer Verantwoordelijke "
|
||||
"gebruiker en Email account voor mail gateway."
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
msgstr "Klaar"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Communication"
|
||||
msgstr ""
|
||||
msgstr "Communicatie"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "Annuleren"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
msgstr "Sluiten"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: selection:crm.helpdesk,state:0
|
||||
#: selection:crm.helpdesk.report,state:0
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
msgstr "Open"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Helpdesk Support Tree"
|
||||
msgstr ""
|
||||
msgstr "Helpdesk aanvragen"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Categorization"
|
||||
msgstr ""
|
||||
msgstr "Classificatie"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"De objectnaam moet beginnen met x_ en mag geen speciale tekens bevatten!"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
|
@ -520,38 +526,38 @@ msgstr ""
|
|||
#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk
|
||||
#: model:ir.ui.menu,name:crm_helpdesk.menu_config_helpdesk
|
||||
msgid "Helpdesk"
|
||||
msgstr ""
|
||||
msgstr "Helpdesk"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: field:crm.helpdesk,user_id:0
|
||||
msgid "Responsible"
|
||||
msgstr ""
|
||||
msgstr "Verantwoordelijke"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
msgstr "Actueel"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
msgstr "Details"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,description:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
msgstr "Omschrijving"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "May"
|
||||
msgstr ""
|
||||
msgstr "Mei"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,probability:0
|
||||
msgid "Probability (%)"
|
||||
msgstr ""
|
||||
msgstr "Waarschijnlijkheid (%)"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: help:crm.helpdesk,canal_id:0
|
||||
|
@ -559,11 +565,13 @@ msgid ""
|
|||
"The channels represent the different communication modes available with the "
|
||||
"customer."
|
||||
msgstr ""
|
||||
"De kanalen geven de verschillende beschikbare communicatievormen met de "
|
||||
"klant weer."
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "This Month"
|
||||
msgstr ""
|
||||
msgstr "Deze maand"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: help:crm.helpdesk,state:0
|
||||
|
@ -576,76 +584,84 @@ msgid ""
|
|||
" \n"
|
||||
"If the case needs to be reviewed then the state is set to 'Pending'."
|
||||
msgstr ""
|
||||
"De status wordt op 'Concept' gezet als de aanvraag wordt gemaakt. "
|
||||
" \n"
|
||||
"Als de aanvraag in behandeling is, wordt de status op 'Open' gezet. "
|
||||
" \n"
|
||||
"Als de aanvraag klaar is, gaat de status naar 'Gereed'. "
|
||||
" \n"
|
||||
"Als de aanvraag moet worden onderzocht, wordt de status op 'Behandeling' "
|
||||
"gezet."
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "February"
|
||||
msgstr ""
|
||||
msgstr "Februari"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
msgstr "Naam"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
msgid "Lost"
|
||||
msgstr ""
|
||||
msgstr "Verloren"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "Communication history"
|
||||
msgstr ""
|
||||
msgstr "Communicatiegeschiedenis"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
|
||||
msgid "Helpdesk and Support"
|
||||
msgstr ""
|
||||
msgstr "Helpdesk en ondersteuning"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk.report,month:0
|
||||
msgid "April"
|
||||
msgstr ""
|
||||
msgstr "April"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
msgid "References"
|
||||
msgstr ""
|
||||
msgstr "Verwijzingen"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
msgstr "ID"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: selection:crm.helpdesk,priority:0
|
||||
#: selection:crm.helpdesk.report,priority:0
|
||||
msgid "High"
|
||||
msgstr ""
|
||||
msgstr "Hoog"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk:0
|
||||
#: field:crm.helpdesk,section_id:0
|
||||
msgid "Sales Team"
|
||||
msgstr ""
|
||||
msgstr "Verkoopteam"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk.report,create_date:0
|
||||
msgid "Create Date"
|
||||
msgstr ""
|
||||
msgstr "Aanmaakdatum"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,date_action_last:0
|
||||
msgid "Last Action"
|
||||
msgstr ""
|
||||
msgstr "Laatste actie"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: view:crm.helpdesk.report:0
|
||||
#: field:crm.helpdesk.report,name:0
|
||||
msgid "Year"
|
||||
msgstr ""
|
||||
msgstr "Jaar"
|
||||
|
||||
#. module: crm_helpdesk
|
||||
#: field:crm.helpdesk,duration:0
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
msgstr "Duur"
|
||||
|
|
|
@ -8,13 +8,13 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-08-20 05:24+0000\n"
|
||||
"PO-Revision-Date: 2010-10-10 10:48+0000\n"
|
||||
"Last-Translator: Ferdinand @ ChriCar <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-10-11 07:17+0000\n"
|
||||
"Last-Translator: Ferdinand-chricar <Unknown>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-11 04:45+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-10-12 04:51+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: decimal_precision
|
||||
|
|
|
@ -175,22 +175,6 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_picking_withcarrier_delivery_form" model="ir.ui.view">
|
||||
<field name="name">delivery.stock.picking_withcarrier.delivery.form.view</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_delivery_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="address_id" position="after">
|
||||
<field name="carrier_id"/>
|
||||
<field name="carrier_tracking_ref" groups="base.group_extended"/>
|
||||
<field name="number_of_packages" groups="base.group_extended"/>
|
||||
<field name="weight"/>
|
||||
<field name="weight_net"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree4" model="ir.actions.act_window">
|
||||
<field name="name">Picking to be invoiced</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
|
@ -242,19 +226,6 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_picking_withcarrier_delivery_move_form" model="ir.ui.view">
|
||||
<field name="name">delivery.stock.picking_withcarrier.delivery.move.form.view</field>
|
||||
<field name="type">form</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_delivery_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/notebook/page/field[@name='move_lines']/tree/field[@name='product_uom']" position="after">
|
||||
<field name="weight"/>
|
||||
<field name="weight_net"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_move_withweight_form" model="ir.ui.view">
|
||||
<field name="name">stock.move.form.weight</field>
|
||||
<field name="type">form</field>
|
||||
|
@ -287,7 +258,7 @@
|
|||
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/notebook/page[@string='Sales Order']/group[1]/button[@name='button_dummy']" position="after">
|
||||
<button name="%(action_delivery_cost)d" states="draft" string="Delivery Costs" type="action" icon="gtk-add" context="{'order_id':id}"/>
|
||||
<button name="%(action_delivery_cost)d" states="draft" string="Delivery Costs" type="action" icon="gtk-add" context="{'order_id':active_id}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
invoice_state: none
|
||||
move_lines:
|
||||
- company_id: base.main_company
|
||||
date_planned: '2010-05-11 15:18:57'
|
||||
location_dest_id: stock.stock_location_customers
|
||||
location_id: stock.stock_location_stock
|
||||
name: HP CD writers
|
||||
|
|
|
@ -4,27 +4,27 @@
|
|||
|
||||
<!-- Delivery Sale Order -->
|
||||
|
||||
<record id="view_make_delivery_wizard" model="ir.ui.view">
|
||||
<record id="view_make_delivery_wizard" model="ir.ui.view">
|
||||
<field name="name">Delivery Costs</field>
|
||||
<field name="model">delivery.sale.order</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create Deliveries">
|
||||
<separator colspan="4" string="Delivery Method" />
|
||||
<field name="carrier_id" widget="selection"/>
|
||||
<newline/>
|
||||
<separator colspan="4"/>
|
||||
<group col="2" colspan="4">
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="_Cancel" />
|
||||
<button name="delivery_set" string="_Apply"
|
||||
colspan="1" type="object" icon="gtk-apply" />
|
||||
</group>
|
||||
<separator colspan="4" string="Delivery Method" />
|
||||
<field name="carrier_id" widget="selection"/>
|
||||
<newline/>
|
||||
<separator colspan="4"/>
|
||||
<group col="2" colspan="4">
|
||||
<button icon='gtk-cancel' special="cancel"
|
||||
string="_Cancel" />
|
||||
<button name="delivery_set" string="_Apply"
|
||||
colspan="1" type="object" icon="gtk-apply" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_delivery_cost" model="ir.actions.act_window">
|
||||
<record id="action_delivery_cost" model="ir.actions.act_window">
|
||||
<field name="name">Delivery Costs</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">delivery.sale.order</field>
|
||||
|
@ -34,5 +34,5 @@
|
|||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -88,10 +88,10 @@ class event_event(osv.osv):
|
|||
#send reminder that will confirm the event for all the people that were already confirmed
|
||||
reg_ids = register_pool.search(cr, uid, [
|
||||
('event_id', '=', event.id),
|
||||
('state', 'not in', ['draft', 'cancel'])])
|
||||
('state', 'not in', ['draft', 'cancel'])], context=context)
|
||||
register_pool.mail_user_confirm(cr, uid, reg_ids)
|
||||
|
||||
return self.write(cr, uid, ids, {'state': 'confirm'})
|
||||
return self.write(cr, uid, ids, {'state': 'confirm'}, context=context)
|
||||
|
||||
def button_confirm(self, cr, uid, ids, context=None):
|
||||
"""This Function Confirm Event.
|
||||
|
@ -114,7 +114,7 @@ class event_event(osv.osv):
|
|||
unconfirmed_ids.append(event.id)
|
||||
if unconfirmed_ids:
|
||||
view_id = data_pool._get_id(cr, uid, 'event', 'view_event_confirm')
|
||||
view_data = data_pool.browse(cr, uid, view_id)
|
||||
view_data = data_pool.browse(cr, uid, view_id, context=context)
|
||||
view_id = view_data.res_id
|
||||
context['event_ids'] = unconfirmed_ids
|
||||
return {
|
||||
|
@ -141,7 +141,7 @@ class event_event(osv.osv):
|
|||
"""
|
||||
register_pool = self.pool.get('event.registration')
|
||||
res = {}
|
||||
for event in self.browse(cr, uid, ids, context):
|
||||
for event in self.browse(cr, uid, ids, context=context):
|
||||
res[event.id] = {}
|
||||
for field in fields:
|
||||
res[event.id][field] = False
|
||||
|
@ -153,12 +153,17 @@ class event_event(osv.osv):
|
|||
|
||||
reg_ids = register_pool.search(cr, uid, [
|
||||
('event_id', '=', event.id),
|
||||
('state', 'in', state)])
|
||||
('state', 'in', state)], context=context)
|
||||
|
||||
number = 0.0
|
||||
if reg_ids:
|
||||
cr.execute('SELECT SUM(nb_register) FROM event_registration WHERE id IN %s', (tuple(reg_ids),))
|
||||
number = cr.fetchone()
|
||||
|
||||
if 'register_current' in fields:
|
||||
res[event.id]['register_current'] = len(reg_ids)
|
||||
res[event.id]['register_current'] = number and number[0] or 0.0
|
||||
if 'register_prospect' in fields:
|
||||
res[event.id]['register_prospect'] = len(reg_ids)
|
||||
res[event.id]['register_prospect'] = number and number[0] or 0.0
|
||||
|
||||
return res
|
||||
|
||||
|
@ -189,8 +194,8 @@ class event_event(osv.osv):
|
|||
register_values['description'] = vals['mail_confirm']
|
||||
|
||||
if register_values:
|
||||
reg_ids = register_pool.search(cr, uid, [('event_id', '=', event.id)])
|
||||
register_pool.write(cr, uid, reg_ids, register_values)
|
||||
reg_ids = register_pool.search(cr, uid, [('event_id', '=', event.id)], context=context)
|
||||
register_pool.write(cr, uid, reg_ids, register_values, context=context)
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
|
@ -226,15 +231,14 @@ class event_event(osv.osv):
|
|||
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', readonly=True, states={'draft': [('readonly', False)]}, help="Pricelist version for current event."),
|
||||
'unit_price': fields.related('product_id', 'list_price', type='float', string='Registration Cost', readonly=True, states={'draft':[('readonly',False)]}, help="This will be the default price used as registration cost when invoicing this event. Note that you can specify for each registration a specific amount if you want to", digits_compute=dp.get_precision('Sale Price')),
|
||||
'main_speaker_id': fields.many2one('res.partner','Main Speaker', readonly=False, states={'done': [('readonly', True)]}, help="Speaker who are giving speech on event."),
|
||||
'speaker_ids':fields.many2many('res.partner', 'event_speaker_rel', 'speaker_id', 'partner_id', 'Other Speakers', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'speaker_ids': fields.many2many('res.partner', 'event_speaker_rel', 'speaker_id', 'partner_id', 'Other Speakers', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'address_id': fields.many2one('res.partner.address','Location Address', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'speaker_confirmed': fields.boolean('Speaker Confirmed', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'country_id': fields.related('address_id', 'country_id',
|
||||
type='many2one', relation='res.country', string='Country', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'language': fields.char('Language',size=64, readonly=False, states={'done': [('readonly', True)]}),
|
||||
'note': fields.text('Description', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True, change_default=True, readonly=False, states={'done': [('readonly', True)]}),
|
||||
|
||||
'company_id': fields.many2one('res.company', 'Company', required=False, change_default=True, readonly=False, states={'done': [('readonly', True)]}),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
@ -250,7 +254,7 @@ class event_event(osv.osv):
|
|||
level = 100
|
||||
|
||||
while len(ids):
|
||||
cr.execute('select distinct parent_id from event_event where id IN %s', (tuple(ids),))
|
||||
cr.execute('SELECT DISTINCT parent_id FROM event_event WHERE id IN %s', (tuple(ids),))
|
||||
ids = filter(None, map(lambda x: x[0], cr.fetchall()))
|
||||
if not level:
|
||||
return False
|
||||
|
@ -359,7 +363,7 @@ class event_registration(osv.osv):
|
|||
'comment': "",
|
||||
'date_invoice': context.get('date_inv', False)
|
||||
})
|
||||
inv_id = inv_pool.create(cr, uid, val_invoice['value'])
|
||||
inv_id = inv_pool.create(cr, uid, val_invoice['value'], context=context)
|
||||
inv_pool.button_compute(cr, uid, [inv_id])
|
||||
self.history(cr, uid, [reg], _('Invoiced'))
|
||||
return inv_id
|
||||
|
@ -460,12 +464,12 @@ class event_registration(osv.osv):
|
|||
for registration in self.browse(cr, uid, ids, context=context):
|
||||
total_confirmed = registration.event_id.register_current + registration.nb_register
|
||||
if total_confirmed <= registration.event_id.register_max or registration.event_id.register_max == 0:
|
||||
self.do_open(cr, uid, [registration.id], context)
|
||||
self.do_open(cr, uid, [registration.id], context=context)
|
||||
else:
|
||||
unconfirmed_ids.append(registration.id)
|
||||
if unconfirmed_ids:
|
||||
view_id = data_pool._get_id(cr, uid, 'event', 'view_event_confirm_registration')
|
||||
view_data = data_pool.browse(cr, uid, view_id)
|
||||
view_data = data_pool.browse(cr, uid, view_id, context=context)
|
||||
view_id = view_data.res_id
|
||||
context['registration_ids'] = unconfirmed_ids
|
||||
return {
|
||||
|
@ -493,10 +497,10 @@ class event_registration(osv.osv):
|
|||
if registration.tobe_invoiced and not registration.invoice_id:
|
||||
unclosed_ids.append(registration.id)
|
||||
else:
|
||||
self.do_close(cr, uid, [registration.id])
|
||||
self.do_close(cr, uid, [registration.id], context=context)
|
||||
if unclosed_ids:
|
||||
view_id = data_pool._get_id(cr, uid, 'event', 'view_event_make_invoice')
|
||||
view_data = data_pool.browse(cr, uid, view_id)
|
||||
view_data = data_pool.browse(cr, uid, view_id, context=context)
|
||||
view_id = view_data.res_id
|
||||
context['active_ids'] = unclosed_ids
|
||||
return {
|
||||
|
@ -552,10 +556,10 @@ class event_registration(osv.osv):
|
|||
body = regestration.event_id.mail_confirm
|
||||
if subject or body:
|
||||
tools.email_send(src, email_to, subject, body, email_cc = email_cc, openobject_id = regestration.id)
|
||||
self.history(cr, uid, [regestration], subject, history=True, \
|
||||
email=email_to, details=body, \
|
||||
subject=subject, email_from=src, \
|
||||
email_cc=', '.join(email_cc))
|
||||
self.history(cr, uid, [regestration], subject, history = True, \
|
||||
email = email_to, details = body, \
|
||||
subject = subject, email_from = src, \
|
||||
email_cc = ', '.join(email_cc))
|
||||
|
||||
return True
|
||||
|
||||
|
@ -612,12 +616,17 @@ class event_registration(osv.osv):
|
|||
res_obj = self.pool.get('res.partner')
|
||||
|
||||
data_event = event_obj.browse(cr, uid, event_id)
|
||||
res = {'value': {'unit_price': False, 'event_product': False, 'user_id': False,
|
||||
'date': data_event.date_begin, 'date_deadline': data_event.date_end, 'description': data_event.note, 'name': data_event.name,
|
||||
'section_id': data_event.section_id and data_event.section_id.id or False,
|
||||
res = {'value': {'unit_price': False,
|
||||
'event_product': False,
|
||||
'user_id': False,
|
||||
'date': data_event.date_begin,
|
||||
'date_deadline': data_event.date_end,
|
||||
'description': data_event.note,
|
||||
'name': data_event.name,
|
||||
'section_id': data_event.section_id and data_event.section_id.id or False,
|
||||
}}
|
||||
if data_event.user_id.id:
|
||||
res['value'].update({'user_id':data_event.user_id.id})
|
||||
res['value'].update({'user_id': data_event.user_id.id})
|
||||
if data_event.product_id:
|
||||
pricelist_id = data_event.pricelist_id and data_event.pricelist_id.id or False
|
||||
if partner_invoice_id:
|
||||
|
@ -645,7 +654,7 @@ class event_registration(osv.osv):
|
|||
data['contact_id'], data['partner_invoice_id'], data['email_from'] = (False, False, False)
|
||||
if not part:
|
||||
return {'value': data}
|
||||
data['partner_invoice_id']=part
|
||||
data['partner_invoice_id'] = part
|
||||
# this calls onchange_partner_invoice_id
|
||||
d = self.onchange_partner_invoice_id(cr, uid, ids, event_id, part)
|
||||
# this updates the dictionary
|
||||
|
@ -670,8 +679,8 @@ class event_registration(osv.osv):
|
|||
@param event_id: Event ID
|
||||
@param partner_invoice_id: Partner Invoice ID
|
||||
"""
|
||||
data={}
|
||||
context={}
|
||||
data = {}
|
||||
context = {}
|
||||
event_obj = self.pool.get('event.event')
|
||||
prod_obj = self.pool.get('product.product')
|
||||
res_obj = self.pool.get('res.partner')
|
||||
|
@ -679,7 +688,7 @@ class event_registration(osv.osv):
|
|||
data['unit_price']=False
|
||||
if not event_id:
|
||||
return {'value': data}
|
||||
data_event = event_obj.browse(cr, uid, event_id)
|
||||
data_event = event_obj.browse(cr, uid, event_id, context=context)
|
||||
if data_event.product_id:
|
||||
data['event_product'] = data_event.product_id.name
|
||||
pricelist_id = data_event.pricelist_id and data_event.pricelist_id.id or False
|
||||
|
|
|
@ -86,8 +86,8 @@
|
|||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="mail_auto_registr">True</field>
|
||||
<field name="mail_auto_confirm">True</field>
|
||||
<field name="mail_registr">Thanks for registrering. We will keep you informed of the modalities.</field>
|
||||
<field name="mail_confirm">Thanks for registrering. The conference will begin at 2 PM and will be given by Mister Pinckaers.</field>
|
||||
<field name="mail_registr">Thanks for registration. We will keep you informed of the modalities.</field>
|
||||
<field name="mail_confirm">Thanks for registration. The conference will begin at 2 PM and will be given by Mr. Pinckaers.</field>
|
||||
</record>
|
||||
<function model="event.event" name="button_confirm" eval="[ref('event_2')]"/>
|
||||
<function model="event.event" name="button_done" eval="[ref('event_2')]"/>
|
||||
|
|
|
@ -76,10 +76,10 @@
|
|||
<field name="note" colspan="4" nolabel="1"/>
|
||||
<field name="state" select="1"/>
|
||||
<group col="4" colspan="2">
|
||||
<button string="Confirm Event" name="button_confirm" states="draft" type="object" icon="gtk-apply"/>
|
||||
<button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object" icon="gtk-cancel"/>
|
||||
<button string="Confirm Event" name="button_confirm" states="draft" type="object" icon="gtk-apply"/>
|
||||
<button string="Event Done" name="button_done" states="confirm" type="object" icon="gtk-jump-to"/>
|
||||
<button string="Set To Draft" name="button_draft" states="confirm,cancel,done" type="object" icon="gtk-convert"/>
|
||||
<button string="Set To Draft" name="button_draft" states="cancel" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Speakers">
|
||||
|
@ -319,8 +319,8 @@
|
|||
<field name="event_id" on_change="onchange_event(event_id, partner_invoice_id)" domain="[('state','in',('draft','confirm'))]"/>
|
||||
<field name="create_date" string="Registration Date"/>
|
||||
<field name="name"/>
|
||||
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id,event_id)" />
|
||||
<field name="user_id"/>
|
||||
<field name="partner_id" attrs="{'readonly':[('state','!=', 'draft')]}" required="1" on_change="onchange_partner_id(partner_id,event_id)" />
|
||||
<field name="user_id" attrs="{'readonly':[('state','!=', 'draft')]}" />
|
||||
<field name="tobe_invoiced"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
|
@ -15,7 +15,7 @@
|
|||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
@ -23,7 +23,7 @@ from osv import fields, osv
|
|||
import tools
|
||||
|
||||
class report_event_registration(osv.osv):
|
||||
|
||||
|
||||
_name = "report.event.registration"
|
||||
_description = "Events on registrations and Events on type"
|
||||
_auto = False
|
||||
|
@ -31,19 +31,19 @@ class report_event_registration(osv.osv):
|
|||
_columns = {
|
||||
'date': fields.date('Date', readonly=True),
|
||||
'year': fields.char('Year', size=4, readonly=True),
|
||||
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'),
|
||||
'month': fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'),
|
||||
('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'),
|
||||
('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
|
||||
'day': fields.char('Day', size=128, readonly=True),
|
||||
'event_id': fields.many2one('event.event', 'Event Related', required=True),
|
||||
'draft_state': fields.integer(' # No of draft Registration.', size=20),
|
||||
'confirm_state': fields.integer(' # No of Confirm Registration', size=20),
|
||||
'register_max': fields.integer('Maximum Registrations'),
|
||||
'nbevent': fields.integer('Number Of Events'),
|
||||
'day': fields.char('Day', size=128, readonly=True),
|
||||
'event_id': fields.many2one('event.event', 'Event Related', required=True),
|
||||
'draft_state': fields.integer(' # No of draft Registration.', size=20),
|
||||
'confirm_state': fields.integer(' # No of Confirm Registration', size=20),
|
||||
'register_max': fields.integer('Maximum Registrations'),
|
||||
'nbevent': fields.integer('Number Of Events'),
|
||||
'type': fields.many2one('event.type', 'Event Type'),
|
||||
'state': fields.selection([('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')], 'State', readonly=True, required=True),
|
||||
'user_id':fields.many2one('res.users', 'Responsible', readonly=True),
|
||||
'speaker_id':fields.many2one('res.partner', 'Speaker', readonly=True),
|
||||
'user_id': fields.many2one('res.users', 'Responsible', readonly=True),
|
||||
'speaker_id': fields.many2one('res.partner', 'Speaker', readonly=True),
|
||||
}
|
||||
_order = 'date desc'
|
||||
def init(self, cr):
|
||||
|
@ -53,32 +53,32 @@ class report_event_registration(osv.osv):
|
|||
"""
|
||||
tools.drop_view_if_exists(cr, 'report_event_registration')
|
||||
cr.execute("""
|
||||
create or replace view report_event_registration as (
|
||||
select
|
||||
e.id as id,
|
||||
c.event_id as event_id,
|
||||
e.date_begin as date,
|
||||
e.user_id as user_id,
|
||||
e.main_speaker_id as speaker_id,
|
||||
to_char(e.date_begin, 'YYYY') as year,
|
||||
to_char(e.date_begin, 'MM') as month,
|
||||
to_char(e.date_begin, 'YYYY-MM-DD') as day,
|
||||
count(t.id) as nbevent,
|
||||
t.id as type,
|
||||
(SELECT sum(c.nb_register) FROM event_registration c WHERE c.event_id=e.id and t.id=e.type and state in ('draft')) as draft_state,
|
||||
(SELECT sum(c.nb_register) FROM event_registration c WHERE c.event_id=e.id and t.id=e.type and state in ('open')) as confirm_state,
|
||||
e.register_max as register_max,
|
||||
e.state as state
|
||||
from
|
||||
CREATE OR REPLACE view report_event_registration AS (
|
||||
SELECT
|
||||
e.id AS id,
|
||||
c.event_id AS event_id,
|
||||
e.date_begin AS date,
|
||||
e.user_id AS user_id,
|
||||
e.main_speaker_id AS speaker_id,
|
||||
to_char(e.date_begin, 'YYYY') AS year,
|
||||
to_char(e.date_begin, 'MM') AS month,
|
||||
to_char(e.date_begin, 'YYYY-MM-DD') AS day,
|
||||
count(t.id) AS nbevent,
|
||||
t.id AS type,
|
||||
(SELECT SUM(c.nb_register) FROM event_registration c WHERE c.event_id=e.id AND t.id=e.type AND state IN ('draft')) AS draft_state,
|
||||
(SELECT SUM(c.nb_register) FROM event_registration c WHERE c.event_id=e.id AND t.id=e.type AND state IN ('open')) AS confirm_state,
|
||||
e.register_max AS register_max,
|
||||
e.state AS state
|
||||
FROM
|
||||
event_event e
|
||||
inner join
|
||||
event_registration c on (e.id=c.event_id)
|
||||
inner join
|
||||
event_type t on (e.type=t.id)
|
||||
group by
|
||||
INNER JOIN
|
||||
event_registration c ON (e.id=c.event_id)
|
||||
INNER JOIN
|
||||
event_type t ON (e.type=t.id)
|
||||
GROUP BY
|
||||
to_char(e.date_begin, 'YYYY'),
|
||||
to_char(e.date_begin, 'MM'),
|
||||
t.id, e.id, e.date_begin,e.main_speaker_id,
|
||||
t.id, e.id, e.date_begin, e.main_speaker_id,
|
||||
e.register_max, e.type, e.state, c.event_id, e.user_id,
|
||||
to_char(e.date_begin, 'YYYY-MM-DD')
|
||||
)""")
|
||||
|
|
|
@ -40,6 +40,8 @@ class event_confirm_registration(osv.osv_memory):
|
|||
"""
|
||||
This function gets default values
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
registration_pool = self.pool.get('event.registration')
|
||||
registration_ids = context.get('registration_ids', [])
|
||||
res = super(event_confirm_registration, self).default_get(cr, uid, fields, context=context)
|
||||
|
@ -56,7 +58,9 @@ class event_confirm_registration(osv.osv_memory):
|
|||
res.update({'msg': msg})
|
||||
return res
|
||||
|
||||
def confirm(self, cr, uid, ids, context):
|
||||
def confirm(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
registration_pool = self.pool.get('event.registration')
|
||||
registration_ids = context.get('registration_ids', [])
|
||||
registration_pool.do_open(cr, uid, registration_ids, context=context)
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
|
||||
|
@ -29,7 +30,7 @@ class event_make_invoice(osv.osv_memory):
|
|||
_description = "Event Make Invoice"
|
||||
_columns = {
|
||||
'grouped': fields.boolean('Group the invoices'),
|
||||
'invoice_date':fields.date('Invoice Date'),
|
||||
'invoice_date': fields.date('Invoice Date'),
|
||||
}
|
||||
|
||||
def view_init(self, cr, uid, fields, context=None):
|
||||
|
@ -61,7 +62,7 @@ class event_make_invoice(osv.osv_memory):
|
|||
_("Registration doesn't have any partner to invoice."))
|
||||
|
||||
def default_get(self, cr, uid, fields_list, context=None):
|
||||
return super(event_make_invoice, self).default_get(cr, uid, fields_list, context)
|
||||
return super(event_make_invoice, self).default_get(cr, uid, fields_list, context=context)
|
||||
|
||||
def make_invoice(self, cr, uid, ids, context=None):
|
||||
reg_obj = self.pool.get('event.registration')
|
||||
|
@ -70,7 +71,7 @@ class event_make_invoice(osv.osv_memory):
|
|||
if context is None:
|
||||
context = {}
|
||||
|
||||
for data in self.browse(cr, uid, ids):
|
||||
for data in self.browse(cr, uid, ids, context=context):
|
||||
res = reg_obj.action_invoice_create(cr, uid, context.get(('active_ids'),[]), data.grouped, date_inv = data.invoice_date)
|
||||
|
||||
form_id = mod_obj._get_id(cr, uid, 'account', 'invoice_form')
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import netsvc
|
||||
import tools
|
||||
from osv import fields, osv
|
||||
|
@ -53,7 +52,6 @@ class partner_event_registration(osv.osv_memory):
|
|||
value = {}
|
||||
res_obj = self.pool.get('res.partner')
|
||||
job_obj = self.pool.get('res.partner.job')
|
||||
event_obj = self.pool.get('event.event')
|
||||
reg_obj = self.pool.get('event.registration')
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
|
||||
|
@ -62,9 +60,9 @@ class partner_event_registration(osv.osv_memory):
|
|||
contact_id = False
|
||||
email = False
|
||||
if addr.has_key('default'):
|
||||
job_ids = job_obj.search(cr, uid, [('address_id', '=', addr['default'])])
|
||||
job_ids = job_obj.search(cr, uid, [('address_id', '=', addr['default'])], context=context)
|
||||
if job_ids:
|
||||
contact = job_obj.browse(cr, uid, job_ids[0])
|
||||
contact = job_obj.browse(cr, uid, job_ids[0], context=context)
|
||||
if contact:
|
||||
contact_id = contact.contact_id.id
|
||||
email = contact.email
|
||||
|
@ -72,14 +70,13 @@ class partner_event_registration(osv.osv_memory):
|
|||
result = mod_obj._get_id(cr, uid, 'event', 'view_registration_search')
|
||||
res = mod_obj.read(cr, uid, result, ['res_id'])
|
||||
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
# Select the view
|
||||
id2 = data_obj._get_id(cr, uid, 'event', 'view_event_registration_form')
|
||||
id3 = data_obj._get_id(cr, uid, 'event', 'view_event_registration_tree')
|
||||
id2 = mod_obj._get_id(cr, uid, 'event', 'view_event_registration_form')
|
||||
id3 = mod_obj._get_id(cr, uid, 'event', 'view_event_registration_tree')
|
||||
if id2:
|
||||
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
|
||||
id2 = mod_obj.browse(cr, uid, id2, context=context).res_id
|
||||
if id3:
|
||||
id3 = data_obj.browse(cr, uid, id3, context=context).res_id
|
||||
id3 = mod_obj.browse(cr, uid, id3, context=context).res_id
|
||||
|
||||
for current in self.browse(cr, uid, ids, context=context):
|
||||
for partner in res_obj.browse(cr, uid, record_ids, context=context):
|
||||
|
@ -105,7 +102,7 @@ class partner_event_registration(osv.osv_memory):
|
|||
'views': [(id2, 'form'), (id3, 'tree'), (False, 'calendar'), (False, 'graph')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'search_view_id': res['res_id']
|
||||
}
|
||||
}
|
||||
return value
|
||||
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
|
@ -118,7 +115,7 @@ class partner_event_registration(osv.osv_memory):
|
|||
res = []
|
||||
if not ids:
|
||||
return res
|
||||
reads = self.read(cr, uid, ids, ['event_type', 'event_id'], context)
|
||||
reads = self.read(cr, uid, ids, ['event_type', 'event_id'], context=context)
|
||||
for record in reads:
|
||||
event_id = record['event_id'][1]
|
||||
if record['event_type']:
|
||||
|
@ -135,13 +132,13 @@ class partner_event_registration(osv.osv_memory):
|
|||
context = {}
|
||||
partner_id = context.get('active_id', False)
|
||||
if event_id:
|
||||
event = event_obj.browse(cr, uid, event_id)
|
||||
event = event_obj.browse(cr, uid, event_id, context=context)
|
||||
pricelist_id = event.pricelist_id and event.pricelist_id.id or False
|
||||
if partner_id:
|
||||
partner = partner_obj.browse(cr, uid, partner_id, context=context)
|
||||
pricelist_id = pricelist_id or partner.property_product_pricelist.id
|
||||
unit_price = product_obj._product_price(cr, uid, [event.product_id.id], False, False, {'pricelist': pricelist_id})[event.product_id.id]
|
||||
|
||||
|
||||
res['value'] = {
|
||||
'event_type': event.type and event.type.id or False,
|
||||
'start_date': event.date_begin,
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
name="Human Resources"
|
||||
parent="base.dashboard"/>
|
||||
|
||||
<!-- This board view will be complete by other hr_* modules-->
|
||||
<!-- This board view will be complete by other hr_* modules-->
|
||||
<record id="board_hr_form" model="ir.ui.view">
|
||||
<field name="name">board.hr.form</field>
|
||||
<field name="model">board.board</field>
|
||||
|
|
|
@ -97,7 +97,7 @@ class hr_job(osv.osv):
|
|||
'requirements': fields.text('Requirements'),
|
||||
'department_id': fields.many2one('hr.department', 'Department'),
|
||||
'company_id': fields.many2one('res.company', 'Company'),
|
||||
'state': fields.selection([('open', 'Open'),('old', 'Old'),('recruit', 'In Recruitement')], 'State', readonly=True, required=True),
|
||||
'state': fields.selection([('open', 'In Position'),('old', 'Old'),('recruit', 'In Recruitement')], 'State', readonly=True, required=True),
|
||||
}
|
||||
_defaults = {
|
||||
'expected_employees': 1,
|
||||
|
|
|
@ -340,10 +340,10 @@
|
|||
</page>
|
||||
</notebook>
|
||||
<group col="6" colspan="4">
|
||||
<field name="state"/>
|
||||
<button name="job_recruitement" string="In Recruitement" states="open" type="object" icon="gtk-go-forward"/>
|
||||
<button name="job_open" string="Open" states="old,recruit" type="object" icon="terp-camera_test"/>
|
||||
<button name="job_old" string="Old" states="open,recruit" type="object" icon="gtk-cancel"/>
|
||||
<field name="state"/>
|
||||
<button name="job_recruitement" string="In Recruitement" states="open" type="object" icon="gtk-go-forward"/>
|
||||
<button name="job_open" string="In Position" states="old,recruit" type="object" icon="terp-camera_test"/>
|
||||
<button name="job_old" string="Mark as Old" states="open,recruit" type="object" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
|
|
|
@ -48,10 +48,6 @@ class hr_installer(osv.osv_memory):
|
|||
'hr_payroll_account': fields.boolean('Payroll Accounting',
|
||||
help="Generic Payroll system Integrated with Accountings."),
|
||||
}
|
||||
_defaults = {
|
||||
'hr_holidays': True,
|
||||
'hr_expense': True,
|
||||
}
|
||||
hr_installer()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -52,11 +52,11 @@
|
|||
<search string="Hr Attendance Search">
|
||||
<filter icon="terp-stock_align_left_24" string="My Attendances" domain="[('employee_id.user_id.id', '=', uid)]" />
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-go-today" string="Today" domain="[('name::date','=',current_date)]" />
|
||||
<filter icon="terp-go-today" string="Today" name="today" domain="[('name::date','=',current_date)]" />
|
||||
<separator orientation="vertical"/>
|
||||
<field name="employee_id" />
|
||||
<field name="name" />
|
||||
<field name="action" />
|
||||
<field name="employee_id"/>
|
||||
<field name="name"/>
|
||||
<field name="action"/>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter name="employee" string="Employee" icon="terp-personal" domain="[]" context="{'group_by':'employee_id'}"/>
|
||||
|
@ -72,7 +72,7 @@
|
|||
<field name="res_model">hr.attendance</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{"search_default_employee":1}</field>
|
||||
<field name="context">{"search_default_today":1}</field>
|
||||
<field name="search_view_id" ref="view_hr_attendance_filter" />
|
||||
<field name="help">Time Tracking functionality aims to manage employee's attendances on the basis of the actions (Sign in/Sign out) performed by them. You can also link this to an attendance machine using OpenERP's webservices features.</field>
|
||||
</record>
|
||||
|
@ -81,7 +81,7 @@
|
|||
|
||||
<menuitem id="menu_hr_attendance" name="Attendances" parent="hr.menu_hr_root" sequence="4"/>
|
||||
|
||||
<menuitem action="open_view_attendance" id="menu_open_view_attendance" parent="menu_hr_attendance" sequence="3"/>
|
||||
<menuitem action="open_view_attendance" id="menu_open_view_attendance" parent="menu_hr_attendance" sequence="20"/>
|
||||
|
||||
<record id="edit_attendance_reason" model="ir.ui.view">
|
||||
<field name="name">hr.action.reason.form</field>
|
||||
|
@ -116,7 +116,9 @@
|
|||
<field name="view_id" ref="view_attendance_reason"/>
|
||||
</record>
|
||||
|
||||
<menuitem sequence="2" id="hr.menu_open_view_attendance_reason_new_config" parent="hr.menu_hr_configuration" name="Attendances" />
|
||||
<menuitem
|
||||
sequence="2" id="hr.menu_open_view_attendance_reason_new_config" parent="hr.menu_hr_configuration" name="Attendances"
|
||||
groups="base.group_extended"/>
|
||||
<menuitem action="open_view_attendance_reason" id="menu_open_view_attendance_reason" parent="hr.menu_open_view_attendance_reason_new_config"/>
|
||||
|
||||
<record id="hr_attendance_employee" model="ir.ui.view">
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue