[MERGE] merge with same branch
bzr revid: qdp-launchpad@tinyerp.com-20100830102506-l2yuei7r3jes7tgv
This commit is contained in:
commit
becd1d8767
|
@ -60,6 +60,7 @@ module named account_voucher.
|
|||
'wizard/account_period_close_view.xml',
|
||||
'wizard/account_fiscalyear_close_state.xml',
|
||||
'wizard/account_chart_view.xml',
|
||||
'wizard/account_tax_chart_view.xml',
|
||||
'wizard/account_move_journal_view.xml',
|
||||
'wizard/account_move_line_reconcile_select_view.xml',
|
||||
'wizard/account_open_closed_fiscalyear_view.xml',
|
||||
|
@ -74,7 +75,6 @@ module named account_voucher.
|
|||
'wizard/account_journal_select_view.xml',
|
||||
'wizard/account_change_currency_view.xml',
|
||||
'wizard/account_validate_move_view.xml',
|
||||
'wizard/account_pay_invoice_view.xml',
|
||||
'wizard/account_unreconcile_view.xml',
|
||||
'wizard/account_report_general_ledger_view.xml',
|
||||
'wizard/account_invoice_state_view.xml',
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
from datetime import datetime, timedelta
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
@ -60,7 +61,7 @@ class account_payment_term(osv.osv):
|
|||
'line_ids': fields.one2many('account.payment.term.line', 'payment_id', 'Terms'),
|
||||
}
|
||||
_defaults = {
|
||||
'active': lambda *a: 1,
|
||||
'active': 1,
|
||||
}
|
||||
_order = "name"
|
||||
|
||||
|
@ -120,9 +121,9 @@ class account_payment_term_line(osv.osv):
|
|||
'payment_id': fields.many2one('account.payment.term', 'Payment Term', required=True, select=True),
|
||||
}
|
||||
_defaults = {
|
||||
'value': lambda *a: 'balance',
|
||||
'sequence': lambda *a: 5,
|
||||
'days2': lambda *a: 0,
|
||||
'value': 'balance',
|
||||
'sequence': 5,
|
||||
'days2': 0,
|
||||
}
|
||||
_order = "sequence"
|
||||
|
||||
|
@ -405,10 +406,10 @@ class account_account(osv.osv):
|
|||
}
|
||||
|
||||
_defaults = {
|
||||
'type': lambda *a : 'view',
|
||||
'reconcile': lambda *a: False,
|
||||
'active': lambda *a: True,
|
||||
'currency_mode': lambda *a: 'current',
|
||||
'type': 'view',
|
||||
'reconcile': False,
|
||||
'active': True,
|
||||
'currency_mode': 'current',
|
||||
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'account.account', context=c),
|
||||
}
|
||||
|
||||
|
@ -502,7 +503,7 @@ class account_account(osv.osv):
|
|||
default['child_parent_ids'] = False
|
||||
return super(account_account, self).copy(cr, uid, id, default, context=context)
|
||||
|
||||
def _check_moves(self, cr, uid, ids, method, context):
|
||||
def _check_moves(self, cr, uid, ids, method, context=None):
|
||||
line_obj = self.pool.get('account.move.line')
|
||||
account_ids = self.search(cr, uid, [('id', 'child_of', ids)])
|
||||
|
||||
|
@ -518,7 +519,7 @@ class account_account(osv.osv):
|
|||
raise osv.except_osv(_('Warning !'), _('You cannot remove/deactivate an account which is set as a property to any Partner.'))
|
||||
return True
|
||||
|
||||
def _check_allow_type_change(self, cr, uid, ids, new_type, context):
|
||||
def _check_allow_type_change(self, cr, uid, ids, new_type, context=None):
|
||||
group1 = ['payable', 'receivable', 'other']
|
||||
group2 = ['consolidation','view']
|
||||
line_obj = self.pool.get('account.move.line')
|
||||
|
@ -537,7 +538,7 @@ class account_account(osv.osv):
|
|||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
|
||||
if 'company_id' in vals:
|
||||
move_lines = self.pool.get('account.move.line').search(cr, uid, [('account_id', 'in', ids)])
|
||||
if move_lines:
|
||||
|
@ -548,9 +549,9 @@ class account_account(osv.osv):
|
|||
self._check_allow_type_change(cr, uid, ids, vals['type'], context=context)
|
||||
return super(account_account, self).write(cr, uid, ids, vals, context=context)
|
||||
|
||||
def unlink(self, cr, uid, ids, context={}):
|
||||
self._check_moves(cr, uid, ids, "unlink", context)
|
||||
return super(account_account, self).unlink(cr, uid, ids, context)
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
self._check_moves(cr, uid, ids, "unlink", context=context)
|
||||
return super(account_account, self).unlink(cr, uid, ids, context=context)
|
||||
|
||||
account_account()
|
||||
|
||||
|
@ -562,6 +563,7 @@ class account_journal_view(osv.osv):
|
|||
'columns_id': fields.one2many('account.journal.column', 'view_id', 'Columns')
|
||||
}
|
||||
_order = "name"
|
||||
|
||||
account_journal_view()
|
||||
|
||||
|
||||
|
@ -587,6 +589,7 @@ class account_journal_column(osv.osv):
|
|||
'readonly': fields.boolean('Readonly'),
|
||||
}
|
||||
_order = "sequence"
|
||||
|
||||
account_journal_column()
|
||||
|
||||
class account_journal(osv.osv):
|
||||
|
@ -595,7 +598,7 @@ class account_journal(osv.osv):
|
|||
_columns = {
|
||||
'name': fields.char('Journal Name', size=64, required=True, translate=True,help="Name of the journal"),
|
||||
'code': fields.char('Code', size=16,required=True,help="Code of the journal"),
|
||||
'type': fields.selection([('sale', 'Sale'),('sale_refund','Sale Refund'), ('purchase', 'Purchase'), ('purchase_refund','Purchase Refund'),('expense', 'Expense'), ('cash', 'Cash'), ('bank', 'Bank'), ('general', 'General'), ('situation', 'Situation')], 'Type', size=32, required=True,
|
||||
'type': fields.selection([('sale', 'Sale'),('sale_refund','Sale Refund'), ('purchase', 'Purchase'), ('purchase_refund','Purchase Refund'),('expense', 'Expense'), ('cash', 'Cash'), ('bank', 'Bank and Cheques'), ('general', 'General'), ('situation', 'Situation')], 'Type', size=32, required=True,
|
||||
help="Select 'Sale' for Sale journal to be used at the time of making invoice."\
|
||||
" Select 'Purchase' for Purchase Journal to be used at the time of approving purchase order."\
|
||||
" Select 'Cash' to be used at the time of making payment."\
|
||||
|
@ -835,7 +838,7 @@ class account_period(osv.osv):
|
|||
'company_id': fields.related('fiscalyear_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
|
||||
}
|
||||
_defaults = {
|
||||
'state': lambda *a: 'draft',
|
||||
'state': 'draft',
|
||||
}
|
||||
_order = "date_start"
|
||||
|
||||
|
@ -1001,9 +1004,9 @@ class account_move(osv.osv):
|
|||
"""
|
||||
|
||||
if not args:
|
||||
args=[]
|
||||
args = []
|
||||
if not context:
|
||||
context={}
|
||||
context = {}
|
||||
ids = []
|
||||
if name:
|
||||
ids += self.search(cr, user, [('name','ilike',name)]+args, limit=limit, context=context)
|
||||
|
@ -1019,7 +1022,7 @@ class account_move(osv.osv):
|
|||
def name_get(self, cursor, user, ids, context=None):
|
||||
if not len(ids):
|
||||
return []
|
||||
res=[]
|
||||
res = []
|
||||
data_move = self.pool.get('account.move').browse(cursor,user,ids)
|
||||
for move in data_move:
|
||||
if move.state=='draft':
|
||||
|
@ -1033,8 +1036,7 @@ class account_move(osv.osv):
|
|||
periods = self.pool.get('account.period').find(cr, uid)
|
||||
if periods:
|
||||
return periods[0]
|
||||
else:
|
||||
return False
|
||||
return False
|
||||
|
||||
def _amount_compute(self, cr, uid, ids, name, args, context, where =''):
|
||||
if not ids: return {}
|
||||
|
@ -1048,21 +1050,25 @@ class account_move(osv.osv):
|
|||
return result
|
||||
|
||||
def _search_amount(self, cr, uid, obj, name, args, context):
|
||||
ids = []
|
||||
cr.execute('select move_id,sum(debit) from account_move_line group by move_id')
|
||||
result = dict(cr.fetchall())
|
||||
|
||||
for item in args:
|
||||
if item[1] == '>=':
|
||||
res = [('id', 'in', [k for k,v in result.iteritems() if v >= item[2]])]
|
||||
ids = set()
|
||||
for cond in args:
|
||||
amount = cond[2]
|
||||
if isinstance(cond[2],(list,tuple)):
|
||||
if cond[1] in ['in','not in']:
|
||||
amount = tuple(cond[2])
|
||||
else:
|
||||
continue
|
||||
else:
|
||||
res = [('id', 'in', [k for k,v in result.iteritems() if v <= item[2]])]
|
||||
ids += res
|
||||
if cond[1] in ['=like', 'like', 'not like', 'ilike', 'not ilike', 'in', 'not in', 'child_of']:
|
||||
continue
|
||||
|
||||
if not ids:
|
||||
return [('id', '>', '0')]
|
||||
|
||||
return ids
|
||||
cr.execute("select move_id from account_move_line group by move_id having sum(debit) %s %%s" % (cond[1]) ,(amount,))
|
||||
res_ids = set(id[0] for id in cr.fetchall())
|
||||
ids = ids and (ids & res_ids) or res_ids
|
||||
if ids:
|
||||
return [('id','in',tuple(ids))]
|
||||
else:
|
||||
return [('id', '=', '0')]
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Number', size=64, required=True),
|
||||
|
@ -1143,8 +1149,26 @@ class account_move(osv.osv):
|
|||
else:
|
||||
raise osv.except_osv(_('Integrity Error !'), _('You can not validate a non-balanced entry !\nMake sure you have configured Payment Term properly !\nIt should contain atleast one Payment Term Line with type "Balance" !'))
|
||||
return True
|
||||
|
||||
|
||||
def button_validate(self, cursor, user, ids, context=None):
|
||||
def _get_chart_account(cursor, user, account):
|
||||
if account.parent_id:
|
||||
chart_account = _get_chart_account(cursor, user, account.parent_id)
|
||||
else:
|
||||
chart_account = account
|
||||
return chart_account
|
||||
|
||||
for move in self.browse(cursor, user, ids):
|
||||
lines = move.line_id
|
||||
if lines:
|
||||
ref_line = lines[0]
|
||||
ref_chart_account = _get_chart_account(cursor, user, ref_line.account_id)
|
||||
parent_left = ref_chart_account.parent_left
|
||||
parent_right = ref_chart_account.parent_right
|
||||
result = True
|
||||
for line in lines[1:]:
|
||||
if not(line.account_id.parent_left > parent_left and line.account_id.parent_left < parent_right):
|
||||
raise osv.except_osv(_('Error !'), _('You cannot validate a move unless accounts in its entry lines are in same Chart Of Accounts !'))
|
||||
return self.post(cursor, user, ids, context=context)
|
||||
|
||||
def button_cancel(self, cr, uid, ids, context={}):
|
||||
|
@ -1450,7 +1474,7 @@ class account_tax_code(osv.osv):
|
|||
|
||||
This code is used for some tax declarations.
|
||||
"""
|
||||
def _sum(self, cr, uid, ids, name, args, context,where ='', where_params=()):
|
||||
def _sum(self, cr, uid, ids, name, args, context, where ='', where_params=()):
|
||||
parent_ids = tuple(self.search(cr, uid, [('parent_id', 'child_of', ids)]))
|
||||
if context.get('based_on', 'invoices') == 'payments':
|
||||
cr.execute('SELECT line.tax_code_id, sum(line.tax_amount) \
|
||||
|
@ -1463,13 +1487,15 @@ class account_tax_code(osv.osv):
|
|||
AND ((invoice.state = \'paid\') \
|
||||
OR (invoice.id IS NULL)) \
|
||||
GROUP BY line.tax_code_id',
|
||||
(parent_ids,)+where_params)
|
||||
(parent_ids,) + where_params)
|
||||
else:
|
||||
cr.execute('SELECT line.tax_code_id, sum(line.tax_amount) \
|
||||
FROM account_move_line AS line \
|
||||
FROM account_move_line AS line, \
|
||||
account_move AS move \
|
||||
WHERE line.tax_code_id IN %s '+where+' \
|
||||
AND move.id = line.move_id \
|
||||
GROUP BY line.tax_code_id',
|
||||
(parent_ids,)+where_params)
|
||||
(parent_ids,) + where_params)
|
||||
res=dict(cr.fetchall())
|
||||
for record in self.browse(cr, uid, ids, context):
|
||||
def _rec_get(record):
|
||||
|
@ -1480,7 +1506,12 @@ class account_tax_code(osv.osv):
|
|||
res[record.id] = round(_rec_get(record), self.pool.get('decimal.precision').precision_get(cr, uid, 'Account'))
|
||||
return res
|
||||
|
||||
def _sum_year(self, cr, uid, ids, name, args, context):
|
||||
def _sum_year(self, cr, uid, ids, name, args, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
move_state = ('posted', )
|
||||
if 'state' in context and context['state'] == 'all':
|
||||
move_state = ('draft', 'posted', )
|
||||
if 'fiscalyear_id' in context and context['fiscalyear_id']:
|
||||
fiscalyear_id = context['fiscalyear_id']
|
||||
else:
|
||||
|
@ -1490,12 +1521,17 @@ class account_tax_code(osv.osv):
|
|||
if fiscalyear_id:
|
||||
pids = map(lambda x: str(x.id), self.pool.get('account.fiscalyear').browse(cr, uid, fiscalyear_id).period_ids)
|
||||
if pids:
|
||||
where = ' and period_id IN %s'
|
||||
where_params = (tuple(pids),)
|
||||
where = ' AND line.period_id IN %s AND move.state IN %s '
|
||||
where_params = (tuple(pids), move_state)
|
||||
return self._sum(cr, uid, ids, name, args, context,
|
||||
where=where, where_params=where_params)
|
||||
|
||||
def _sum_period(self, cr, uid, ids, name, args, context):
|
||||
if context is None:
|
||||
context = {}
|
||||
move_state = ('posted', )
|
||||
if 'state' in context and context['state'] == 'all':
|
||||
move_state = ('draft', 'posted', )
|
||||
if 'period_id' in context and context['period_id']:
|
||||
period_id = context['period_id']
|
||||
else:
|
||||
|
@ -1504,7 +1540,7 @@ class account_tax_code(osv.osv):
|
|||
return dict.fromkeys(ids, 0.0)
|
||||
period_id = period_id[0]
|
||||
return self._sum(cr, uid, ids, name, args, context,
|
||||
where=' and line.period_id=%s', where_params=(period_id,))
|
||||
where=' AND line.period_id=%s AND move.state IN %s', where_params=(period_id, move_state))
|
||||
|
||||
_name = 'account.tax.code'
|
||||
_description = 'Tax Code'
|
||||
|
@ -1639,9 +1675,9 @@ class account_tax(osv.osv):
|
|||
@return: Returns a list of tupples containing id and name
|
||||
"""
|
||||
if not args:
|
||||
args=[]
|
||||
args = []
|
||||
if not context:
|
||||
context={}
|
||||
context = {}
|
||||
ids = []
|
||||
ids = self.search(cr, user, args, limit=limit, context=context)
|
||||
return self.name_get(cr, user, ids, context=context)
|
||||
|
@ -1662,37 +1698,37 @@ class account_tax(osv.osv):
|
|||
|
||||
return super(account_tax, self).search(cr, uid, args, offset, limit, order, context, count)
|
||||
|
||||
def name_get(self, cr, uid, ids, context={}):
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
if not len(ids):
|
||||
return []
|
||||
res = []
|
||||
for record in self.read(cr, uid, ids, ['description','name'], context):
|
||||
for record in self.read(cr, uid, ids, ['description','name'], context=context):
|
||||
name = record['description'] and record['description'] or record['name']
|
||||
res.append((record['id'],name ))
|
||||
return res
|
||||
|
||||
def _default_company(self, cr, uid, context={}):
|
||||
def _default_company(self, cr, uid, context=None):
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
if user.company_id:
|
||||
return user.company_id.id
|
||||
return self.pool.get('res.company').search(cr, uid, [('parent_id', '=', False)])[0]
|
||||
|
||||
_defaults = {
|
||||
'python_compute': lambda *a: '''# price_unit\n# address : res.partner.address object or False\n# product : product.product object or None\n# partner : res.partner object or None\n\nresult = price_unit * 0.10''',
|
||||
'python_compute_inv': lambda *a: '''# price_unit\n# address : res.partner.address object or False\n# product : product.product object or False\n\nresult = price_unit * 0.10''',
|
||||
'applicable_type': lambda *a: 'true',
|
||||
'type': lambda *a: 'percent',
|
||||
'amount': lambda *a: 0,
|
||||
'price_include': lambda *a: 0,
|
||||
'active': lambda *a: 1,
|
||||
'type_tax_use': lambda *a: 'all',
|
||||
'sequence': lambda *a: 1,
|
||||
'tax_group': lambda *a: 'vat',
|
||||
'ref_tax_sign': lambda *a: 1,
|
||||
'ref_base_sign': lambda *a: 1,
|
||||
'tax_sign': lambda *a: 1,
|
||||
'base_sign': lambda *a: 1,
|
||||
'include_base_amount': lambda *a: False,
|
||||
'python_compute': '''# price_unit\n# address : res.partner.address object or False\n# product : product.product object or None\n# partner : res.partner object or None\n\nresult = price_unit * 0.10''',
|
||||
'python_compute_inv': '''# price_unit\n# address : res.partner.address object or False\n# product : product.product object or False\n\nresult = price_unit * 0.10''',
|
||||
'applicable_type': 'true',
|
||||
'type': 'percent',
|
||||
'amount': 0,
|
||||
'price_include': 0,
|
||||
'active': 1,
|
||||
'type_tax_use': 'all',
|
||||
'sequence': 1,
|
||||
'tax_group': 'vat',
|
||||
'ref_tax_sign': 1,
|
||||
'ref_base_sign': 1,
|
||||
'tax_sign': 1,
|
||||
'base_sign': 1,
|
||||
'include_base_amount': False,
|
||||
'company_id': _default_company,
|
||||
}
|
||||
_order = 'sequence'
|
||||
|
@ -1796,7 +1832,7 @@ class account_tax(osv.osv):
|
|||
tin = self.compute_inv(cr, uid, tin, price_unit, quantity, address_id=address_id, product=product, partner=partner)
|
||||
for r in tin:
|
||||
totalex -= r['amount']
|
||||
totlex_qty=0.0
|
||||
totlex_qty = 0.0
|
||||
try:
|
||||
totlex_qty=totalex/quantity
|
||||
except:
|
||||
|
@ -2217,12 +2253,12 @@ class account_add_tmpl_wizard(osv.osv_memory):
|
|||
}
|
||||
|
||||
def action_create(self,cr,uid,ids,context=None):
|
||||
acc_obj=self.pool.get('account.account')
|
||||
tmpl_obj=self.pool.get('account.account.template')
|
||||
data= self.read(cr, uid, ids)
|
||||
acc_obj = self.pool.get('account.account')
|
||||
tmpl_obj = self.pool.get('account.account.template')
|
||||
data = self.read(cr, uid, ids)
|
||||
company_id = acc_obj.read(cr, uid, [data[0]['cparent_id']], ['company_id'])[0]['company_id'][0]
|
||||
account_template = tmpl_obj.browse(cr, uid, context['tmpl_ids'])
|
||||
vals={
|
||||
vals = {
|
||||
'name': account_template.name,
|
||||
'currency_id': account_template.currency_id and account_template.currency_id.id or False,
|
||||
'code': account_template.code,
|
||||
|
@ -2621,13 +2657,13 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
|||
|
||||
data_id = data_pool.search(cr, uid, [('model','=','account.journal.view'), ('name','=','account_journal_bank_view_multi')])
|
||||
data = data_pool.browse(cr, uid, data_id[0])
|
||||
ref_acc_bank = data.res_id
|
||||
view_id_cur = data.res_id
|
||||
ref_acc_bank = obj_multi.chart_template_id.bank_account_view_id
|
||||
|
||||
current_num = 1
|
||||
for line in obj_multi.bank_accounts_id:
|
||||
#create the account_account for this bank journal
|
||||
tmp = self.pool.get('res.partner.bank').name_get(cr, uid, [line.acc_no.id])[0][1]
|
||||
tmp = line.acc_name
|
||||
dig = obj_multi.code_digits
|
||||
if ref_acc_bank.code:
|
||||
try:
|
||||
|
@ -2635,7 +2671,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
|||
except Exception,e:
|
||||
new_code = str(ref_acc_bank.code.ljust(dig-len(str(current_num)),'0')) + str(current_num)
|
||||
vals = {
|
||||
'name': line.acc_no.bank and line.acc_no.bank.name+' '+tmp or tmp,
|
||||
'name': tmp,
|
||||
'currency_id': line.currency_id and line.currency_id.id or False,
|
||||
'code': new_code,
|
||||
'type': 'other',
|
||||
|
|
|
@ -104,8 +104,7 @@ class account_bank_statement(osv.osv):
|
|||
periods = self.pool.get('account.period').find(cr, uid)
|
||||
if periods:
|
||||
return periods[0]
|
||||
else:
|
||||
return False
|
||||
return False
|
||||
|
||||
def _currency(self, cursor, user, ids, name, args, context=None):
|
||||
res = {}
|
||||
|
@ -201,6 +200,7 @@ class account_bank_statement(osv.osv):
|
|||
res_users_obj = self.pool.get('res.users')
|
||||
account_move_obj = self.pool.get('account.move')
|
||||
account_move_line_obj = self.pool.get('account.move.line')
|
||||
account_analytic_line_obj = self.pool.get('account.analytic.line')
|
||||
account_bank_statement_line_obj = self.pool.get('account.bank.statement.line')
|
||||
obj_seq = self.pool.get('ir.sequence')
|
||||
|
||||
|
@ -222,6 +222,11 @@ class account_bank_statement(osv.osv):
|
|||
raise osv.except_osv(_('Configuration Error !'),
|
||||
_('Please verify that an account is defined in the journal.'))
|
||||
|
||||
if not st.name == '/':
|
||||
next_number = st.name
|
||||
else:
|
||||
next_number = obj_seq.get(cr, uid, 'account.bank.statement')
|
||||
|
||||
for line in st.move_line_ids:
|
||||
if line.state <> 'valid':
|
||||
raise osv.except_osv(_('Error !'),
|
||||
|
@ -230,14 +235,18 @@ class account_bank_statement(osv.osv):
|
|||
# In line we get reconcile_id on bank.ste.rec.
|
||||
# in bank stat.rec we get line_new_ids on bank.stat.rec.line
|
||||
for move in st.line_ids:
|
||||
context.update({'date':move.date})
|
||||
if move.analytic_account_id:
|
||||
if not st.journal_id.analytic_journal_id:
|
||||
raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (st.journal_id.name,))
|
||||
|
||||
context.update({'date': move.date})
|
||||
move_id = account_move_obj.create(cr, uid, {
|
||||
'journal_id': st.journal_id.id,
|
||||
'period_id': st.period_id.id,
|
||||
'date': move.date,
|
||||
}, context=context)
|
||||
account_bank_statement_line_obj.write(cr, uid, [move.id], {
|
||||
'move_ids': [(4,move_id, False)]
|
||||
'move_ids': [(4, move_id, False)]
|
||||
})
|
||||
if not move.amount:
|
||||
continue
|
||||
|
@ -268,6 +277,7 @@ class account_bank_statement(osv.osv):
|
|||
'journal_id': st.journal_id.id,
|
||||
'period_id': st.period_id.id,
|
||||
'currency_id': st.currency.id,
|
||||
'analytic_account_id': move.analytic_account_id and move.analytic_account_id.id or False
|
||||
}
|
||||
|
||||
amount = res_currency_obj.compute(cr, uid, st.currency.id,
|
||||
|
@ -289,7 +299,28 @@ class account_bank_statement(osv.osv):
|
|||
account=acc_cur)
|
||||
val['amount_currency'] = amount_cur
|
||||
|
||||
torec.append(account_move_line_obj.create(cr, uid, val , context=context))
|
||||
move_line_id = account_move_line_obj.create(cr, uid, val , context=context)
|
||||
torec.append(move_line_id)
|
||||
|
||||
if move.analytic_account_id:
|
||||
anal_val = {}
|
||||
amt = (val['credit'] or 0.0) - (val['debit'] or 0.0)
|
||||
anal_val = {
|
||||
'name': val['name'],
|
||||
'ref': val['ref'],
|
||||
'date': val['date'],
|
||||
'amount': amt,
|
||||
'account_id': val['analytic_account_id'],
|
||||
'currency_id': val['currency_id'],
|
||||
'general_account_id': val['account_id'],
|
||||
'journal_id': st.journal_id.analytic_journal_id.id,
|
||||
'period_id': val['period_id'],
|
||||
'user_id': uid,
|
||||
'move_id': move_line_id
|
||||
}
|
||||
if val.get('amount_currency', False):
|
||||
anal_val['amount_currency'] = val['amount_currency']
|
||||
account_analytic_line_obj.create(cr, uid, anal_val, context=context)
|
||||
|
||||
if move.reconcile_id and move.reconcile_id.line_new_ids:
|
||||
for newline in move.reconcile_id.line_new_ids:
|
||||
|
@ -367,17 +398,11 @@ class account_bank_statement(osv.osv):
|
|||
account_move_line_obj.reconcile(cr, uid, torec, 'statement', writeoff_acc_id=writeoff_acc_id, writeoff_period_id=st.period_id.id, writeoff_journal_id=st.journal_id.id, context=context)
|
||||
else:
|
||||
account_move_line_obj.reconcile_partial(cr, uid, torec, 'statement', context)
|
||||
|
||||
if st.journal_id.entry_posted:
|
||||
account_move_obj.write(cr, uid, [move_id], {'state': 'posted'})
|
||||
move_name = next_number + ' - ' + str(move.sequence)
|
||||
account_move_obj.write(cr, uid, [move_id], {'name': move_name, 'state': 'posted'}) # Bank statements will not consider boolean on journal entry_posted
|
||||
|
||||
self.log(cr, uid, st.id, 'Statement %s is confirmed and entries are created.' % st.name)
|
||||
done.append(st.id)
|
||||
|
||||
next_number = obj_seq.get(cr, uid, 'account.bank.statement')
|
||||
if not st.name == '/':
|
||||
next_number = st.name + '/' + next_number[-1:]
|
||||
account_move_obj.write(cr, uid, [move_id], {'state': 'posted', 'name': next_number})
|
||||
self.write(cr, uid, [st.id], {'name': next_number}, context=context)
|
||||
|
||||
self.write(cr, uid, done, {'state':'confirm'}, context=context)
|
||||
|
@ -397,28 +422,15 @@ class account_bank_statement(osv.osv):
|
|||
return True
|
||||
|
||||
def onchange_journal_id(self, cursor, user, statement_id, journal_id, context=None):
|
||||
if not journal_id:
|
||||
return {'value': {'currency': False}}
|
||||
|
||||
account_journal_obj = self.pool.get('account.journal')
|
||||
res_users_obj = self.pool.get('res.users')
|
||||
res_currency_obj = self.pool.get('res.currency')
|
||||
|
||||
cursor.execute('SELECT balance_end_real \
|
||||
FROM account_bank_statement \
|
||||
WHERE journal_id = %s \
|
||||
ORDER BY date DESC,id DESC LIMIT 1', (journal_id,))
|
||||
WHERE journal_id = %s AND NOT state = %s \
|
||||
ORDER BY date DESC,id DESC LIMIT 1', (journal_id, 'draft'))
|
||||
res = cursor.fetchone()
|
||||
balance_start = res and res[0] or 0.0
|
||||
|
||||
currency_id = account_journal_obj.browse(cursor, user, journal_id,
|
||||
context=context).currency.id
|
||||
if not currency_id:
|
||||
currency_id = res_users_obj.browse(cursor, user, user,
|
||||
context=context).company_id.currency_id.id
|
||||
currency = res_currency_obj.name_get(cursor, user, [currency_id],
|
||||
context=context)[0]
|
||||
return {'value': {'balance_start': balance_start, 'currency': currency}}
|
||||
return {'value': {'balance_start': balance_start}}
|
||||
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
stat = self.read(cr, uid, ids, ['state'])
|
||||
|
@ -629,6 +641,26 @@ class account_bank_statement_line(osv.osv):
|
|||
else:
|
||||
account_id = part.property_account_receivable.id
|
||||
res['value']['account_id'] = account_id
|
||||
|
||||
if not line or (line and not line[0].amount):
|
||||
res_users_obj = self.pool.get('res.users')
|
||||
res_currency_obj = self.pool.get('res.currency')
|
||||
company_currency_id = res_users_obj.browse(cursor, user, user,
|
||||
context=context).company_id.currency_id.id
|
||||
if not currency_id:
|
||||
currency_id = company_currency_id
|
||||
|
||||
cursor.execute('SELECT sum(debit-credit) \
|
||||
FROM account_move_line \
|
||||
WHERE (reconcile_id is null) \
|
||||
AND partner_id = %s \
|
||||
AND account_id=%s', (partner_id, account_id))
|
||||
pgres = cursor.fetchone()
|
||||
balance = pgres and pgres[0] or 0.0
|
||||
|
||||
balance = res_currency_obj.compute(cursor, user, company_currency_id,
|
||||
currency_id, balance, context=context)
|
||||
res['value']['amount'] = balance
|
||||
return res
|
||||
|
||||
def _reconcile_amount(self, cursor, user, ids, name, args, context=None):
|
||||
|
@ -669,6 +701,7 @@ class account_bank_statement_line(osv.osv):
|
|||
select=True, required=True, ondelete='cascade'),
|
||||
'reconcile_id': fields.many2one('account.bank.statement.reconcile',
|
||||
'Reconcile'),
|
||||
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account'),
|
||||
'move_ids': fields.many2many('account.move',
|
||||
'account_bank_statement_line_move_rel', 'move_id','statement_id',
|
||||
'Moves'),
|
||||
|
|
|
@ -65,9 +65,8 @@
|
|||
<field domain="[('type','<>','view'), ('company_id', '=', parent.company_id), ('parent_id', '!=', False)]" name="account_analytic_id" groups="base.group_extended"/>
|
||||
<newline/>
|
||||
<field name="price_subtotal"/>
|
||||
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<field colspan="4" name="invoice_line_tax_id" context="{'type':parent.type}" domain="[('parent_id','!=',False),('company_id', '=', parent.company_id)]"/>
|
||||
<field colspan="4" name="invoice_line_tax_id" context="{'type':parent.type}" domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]"/>
|
||||
</page>
|
||||
<page string="Notes">
|
||||
<field colspan="4" name="note" nolabel="1"/>
|
||||
|
@ -137,7 +136,6 @@
|
|||
<field name="state"/>
|
||||
|
||||
<button name="invoice_open" states="draft,proforma2" string="Approve" icon="terp-camera_test"/>
|
||||
<button name="%(action_account_invoice_pay)d" type='action' string='Pay Invoice' states='open' icon="terp-dolar_ok!"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -211,7 +209,6 @@
|
|||
<group col="6" colspan="4">
|
||||
<button name="invoice_open" states="draft,proforma2" string="Approve" icon="terp-camera_test"/>
|
||||
<button name="%(action_account_invoice_refund)d" type='action' string='Refund' states='open,paid' icon="gtk-execute"/>
|
||||
<button name="%(action_account_invoice_pay)d" type='action' string='Pay Invoice' states='open' icon="terp-dolar_ok!"/>
|
||||
<button name="%(action_account_state_open)d" type='action' string='Re-Open' states='paid' icon="gtk-convert" groups="base.group_no_one"/>
|
||||
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" icon="terp-stock_effects-object-colorize"/>
|
||||
|
@ -308,7 +305,6 @@
|
|||
<button name="invoice_proforma2" states="draft" string="PRO-FORMA" icon="terp-gtk-media-pause" groups="account.group_account_user"/>
|
||||
<button name="invoice_open" states="draft,proforma2" string="Create" icon="terp-camera_test"/>
|
||||
<button name="%(action_account_invoice_refund)d" type='action' string='Refund' states='open,paid' icon="gtk-execute"/>
|
||||
<button name="%(action_account_invoice_pay)d" type='action' string='Pay Invoice' states='open' icon="terp-dolar_ok!"/>
|
||||
<button name='%(action_account_state_open)d' type='action' string='Re-Open' states='paid' icon="gtk-convert" groups="base.group_no_one"/>
|
||||
</group>
|
||||
</group>
|
||||
|
@ -501,7 +497,7 @@
|
|||
</record>
|
||||
<menuitem action="action_invoice_tree4" id="menu_action_invoice_tree4" parent="menu_finance_payables"/>
|
||||
|
||||
<act_window domain="[('partner_id','=',active_id)]" id="act_res_partner_2_account_invoice_opened" name="Invoices" res_model="account.invoice" src_model="res.partner"/>
|
||||
<act_window context="{'search_default_partner_id':[active_id]}" id="act_res_partner_2_account_invoice_opened" name="Invoices" res_model="account.invoice" src_model="res.partner"/>
|
||||
|
||||
<act_window domain="[('journal_id','=',active_id),('state','!=','draft'),('reconciled','=',False)]" id="act_account_journal_2_account_invoice_opened" name="Unpaid invoices" res_model="account.invoice" src_model="account.journal"/>
|
||||
|
||||
|
|
|
@ -111,14 +111,6 @@ write({'state':'cancel'})</field>
|
|||
<field name="signal">invoice_open</field>
|
||||
</record>
|
||||
|
||||
<record id="pro2_to_paid" model="workflow.transition">
|
||||
<field name="act_from" ref="act_proforma2"/>
|
||||
<field name="act_to" ref="account.act_paid"/>
|
||||
<field name="trigger_model">account.move.line</field>
|
||||
<field name="trigger_expr_id">move_line_id_payment_get()</field>
|
||||
<field name="condition">test_paid()</field>
|
||||
</record>
|
||||
|
||||
<record id="pro2_to_cancel" model="workflow.transition">
|
||||
<field name="act_from" ref="act_proforma2"/>
|
||||
<field name="act_to" ref="account.act_cancel"/>
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
<data>
|
||||
|
||||
<menuitem icon="terp-account" id="menu_finance" name="Accounting" sequence="13"/>
|
||||
<menuitem id="menu_finance_receivables" name="Receivables" parent="menu_finance" sequence="1" groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
<menuitem id="menu_finance_payables" name="Payables" parent="menu_finance" sequence="2" groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
<menuitem id="menu_finance_receivables" name="Customers" parent="menu_finance" sequence="1" groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
<menuitem id="menu_finance_payables" name="Vendors" parent="menu_finance" sequence="2" groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
<menuitem id="menu_finance_bank_and_cash" name="Bank and Cash" parent="menu_finance" sequence="3"/>
|
||||
<menuitem id="menu_finance_periodical_processing" name="Periodical Processing" parent="menu_finance" sequence="8" groups="group_account_user,group_account_manager,base.group_system,group_account_invoice"/>
|
||||
<menuitem id="periodical_processing_journal_entries_validation" name="Draft Entries" parent="menu_finance_periodical_processing" groups="group_account_user,group_account_manager,base.group_system"/>
|
||||
|
|
|
@ -305,6 +305,7 @@ class account_move_line(osv.osv):
|
|||
ml = self.browse(cr, uid, id, context)
|
||||
return map(lambda x: x.id, ml.move_id.line_id)
|
||||
|
||||
# TODO: this is false, it does not uses draft and closed periods
|
||||
def _balance(self, cr, uid, ids, prop, unknow_none, unknow_dict):
|
||||
res={}
|
||||
# TODO group the foreach in sql
|
||||
|
@ -344,9 +345,9 @@ class account_move_line(osv.osv):
|
|||
result = []
|
||||
for line in self.browse(cr, uid, ids, context):
|
||||
if line.ref:
|
||||
result.append((line.id, (line.name or '')+' ('+line.ref+')'))
|
||||
result.append((line.id, (line.move_id.name or '')+' ('+line.ref+')'))
|
||||
else:
|
||||
result.append((line.id, line.name))
|
||||
result.append((line.id, line.move_id.name))
|
||||
return result
|
||||
|
||||
def _balance_search(self, cursor, user, obj, name, args, domain=None, context=None):
|
||||
|
@ -456,8 +457,8 @@ class account_move_line(osv.osv):
|
|||
type='many2one', relation='account.invoice', fnct_search=_invoice_search),
|
||||
'account_tax_id':fields.many2one('account.tax', 'Tax'),
|
||||
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account'),
|
||||
#TODO: remove this
|
||||
'amount_taxed':fields.float("Taxed Amount", digits_compute=dp.get_precision('Account')),
|
||||
#TODO: remove this
|
||||
#'amount_taxed':fields.float("Taxed Amount", digits_compute=dp.get_precision('Account')),
|
||||
'company_id': fields.related('account_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True)
|
||||
|
||||
}
|
||||
|
@ -864,7 +865,7 @@ class account_move_line(osv.osv):
|
|||
fields = {}
|
||||
flds = []
|
||||
title = "Accounting Entries" #self.view_header_get(cr, uid, view_id, view_type, context)
|
||||
xml = '''<?xml version="1.0"?>\n<tree string="%s" editable="top" refresh="5" on_write="on_create_write">\n\t''' % (title)
|
||||
xml = '''<?xml version="1.0"?>\n<tree string="%s" editable="top" refresh="5" on_write="on_create_write" colors="red:state==\'draft\';black:state==\'valid\'">\n\t''' % (title)
|
||||
|
||||
ids = journal_pool.search(cr, uid, [])
|
||||
journals = journal_pool.browse(cr, uid, ids)
|
||||
|
@ -907,8 +908,8 @@ class account_move_line(osv.osv):
|
|||
if common_fields.get(field) == total:
|
||||
fields.get(field).append(None)
|
||||
|
||||
if field=='state':
|
||||
state = 'colors="red:state==\'draft\'"'
|
||||
# if field=='state':
|
||||
# state = 'colors="red:state==\'draft\'"'
|
||||
|
||||
attrs = []
|
||||
if field == 'debit':
|
||||
|
|
|
@ -238,8 +238,8 @@
|
|||
<field name="debit"/>
|
||||
<field name="credit"/>
|
||||
<field name="balance"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="company_currency_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="type"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
@ -515,6 +515,7 @@
|
|||
<field name="type"/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id, type, parent.currency)"/>
|
||||
<field domain="[('journal_id', '=', parent.journal_id), ('type', '<>', 'view')]" name="account_id"/>
|
||||
<field name="analytic_account_id" groups="base.group_extended" />
|
||||
<field name="amount"/>
|
||||
<field context="{'partner_id':partner_id,'amount':amount,'account_id':account_id,'currency_id': parent.currency,'journal_id':parent.journal_id, 'date':date}" name="reconcile_id"/>
|
||||
<field name="ref"/>
|
||||
|
@ -664,7 +665,6 @@
|
|||
<field name="journal_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="amount" sum="Total Amount"/>
|
||||
<field name="reconcile_id"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
@ -706,9 +706,9 @@
|
|||
<tree string="Account Tax Code" toolbar="1">
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="sum"/>
|
||||
<field name="sum_period"/>
|
||||
<field name="company_id"/>
|
||||
<field name="sum"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -853,11 +853,13 @@
|
|||
<field name="view_id" ref="view_tax_code_tree"/>
|
||||
<field name="help">Chart of Taxes is a tree view reflecting the structure of the Tax Cases (or tax codes) and shows the current tax situation. The tax chart represents the amount of each area of the tax declaration for your country. It’s presented in a hierarchical structure, which can be modified to fit your needs.</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
<menuitem
|
||||
action="action_tax_code_tree"
|
||||
id="menu_action_tax_code_tree"
|
||||
parent="menu_finance_charts"
|
||||
sequence="12"/>
|
||||
sequence="12"/> --> <!-- move to wizard -->
|
||||
|
||||
<!--
|
||||
Entries lines
|
||||
|
@ -869,7 +871,7 @@
|
|||
<field name="type">tree</field>
|
||||
<field eval="4" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="blue:state in ('draft');black:state in ('valid')" string="Journal Items" editable="top" on_write="on_create_write">
|
||||
<tree colors="red:state in ('draft');black:state in ('valid')" string="Journal Items" editable="top" on_write="on_create_write">
|
||||
<field name="date"/>
|
||||
<field name="period_id"/>
|
||||
<field name="move_id"/>
|
||||
|
@ -921,7 +923,7 @@
|
|||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Accounting Documents"/>
|
||||
<field name="invoice" readonly="True"/>
|
||||
<field name="move_id" readonly="True"/>
|
||||
<field name="move_id" required="False"/>
|
||||
<field name="statement_id" readonly="True"/>
|
||||
</group>
|
||||
|
||||
|
@ -1065,8 +1067,11 @@
|
|||
<newline/>
|
||||
<group expand="0" string="Group By..." colspan="12" col="10">
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
<filter string="Account" icon="terp-folder-orange" context="{'group_by':'account_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Partner" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id'}"/>
|
||||
<filter string="States" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended options...">
|
||||
|
@ -1080,6 +1085,23 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_account_moves_all_a" model="ir.actions.act_window">
|
||||
<field name="name">Journal Items</field>
|
||||
<field name="res_model">account.move.line</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_account_move_line_filter"/>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
action="action_account_moves_all_a"
|
||||
icon="STOCK_JUSTIFY_FILL"
|
||||
id="menu_action_account_moves_all"
|
||||
parent="account.menu_finance_entries"
|
||||
sequence="4"
|
||||
groups="group_account_user,group_account_manager,base.group_system"
|
||||
/>
|
||||
|
||||
<record id="action_move_line_select" model="ir.actions.act_window">
|
||||
<field name="name">Journal Items</field>
|
||||
<field name="res_model">account.move.line</field>
|
||||
|
@ -1341,9 +1363,9 @@
|
|||
res_model="account.move.line"
|
||||
src_model="account.move"/>
|
||||
|
||||
<record id="account.act_account_move_to_account_move_line_open" model="ir.actions.act_window">
|
||||
<field eval="[(6,0,[ref('account.group_accounting_accountant')])]" name="groups_id"/>
|
||||
</record>
|
||||
<record id="account.act_account_move_to_account_move_line_open" model="ir.actions.act_window">
|
||||
<field eval="[(6,0,[ref('account.group_accounting_accountant')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="action_move_line_search" model="ir.actions.act_window">
|
||||
<field name="name">Journal Items</field>
|
||||
|
@ -1406,6 +1428,7 @@
|
|||
<field name="type"/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id, type, parent.currency)"/>
|
||||
<field domain="[('journal_id', '=', parent.journal_id)]" name="account_id"/>
|
||||
<field name="analytic_account_id" groups="base.group_extended" />
|
||||
<field name="amount"/>
|
||||
<field context="{'partner_id': partner_id, 'amount': amount, 'account_id': account_id, 'date':date}" name="reconcile_id"/>
|
||||
</form>
|
||||
|
@ -1769,7 +1792,7 @@
|
|||
<field name="type">tree</field>
|
||||
<field eval="4" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="blue:state in ('draft');black:state in ('valid')" string="Journal Items">
|
||||
<tree colors="red:state in ('draft');black:state in ('valid')" string="Journal Items">
|
||||
<field name="date"/>
|
||||
<field name="move_id"/>
|
||||
<field name="statement_id" string="St."/>
|
||||
|
@ -1812,9 +1835,9 @@
|
|||
|
||||
<act_window domain="[('journal_id', '=', active_id)]" id="act_account_journal_2_account_move_line" name="Journal Items" res_model="account.move.line" src_model="account.journal"/>
|
||||
|
||||
<act_window context="{'search_default_reconcile_id':False}" domain="[('partner_id', '=', active_id),('reconcile_id','=',False),('account_id.reconcile', '=', True),('account_id.type', 'in', ['receivable', 'payable'])]" id="act_account_partner_account_move_all" name="Receivables & Payables" res_model="account.move.line" src_model="res.partner"/>
|
||||
<act_window context="{'search_default_reconcile_id':False, 'search_default_partner_id':[active_id]}" domain="[('account_id.reconcile', '=', True),('account_id.type', 'in', ['receivable', 'payable'])]" id="act_account_partner_account_move_all" name="Receivables & Payables" res_model="account.move.line" src_model="res.partner"/>
|
||||
|
||||
<act_window domain="[('partner_id', '=', active_id)]" id="act_account_partner_account_move" name="Journal Items" res_model="account.move.line" src_model="res.partner"/>
|
||||
<act_window context="{'search_default_partner_id':[active_id]}" id="act_account_partner_account_move" name="Journal Items" res_model="account.move.line" src_model="res.partner"/>
|
||||
|
||||
<record id="view_account_addtmpl_wizard_form" model="ir.ui.view">
|
||||
<field name="name">Create Account</field>
|
||||
|
@ -2358,6 +2381,7 @@
|
|||
<field name="type"/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id, type, parent.currency)"/>
|
||||
<field domain="[('journal_id', '=', parent.journal_id), ('type', '<>', 'view')]" name="account_id"/>
|
||||
<field name="analytic_account_id" groups="base.group_extended" />
|
||||
<field name="amount"/>
|
||||
<field context="{'partner_id':partner_id,'amount':amount,'account_id':account_id,'currency_id': parent.currency,'journal_id':parent.journal_id, 'date':date}" name="reconcile_id"/>
|
||||
<field name="ref"/>
|
||||
|
|
|
@ -470,6 +470,8 @@
|
|||
<field name="name">OTAX X</field>
|
||||
<field eval="0.0" name="amount"/>
|
||||
<field name="type">percent</field>
|
||||
<field name="account_collected_id" ref="conf_ova"/>
|
||||
<field name="account_paid_id" ref="conf_ova"/>
|
||||
<field name="base_code_id" ref="tax_code_purch_X"/>
|
||||
<field name="tax_code_id" ref="tax_code_output_X"/>
|
||||
<field name="ref_base_code_id" ref="tax_code_purch_X"/>
|
||||
|
@ -482,6 +484,8 @@
|
|||
<field name="name">OTAX O</field>
|
||||
<field eval="0.0" name="amount"/>
|
||||
<field name="type">percent</field>
|
||||
<field name="account_collected_id" ref="conf_ova"/>
|
||||
<field name="account_paid_id" ref="conf_ova"/>
|
||||
<field name="base_code_id" ref="tax_code_purch_O"/>
|
||||
<field name="tax_code_id" ref="tax_code_output_O"/>
|
||||
<field name="ref_base_code_id" ref="tax_code_purch_O"/>
|
||||
|
@ -524,6 +528,8 @@
|
|||
<field name="name">ITAX X</field>
|
||||
<field eval="0.0" name="amount"/>
|
||||
<field name="type">percent</field>
|
||||
<field name="account_collected_id" ref="conf_iva"/>
|
||||
<field name="account_paid_id" ref="conf_iva"/>
|
||||
<field name="base_code_id" ref="tax_code_sales_X"/>
|
||||
<field name="tax_code_id" ref="tax_code_input_X"/>
|
||||
<field name="ref_base_code_id" ref="tax_code_sales_X"/>
|
||||
|
@ -536,6 +542,8 @@
|
|||
<field name="name">ITAX O</field>
|
||||
<field eval="0.0" name="amount"/>
|
||||
<field name="type">percent</field>
|
||||
<field name="account_collected_id" ref="conf_iva"/>
|
||||
<field name="account_paid_id" ref="conf_iva"/>
|
||||
<field name="base_code_id" ref="tax_code_sales_O"/>
|
||||
<field name="tax_code_id" ref="tax_code_input_O"/>
|
||||
<field name="ref_base_code_id" ref="tax_code_sales_O"/>
|
||||
|
|
|
@ -248,8 +248,8 @@
|
|||
<field name="field">state</field>
|
||||
<field eval="14" name="sequence"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
|
||||
<record id="account_sp_journal_view" model="account.journal.view">
|
||||
<field name="name">Sale/Purchase Journal View</field>
|
||||
</record>
|
||||
|
@ -347,7 +347,7 @@
|
|||
<field name="field">reconcile_id</field>
|
||||
<field eval="20" name="sequence"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="account_sp_refund_journal_view" model="account.journal.view">
|
||||
<field name="name">Sale/Purchase Refund Journal View</field>
|
||||
</record>
|
||||
|
@ -445,7 +445,7 @@
|
|||
<field name="field">reconcile_id</field>
|
||||
<field eval="20" name="sequence"/>
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
Account Journal Sequences
|
||||
-->
|
||||
|
@ -462,12 +462,14 @@
|
|||
<record id="sequence_sale_journal" model="ir.sequence">
|
||||
<field name="name">Sale Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="prefix"/>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">%(year)s/</field>
|
||||
</record>
|
||||
<record id="sequence_purchase_journal" model="ir.sequence">
|
||||
<field name="name">Purchase Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="prefix"/>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">%(year)s/</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
|
@ -494,10 +496,10 @@
|
|||
<field name="name">Account Bank Statement</field>
|
||||
<field name="code">account.bank.statement</field>
|
||||
<field name="prefix">St. %(month)s/%(day)s/</field>
|
||||
<field eval="0" name="number_next"/>
|
||||
<field eval="1" name="number_next"/>
|
||||
<field eval="1" name="number_increment"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="cash_sequence_statement_type" model="ir.sequence.type">
|
||||
<field name="name">Cash Statement</field>
|
||||
<field name="code">account.cash.statement</field>
|
||||
|
|
|
@ -346,7 +346,7 @@
|
|||
<field name="type">sale</field>
|
||||
<field name="view_id" ref="account_sp_journal_view"/>
|
||||
<field name="sequence_id" ref="sequence_sale_journal"/>
|
||||
<field name="invoice_sequence_id" ref="seq_type_out_invoice"/>
|
||||
<field name="invoice_sequence_id" ref="seq_out_invoice"/>
|
||||
<field model="account.account" name="default_credit_account_id" ref="a_sale"/>
|
||||
<field model="account.account" name="default_debit_account_id" ref="a_sale"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
|
@ -357,6 +357,7 @@
|
|||
<field name="type">sale_refund</field>
|
||||
<field name="view_id" ref="account_sp_refund_journal_view"/>
|
||||
<field name="sequence_id" ref="sequence_sale_journal"/>
|
||||
<field name="invoice_sequence_id" ref="seq_out_refund"/>
|
||||
<field model="account.account" name="default_credit_account_id" ref="a_sale"/>
|
||||
<field model="account.account" name="default_debit_account_id" ref="a_sale"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
|
@ -368,7 +369,7 @@
|
|||
<field name="type">purchase</field>
|
||||
<field name="view_id" ref="account_sp_journal_view"/>
|
||||
<field name="sequence_id" ref="sequence_purchase_journal"/>
|
||||
<field name="invoice_sequence_id" ref="seq_type_in_invoice"/>
|
||||
<field name="invoice_sequence_id" ref="seq_in_invoice"/>
|
||||
<field model="account.account" name="default_debit_account_id" ref="a_expense"/>
|
||||
<field model="account.account" name="default_credit_account_id" ref="a_expense"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
|
@ -379,6 +380,7 @@
|
|||
<field name="type">purchase_refund</field>
|
||||
<field name="view_id" ref="account_sp_refund_journal_view"/>
|
||||
<field name="sequence_id" ref="sequence_purchase_journal"/>
|
||||
<field name="invoice_sequence_id" ref="seq_in_refund"/>
|
||||
<field model="account.account" name="default_debit_account_id" ref="a_expense"/>
|
||||
<field model="account.account" name="default_credit_account_id" ref="a_expense"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
|
|
|
@ -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-08-23 06:52+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:36+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Danish <da@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-08-24 03:38+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
|
|
@ -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-08-23 06:55+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:43+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-08-24 03:38+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
@ -1036,7 +1036,7 @@ msgstr "Position"
|
|||
#: field:account.analytic.line,product_uom_id:0
|
||||
#: field:account.move.line,product_uom_id:0
|
||||
msgid "UoM"
|
||||
msgstr "UoM"
|
||||
msgstr "ME"
|
||||
|
||||
#. module: account
|
||||
#: wizard_field:account.third_party_ledger.report,init,page_split:0
|
||||
|
@ -1147,7 +1147,7 @@ msgstr "Summen- & Saldenliste Vorlagen"
|
|||
#: rml:account.invoice:0
|
||||
#: field:account.invoice.line,price_unit:0
|
||||
msgid "Unit Price"
|
||||
msgstr "Preis/UoM"
|
||||
msgstr "Preis/ME"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.analytic.account.journal:0
|
||||
|
@ -5480,7 +5480,7 @@ msgstr "Berechne"
|
|||
#. module: account
|
||||
#: help:account.invoice.line,account_id:0
|
||||
msgid "The income or expense account related to the selected product."
|
||||
msgstr "Aufwand- und Ertragskonto des Produktes"
|
||||
msgstr "Aufwand- und Erlöskonto des Produktes"
|
||||
|
||||
#. module: account
|
||||
#: field:account.tax,type_tax_use:0
|
||||
|
@ -5798,7 +5798,7 @@ msgstr "5"
|
|||
#: field:product.category,property_account_income_categ:0
|
||||
#: field:product.template,property_account_income:0
|
||||
msgid "Income Account"
|
||||
msgstr "Ertragskonto"
|
||||
msgstr "Erlöskonto"
|
||||
|
||||
#. module: account
|
||||
#: field:account.period,special:0
|
||||
|
|
|
@ -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-08-08 05:46+0000\n"
|
||||
"Last-Translator: lyyser <logard.1961@gmail.com>\n"
|
||||
"PO-Revision-Date: 2010-08-28 08:23+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <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-08-12 03:51+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-29 03:46+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
@ -637,7 +637,7 @@ msgstr "Kooskõlasta konto kirjet"
|
|||
#. module: account
|
||||
#: wizard_button:account.move.bank.reconcile,init,open:0
|
||||
msgid "Open for bank reconciliation"
|
||||
msgstr ""
|
||||
msgstr "Avatud panga võrdlevaks kooskõlastamiseks"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice.line,discount:0
|
||||
|
|
|
@ -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-08-23 06:54+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:40+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <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-08-24 03:38+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
|
|
@ -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-08-23 06:52+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:35+0000\n"
|
||||
"Last-Translator: eLBati - albatos.com <lorenzo.battistini@albatos.com>\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-08-24 03:39+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
|
|
@ -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-08-23 06:49+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:26+0000\n"
|
||||
"Last-Translator: Giedrius Slavinskas <giedrius.slavinskas@gmail.com>\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-08-24 03:39+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
|
|
@ -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-08-23 06:49+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:26+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <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-08-24 03:39+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:57+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: ASTRIT BOKSHI <astritbokshi@gmail.com>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-08-23 06:34+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 09:31+0000\n"
|
||||
"Last-Translator: bokshas <astritbokshi@gmail.com>\n"
|
||||
"Language-Team: Albanian <sq@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-08-24 03:38+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
|
|
@ -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-08-23 06:53+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:39+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <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-08-24 03:39+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
@ -124,7 +124,7 @@ msgstr "Kvarvarande"
|
|||
#: field:account.tax.template,base_sign:0
|
||||
#: field:account.tax.template,ref_base_sign:0
|
||||
msgid "Base Code Sign"
|
||||
msgstr "Baskodsbelopp"
|
||||
msgstr "Baskodstecken"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.wizard,name:account.wizard_unreconcile_select
|
||||
|
@ -1505,7 +1505,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: model:account.account.type,name:account.account_type_income
|
||||
msgid "Income"
|
||||
msgstr "Intäkt"
|
||||
msgstr "Intäkter"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.bank.statement.line,type:0
|
||||
|
@ -2636,7 +2636,7 @@ msgstr "Skapa faktura"
|
|||
#. module: account
|
||||
#: model:account.account.type,name:account.account_type_cash_equity
|
||||
msgid "Equity"
|
||||
msgstr "Värdeökning"
|
||||
msgstr "Eget kapital"
|
||||
|
||||
#. module: account
|
||||
#: field:wizard.company.setup,overdue_msg:0
|
||||
|
|
|
@ -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-08-23 06:48+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:25+0000\n"
|
||||
"Last-Translator: Omer Barlas <omer@barlas.com.tr>\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-08-24 03:39+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
|
|
@ -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-08-23 06:39+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 09:54+0000\n"
|
||||
"Last-Translator: Jeff Wang <wjfonhand@hotmail.com>\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-08-24 03:39+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:57+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
|
|
@ -84,7 +84,7 @@ class account_installer(osv.osv_memory):
|
|||
}
|
||||
|
||||
def on_change_tax(self, cr, uid, id, tax):
|
||||
return{'value':{'purchase_tax':tax}}
|
||||
return {'value':{'purchase_tax':tax}}
|
||||
|
||||
def on_change_start_date(self, cr, uid, id, start_date):
|
||||
if start_date:
|
||||
|
@ -319,15 +319,15 @@ class account_installer(osv.osv_memory):
|
|||
seq_sale = {
|
||||
'name': 'Sale Journal',
|
||||
'code': 'account.journal',
|
||||
'prefix': 'INV/',
|
||||
'padding': 4
|
||||
'prefix': '%(year)s/',
|
||||
'padding': 3
|
||||
}
|
||||
seq_id_sale = obj_sequence.create(cr, uid, seq_sale)
|
||||
seq_purchase = {
|
||||
'name': 'Purchase Journal',
|
||||
'code': 'account.journal',
|
||||
'prefix': 'VEN/',
|
||||
'padding': 4
|
||||
'prefix': '%(year)s/',
|
||||
'padding': 3
|
||||
}
|
||||
seq_id_purchase = obj_sequence.create(cr, uid, seq_purchase)
|
||||
else:
|
||||
|
@ -583,8 +583,8 @@ class account_bank_accounts_wizard(osv.osv_memory):
|
|||
_columns = {
|
||||
'acc_name': fields.char('Account Name.', size=64, required=True),
|
||||
'bank_account_id': fields.many2one('wizard.multi.charts.accounts', 'Bank Account', required=True),
|
||||
'currency_id': fields.many2one('res.currency', 'Currency'),
|
||||
'account_type': fields.selection([('cash','Cash'),('check','Check'),('bank','Bank')], 'Type', size=32),
|
||||
'currency_id': fields.many2one('res.currency', 'Secondary Currency', help="Forces all moves for this account to have this secondary currency."),
|
||||
'account_type': fields.selection([('cash','Cash'),('check','Check'),('bank','Bank')], 'Account Type', size=32),
|
||||
}
|
||||
_defaults = {
|
||||
'currency_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.currency_id.id,
|
||||
|
|
|
@ -219,7 +219,7 @@ class account_invoice(osv.osv):
|
|||
|
||||
_name = "account.invoice"
|
||||
_description = 'Invoice'
|
||||
_order = "id"
|
||||
_order = "id desc"
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Description', size=64, select=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
|
@ -455,9 +455,9 @@ class account_invoice(osv.osv):
|
|||
def onchange_payment_term_date_invoice(self, cr, uid, ids, payment_term_id, date_invoice):
|
||||
if not payment_term_id:
|
||||
return {}
|
||||
res={}
|
||||
pt_obj= self.pool.get('account.payment.term')
|
||||
if not date_invoice :
|
||||
res = {}
|
||||
pt_obj = self.pool.get('account.payment.term')
|
||||
if not date_invoice:
|
||||
date_invoice = time.strftime('%Y-%m-%d')
|
||||
|
||||
pterm_list = pt_obj.compute(cr, uid, payment_term_id, value=1, date_ref=date_invoice)
|
||||
|
@ -465,7 +465,7 @@ class account_invoice(osv.osv):
|
|||
if pterm_list:
|
||||
pterm_list = [line[0] for line in pterm_list]
|
||||
pterm_list.sort()
|
||||
res= {'value':{'date_due': pterm_list[-1]}}
|
||||
res = {'value':{'date_due': pterm_list[-1]}}
|
||||
else:
|
||||
raise osv.except_osv(_('Data Insufficient !'), _('The Payment Term of Supplier does not have Payment Term Lines(Computation) defined !'))
|
||||
|
||||
|
@ -523,7 +523,7 @@ class account_invoice(osv.osv):
|
|||
obj_l = account_obj.browse(cr, uid, inv_line[2]['account_id'])
|
||||
if obj_l.company_id.id != company_id:
|
||||
raise osv.except_osv(_('Configuration Error !'),
|
||||
_('invoice line account company is not match with invoice company.'))
|
||||
_('Invoice line account company does not match with invoice company.'))
|
||||
else:
|
||||
continue
|
||||
if company_id and type:
|
||||
|
@ -630,7 +630,7 @@ class account_invoice(osv.osv):
|
|||
context.update({'lang': partner.lang})
|
||||
for taxe in ait_obj.compute(cr, uid, id, context=context).values():
|
||||
ait_obj.create(cr, uid, taxe)
|
||||
# Update the stored value (fields.function), so we write to trigger recompute
|
||||
# Update the stored value (fields.function), so we write to trigger recompute
|
||||
self.pool.get('account.invoice').write(cr, uid, ids, {'invoice_line':[]}, context=context)
|
||||
return True
|
||||
|
||||
|
@ -801,7 +801,7 @@ class account_invoice(osv.osv):
|
|||
# one move line per tax line
|
||||
iml += ait_obj.move_line_get(cr, uid, inv.id)
|
||||
|
||||
entry_type=''
|
||||
entry_type = ''
|
||||
if inv.type in ('in_invoice', 'in_refund'):
|
||||
ref = inv.reference
|
||||
entry_type = 'journal_pur_voucher'
|
||||
|
@ -874,7 +874,7 @@ class account_invoice(osv.osv):
|
|||
|
||||
line = self.group_lines(cr, uid, iml, line, inv)
|
||||
|
||||
journal_id = inv.journal_id.id
|
||||
journal_id = inv.journal_id.id
|
||||
journal = self.pool.get('account.journal').browse(cr, uid, journal_id)
|
||||
if journal.centralisation:
|
||||
raise osv.except_osv(_('UserError'),
|
||||
|
@ -890,11 +890,11 @@ class account_invoice(osv.osv):
|
|||
'type': entry_type,
|
||||
'narration':inv.comment
|
||||
}
|
||||
period_id=inv.period_id and inv.period_id.id or False
|
||||
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'))])
|
||||
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):
|
||||
period_id=period_ids[0]
|
||||
period_id = period_ids[0]
|
||||
if period_id:
|
||||
move['period_id'] = period_id
|
||||
for i in line:
|
||||
|
@ -1017,9 +1017,9 @@ class account_invoice(osv.osv):
|
|||
|
||||
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
|
||||
if not args:
|
||||
args=[]
|
||||
args = []
|
||||
if context is None:
|
||||
context={}
|
||||
context = {}
|
||||
ids = []
|
||||
if name:
|
||||
ids = self.search(cr, user, [('number','=',name)]+ args, limit=limit, context=context)
|
||||
|
@ -1486,7 +1486,7 @@ class account_invoice_tax(osv.osv):
|
|||
def base_change(self, cr, uid, ids, base, currency_id=False, company_id=False, date_invoice=False):
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
company_obj = self.pool.get('res.company')
|
||||
company_currency=False
|
||||
company_currency = False
|
||||
if company_id:
|
||||
company_currency = company_obj.read(cr, uid, [company_id], ['currency_id'])[0]['currency_id'][0]
|
||||
if currency_id and company_currency:
|
||||
|
@ -1496,12 +1496,18 @@ class account_invoice_tax(osv.osv):
|
|||
def amount_change(self, cr, uid, ids, amount, currency_id=False, company_id=False, date_invoice=False):
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
company_obj = self.pool.get('res.company')
|
||||
company_currency=False
|
||||
company_currency = False
|
||||
tax_amount = self.read(cr, uid, ids[0], ['tax_amount'])['tax_amount']
|
||||
tax_sign = 1
|
||||
if tax_amount < 0:
|
||||
tax_sign = -1
|
||||
elif tax_amount == 0:
|
||||
tax_sign = 0
|
||||
if company_id:
|
||||
company_currency = company_obj.read(cr, uid, [company_id], ['currency_id'])[0]['currency_id'][0]
|
||||
if currency_id and company_currency:
|
||||
amount = cur_obj.compute(cr, uid, currency_id, company_currency, amount, context={'date': date_invoice or time.strftime('%Y-%m-%d')}, round=False)
|
||||
return {'value': {'tax_amount':amount}}
|
||||
amount = cur_obj.compute(cr, uid, currency_id, company_currency, amount*tax_sign, context={'date': date_invoice or time.strftime('%Y-%m-%d')}, round=False)
|
||||
return {'value': {'tax_amount': amount}}
|
||||
|
||||
_order = 'sequence'
|
||||
_defaults = {
|
||||
|
|
|
@ -55,7 +55,7 @@ class account_fiscal_position(osv.osv):
|
|||
if not fposition_id :
|
||||
return account_id
|
||||
for pos in fposition_id.account_ids:
|
||||
if pos.account_src_id.id==account_id:
|
||||
if pos.account_src_id.id == account_id:
|
||||
account_id = pos.account_dest_id.id
|
||||
break
|
||||
return account_id
|
||||
|
|
|
@ -130,8 +130,8 @@
|
|||
<act_window
|
||||
id="action_analytic_open"
|
||||
name="Analytic Accounts"
|
||||
res_model="account.analytic.account"
|
||||
domain="[('partner_id','=',active_id)]"
|
||||
res_model="account.analytic.account"
|
||||
context="{'search_default_partner_id':[active_id]}"
|
||||
src_model="res.partner"
|
||||
view_type="form"
|
||||
view_mode="tree,form,graph,calendar"/>
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
<field name="type">tree</field>
|
||||
<field name="field_parent">child_ids</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree toolbar="True" colors="red:(date<=current_date);black:(date>current_date)" string="Analytic account">
|
||||
<tree toolbar="True" colors="red:(date<current_date);black:(date>=current_date);black:(date==False)" string="Analytic account">
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="quantity"/>
|
||||
|
|
|
@ -154,7 +154,7 @@ class account_analytic_balance(report_sxw.rml_parse):
|
|||
|
||||
report_sxw.report_sxw('report.account.analytic.account.balance',
|
||||
'account.analytic.account', 'addons/account/project/report/analytic_balance.rml',
|
||||
parser=account_analytic_balance, header=False)
|
||||
parser=account_analytic_balance, header="internal")
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -95,6 +95,6 @@ class account_analytic_analytic_check(report_sxw.rml_parse):
|
|||
def _delta_cred(self, date1, date2):
|
||||
return (self._gen_cred(date1,date2)-self._ana_cred(date1,date2))
|
||||
|
||||
report_sxw.report_sxw('report.account.analytic.account.analytic.check', 'account.analytic.account', 'addons/account/project/report/analytic_check.rml',parser=account_analytic_analytic_check, header=False)
|
||||
report_sxw.report_sxw('report.account.analytic.account.analytic.check', 'account.analytic.account', 'addons/account/project/report/analytic_check.rml',parser=account_analytic_analytic_check, header="internal")
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -57,7 +57,7 @@ class account_analytic_journal(report_sxw.rml_parse):
|
|||
res = self.cr.dictfetchone()
|
||||
return res['sum'] or 0
|
||||
|
||||
report_sxw.report_sxw('report.account.analytic.journal', 'account.analytic.journal', 'addons/account/project/report/analytic_journal.rml',parser=account_analytic_journal,header=False)
|
||||
report_sxw.report_sxw('report.account.analytic.journal', 'account.analytic.journal', 'addons/account/project/report/analytic_journal.rml',parser=account_analytic_journal,header="internal")
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -108,7 +108,7 @@ class account_analytic_cost_ledger(report_sxw.rml_parse):
|
|||
credit = self._sum_credit(accounts, date1, date2) or 0.0
|
||||
return (debit-credit)
|
||||
|
||||
report_sxw.report_sxw('report.account.analytic.account.cost_ledger', 'account.analytic.account', 'addons/account/project/report/cost_ledger.rml',parser=account_analytic_cost_ledger, header=False)
|
||||
report_sxw.report_sxw('report.account.analytic.account.cost_ledger', 'account.analytic.account', 'addons/account/project/report/cost_ledger.rml',parser=account_analytic_cost_ledger, header="internal")
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -120,7 +120,7 @@ class account_inverted_analytic_balance(report_sxw.rml_parse):
|
|||
WHERE account_id IN %s AND date>=%s AND date<=%s", (tuple(ids),date1, date2,))
|
||||
return self.cr.fetchone()[0] or 0.0
|
||||
|
||||
report_sxw.report_sxw('report.account.analytic.account.inverted.balance', 'account.analytic.account', 'addons/account/project/report/inverted_analytic_balance.rml',parser=account_inverted_analytic_balance, header=False)
|
||||
report_sxw.report_sxw('report.account.analytic.account.inverted.balance', 'account.analytic.account', 'addons/account/project/report/inverted_analytic_balance.rml',parser=account_inverted_analytic_balance, header="internal")
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -120,6 +120,6 @@ class account_analytic_quantity_cost_ledger(report_sxw.rml_parse):
|
|||
report_sxw.report_sxw('report.account.analytic.account.quantity_cost_ledger',
|
||||
'account.analytic.account',
|
||||
'addons/account/project/report/quantity_cost_ledger.rml',
|
||||
parser=account_analytic_quantity_cost_ledger, header=False)
|
||||
parser=account_analytic_quantity_cost_ledger, header="internal")
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -216,7 +216,7 @@ class aged_trial_report(rml_parse.rml_parse, common_report_header):
|
|||
return ''
|
||||
|
||||
report_sxw.report_sxw('report.account.aged_trial_balance', 'res.partner',
|
||||
'addons/account/report/account_aged_partner_balance.rml',parser=aged_trial_report, header=False)
|
||||
'addons/account/report/account_aged_partner_balance.rml',parser=aged_trial_report, header="internal landscape")
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -57,10 +57,10 @@ class account_balance(report_sxw.rml_parse, common_report_header):
|
|||
self.query_get_clause = data['form'].get('query_line', False) or ''
|
||||
return super(account_balance, self).set_context(objects, data, new_ids, report_type=report_type)
|
||||
|
||||
def _add_header(self, node, header=1):
|
||||
if header == 0:
|
||||
self.rml_header = ""
|
||||
return True
|
||||
#def _add_header(self, node, header=1):
|
||||
# if header == 0:
|
||||
# self.rml_header = ""
|
||||
# return True
|
||||
|
||||
def _get_account(self, data):
|
||||
if data['model']=='account.account':
|
||||
|
@ -121,4 +121,4 @@ class account_balance(report_sxw.rml_parse, common_report_header):
|
|||
|
||||
report_sxw.report_sxw('report.account.account.balance', 'account.account', 'addons/account/report/account_balance.rml', parser=account_balance, header="internal")
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -395,6 +395,6 @@ class account_balance_landscape(rml_parse.rml_parse):
|
|||
def total_cr(self):
|
||||
return self.cr_total
|
||||
|
||||
report_sxw.report_sxw('report.account.account.balance.landscape', 'account.account', 'addons/account/report/account_balance_landscape.rml', parser=account_balance_landscape, header=False)
|
||||
report_sxw.report_sxw('report.account.account.balance.landscape', 'account.account', 'addons/account/report/account_balance_landscape.rml', parser=account_balance_landscape, header="internal landscape")
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
|
|
@ -196,10 +196,10 @@ class report_balancesheet_horizontal(rml_parse.rml_parse, common_report_header):
|
|||
|
||||
report_sxw.report_sxw('report.account.balancesheet.horizontal', 'account.account',
|
||||
'addons/account/report/account_balance_sheet_horizontal.rml',parser=report_balancesheet_horizontal,
|
||||
header='internal')
|
||||
header='internal landscape')
|
||||
|
||||
report_sxw.report_sxw('report.account.balancesheet', 'account.account',
|
||||
'addons/account/report/account_balance_sheet.rml',parser=report_balancesheet_horizontal,
|
||||
header='internal')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -240,6 +240,6 @@ class general_ledger(rml_parse.rml_parse, common_report_header):
|
|||
return 'Date'
|
||||
|
||||
report_sxw.report_sxw('report.account.general.ledger', 'account.account', 'addons/account/report/account_general_ledger.rml', parser=general_ledger, header='internal')
|
||||
report_sxw.report_sxw('report.account.general.ledger_landscape', 'account.account', 'addons/account/report/account_general_ledger_landscape.rml', parser=general_ledger, header='internal')
|
||||
report_sxw.report_sxw('report.account.general.ledger_landscape', 'account.account', 'addons/account/report/account_general_ledger_landscape.rml', parser=general_ledger, header='internal landscape')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -156,10 +156,9 @@
|
|||
<menuitem action="action_account_invoice_report_all" id="menu_action_account_invoice_report_all" parent="account.menu_finance_statistic_report_statement" sequence="0"/>
|
||||
|
||||
<act_window
|
||||
domain="[('partner_id', '=', active_id)]"
|
||||
id="act_account_invoice_partner_relation"
|
||||
name="Monthly Turnover"
|
||||
context="{'search_default_month':1,'search_default_user':1,'group_by_no_leaf':1,'group_by':[]}"
|
||||
context="{'search_default_partner_id':[active_id], 'search_default_month':1,'search_default_user':1,'group_by_no_leaf':1,'group_by':[]}"
|
||||
res_model="account.invoice.report"
|
||||
src_model="res.partner"/>
|
||||
|
||||
|
|
|
@ -170,9 +170,9 @@ class report_pl_account_horizontal(rml_parse.rml_parse, common_report_header):
|
|||
return self.result.get(group, [])
|
||||
|
||||
report_sxw.report_sxw('report.pl.account.horizontal', 'account.account',
|
||||
'addons/account/report/account_profit_horizontal.rml',parser=report_pl_account_horizontal, header='internal')
|
||||
'addons/account/report/account_profit_horizontal.rml',parser=report_pl_account_horizontal, header='internal landscape')
|
||||
|
||||
report_sxw.report_sxw('report.pl.account', 'account.account',
|
||||
'addons/account/report/account_profit_loss.rml',parser=report_pl_account_horizontal, header='internal')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -63,6 +63,6 @@ class account_tax_code_report(rml_parse.rml_parse):
|
|||
.browse(self.cr, self.uid, line_ids))
|
||||
|
||||
report_sxw.report_sxw('report.account.tax.code.entries', 'account.tax.code',
|
||||
'addons/account/report/account_tax_code.rml', parser=account_tax_code_report, header=False)
|
||||
'addons/account/report/account_tax_code.rml', parser=account_tax_code_report, header="internal")
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -392,6 +392,6 @@ class account_balance(report_sxw.rml_parse):
|
|||
def total_cr(self):
|
||||
return self.cr_total
|
||||
|
||||
report_sxw.report_sxw('report.account.balance.account.balance', 'account.account', 'addons/account/report/account_balance.rml', parser=account_balance, header=False)
|
||||
report_sxw.report_sxw('report.account.balance.account.balance', 'account.account', 'addons/account/report/account_balance.rml', parser=account_balance, header="internal")
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
|
|
@ -150,13 +150,3 @@ class rml_parse(report_sxw.rml_parse):
|
|||
else:
|
||||
return Stringer
|
||||
|
||||
def _add_header(self, node, header=1):
|
||||
if header==2:
|
||||
rml_head = self.rml_header2
|
||||
else:
|
||||
rml_head = self.rml_header
|
||||
rml_head = rml_head.replace('<pageGraphics>','''<pageGraphics> <image x="10" y="26cm" height="770.0" width="1120.0" >[[company.logo]] </image> ''')
|
||||
return True
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -217,6 +217,6 @@ class tax_report(rml_parse.rml_parse):
|
|||
|
||||
|
||||
report_sxw.report_sxw('report.account.vat.declaration', 'account.tax.code',
|
||||
'addons/account/report/tax_report.rml', parser=tax_report, header=True)
|
||||
'addons/account/report/tax_report.rml', parser=tax_report, header="internal")
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -58,5 +58,5 @@ report_sxw.report_sxw(
|
|||
'report.account.move.voucher',
|
||||
'account.move',
|
||||
'addons/account/report/voucher_print.rml',
|
||||
parser=report_voucher_move,header=False
|
||||
parser=report_voucher_move,header="external"
|
||||
)
|
||||
|
|
|
@ -47,96 +47,10 @@
|
|||
-
|
||||
!assert {model: account.invoice, id: account_invoice_customer0}:
|
||||
- state == 'open'
|
||||
|
||||
|
||||
-
|
||||
I check that now there is a move attached to the invoice
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
acc_id=self.browse(cr, uid, ref("account_invoice_customer0"))
|
||||
assert acc_id.move_id, "Move created"
|
||||
-
|
||||
I create a record for partial payment of 1000 EUR.
|
||||
-
|
||||
!record {model: account.invoice.pay, id: account_invoice_pay_first0}:
|
||||
amount: 1000.0
|
||||
date: '2010-05-26'
|
||||
journal_id: account.sales_journal
|
||||
name: First payment for [PC3] Medium PC to Distrib PC
|
||||
period_id: account.period_5
|
||||
-
|
||||
I make partial payment by clicking on Partial Payment button
|
||||
-
|
||||
!python {model: account.invoice.pay}: |
|
||||
self.pay_and_reconcile(cr, uid, [ref("account_invoice_pay_first0")], {"lang":
|
||||
'en_US', "active_model": "account.invoice", "tz": False, "record_id": 3, "active_ids":
|
||||
[ref("account_invoice_customer0")], "type": "out_invoice", "active_id": ref("account_invoice_customer0"),
|
||||
})
|
||||
-
|
||||
I check that the invoice state is still open
|
||||
-
|
||||
!assert {model: account.invoice, id: account_invoice_customer0}:
|
||||
- state == 'open'
|
||||
-
|
||||
I make second partial payment of 6000 EUR.
|
||||
-
|
||||
!record {model: account.invoice.pay, id: account_invoice_pay_second0}:
|
||||
amount: 6000.0
|
||||
date: '2010-05-28'
|
||||
journal_id: account.sales_journal
|
||||
name: Second payment for [PC3] Medium PC to Distrib PC
|
||||
period_id: account.period_5
|
||||
-
|
||||
I make partial payment by clicking on Partial Payment button
|
||||
|
||||
-
|
||||
!python {model: account.invoice.pay}: |
|
||||
self.pay_and_reconcile(cr, uid, [ref("account_invoice_pay_second0")], {"lang":
|
||||
'en_US', "active_model": "account.invoice", "tz": False, "record_id": 3, "active_ids":
|
||||
[ref("account_invoice_customer0")], "type": "out_invoice", "active_id": ref("account_invoice_customer0"),
|
||||
})
|
||||
-
|
||||
I make final partial payment of 2000 EUR
|
||||
-
|
||||
!record {model: account.invoice.pay, id: account_invoice_pay_final0}:
|
||||
amount: 2000.0
|
||||
date: '2010-05-30'
|
||||
journal_id: account.sales_journal
|
||||
name: Final payment for [PC3] Medium PC to Distrib PC
|
||||
period_id: account.period_5
|
||||
|
||||
-
|
||||
I make partial payment by clicking on Partial Payment button
|
||||
|
||||
-
|
||||
!python {model: account.invoice.pay}: |
|
||||
self.pay_and_reconcile(cr, uid, [ref("account_invoice_pay_final0")], {"lang":
|
||||
'en_US', "active_model": "account.invoice", "tz": False, "record_id": 3, "active_ids":
|
||||
[ref("account_invoice_customer0")], "type": "out_invoice", "active_id": ref("account_invoice_customer0"),
|
||||
})
|
||||
|
||||
-
|
||||
I check that the invoice state is now Done
|
||||
-
|
||||
!assert {model: account.invoice, id: account_invoice_customer0}:
|
||||
- state == 'paid'
|
||||
-
|
||||
I check that an payment entry gets created in the account.move.line
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
acc_id=self.browse(cr, uid, ref("account_invoice_customer0"))
|
||||
assert(acc_id.move_id)
|
||||
-
|
||||
I refund the invoice Using Credit Note
|
||||
-
|
||||
!record {model: account.invoice.refund, id: account_invoice_refund_0}:
|
||||
description: Refund To China Export
|
||||
period: account.period_5
|
||||
-
|
||||
I clicked on refund button
|
||||
-
|
||||
!python {model: account.invoice.refund}: |
|
||||
self.invoice_refund(cr, uid, [ref("account_invoice_refund_0")], {"lang": 'en_US', "tz": False, "active_model": "account.invoice", "active_ids": [ref("account.account_invoice_customer0")], "type": "out_invoice", "active_id": ref("account.account_invoice_customer0"), })
|
||||
-
|
||||
I checked that a new entry with state "Draft" created in account move line
|
||||
|
||||
|
||||
|
|
|
@ -32,55 +32,4 @@
|
|||
I check that the invoice state is now "Open"
|
||||
-
|
||||
!assert {model: account.invoice, id: account_invoice_supplier0}:
|
||||
- state == 'open'
|
||||
-
|
||||
I make a partial payment of 2000 EUR
|
||||
-
|
||||
!record {model: account.invoice.pay, id: account_invoice_pay_firstpaymenttoaxelorforbasicpc0}:
|
||||
amount: 2000.0
|
||||
date: '2010-05-29'
|
||||
journal_id: account.sales_journal
|
||||
name: First Payment to Axelor for Basic PC
|
||||
period_id: account.period_5
|
||||
-
|
||||
I make partial payment by clicking on Partial Payment button
|
||||
-
|
||||
!python {model: account.invoice.pay}: |
|
||||
self.pay_and_reconcile(cr, uid, [ref("account_invoice_pay_firstpaymenttoaxelorforbasicpc0")],
|
||||
{"lang": 'en_US', "active_model": "account.invoice", "tz": False, "record_id":
|
||||
25, "active_ids": [ref("account_invoice_supplier0")], "type": "in_invoice", "active_id":
|
||||
ref("account_invoice_supplier0"), })
|
||||
-
|
||||
I check that the invoice state is still "Open"
|
||||
-
|
||||
!assert {model: account.invoice, id: account_invoice_supplier0}:
|
||||
- state == 'open'
|
||||
-
|
||||
I make final partial payment of 1000 EUR
|
||||
-
|
||||
!record {model: account.invoice.pay, id: account_invoice_pay_finalpaymenttoaxelorforbasicpc0}:
|
||||
amount: 1000.0
|
||||
date: '2010-06-17'
|
||||
journal_id: account.sales_journal
|
||||
name: Final Payment to Axelor for Basic PC
|
||||
period_id: account.period_5
|
||||
-
|
||||
I make partial payment by clicking on Partial Payment button
|
||||
-
|
||||
!python {model: account.invoice.pay}: |
|
||||
self.pay_and_reconcile(cr, uid, [ref("account_invoice_pay_finalpaymenttoaxelorforbasicpc0")],
|
||||
{"lang": 'en_US', "active_model": "account.invoice", "tz": False, "record_id":
|
||||
25, "active_ids": [ref("account_invoice_supplier0")], "type": "in_invoice", "active_id":
|
||||
ref("account_invoice_supplier0"), })
|
||||
|
||||
-
|
||||
I check that the invoice state is now "Done"
|
||||
-
|
||||
!assert {model: account.invoice, id: account_invoice_supplier0}:
|
||||
- state == 'paid'
|
||||
-
|
||||
I check that an payment entry gets created in the account move line
|
||||
-
|
||||
!python {model: account.invoice}: |
|
||||
acc_id=self.browse(cr, uid, ref("account_invoice_supplier0"))
|
||||
assert(acc_id.move_id)
|
||||
- state == 'open'
|
|
@ -31,7 +31,6 @@ import account_reconcile_partner_process
|
|||
import account_reconcile
|
||||
import account_unreconcile
|
||||
import account_invoice_refund
|
||||
import account_pay_invoice
|
||||
import account_move_journal
|
||||
import account_journal_select
|
||||
import account_move_bank_reconcile
|
||||
|
@ -48,6 +47,7 @@ import account_open_closed_fiscalyear
|
|||
import account_compare_account_balance_report
|
||||
import account_invoice_state
|
||||
import account_chart
|
||||
import account_tax_chart
|
||||
#TODO: remove this file no moe used
|
||||
# also remove related view fiel
|
||||
|
||||
|
|
|
@ -33,10 +33,11 @@ class account_change_currency(osv.osv_memory):
|
|||
obj_inv = self.pool.get('account.invoice')
|
||||
if context is None:
|
||||
context = {}
|
||||
state = obj_inv.browse(cr, uid, context['active_id']).state
|
||||
if obj_inv.browse(cr, uid, context['active_id']).state != 'draft':
|
||||
raise osv.except_osv(_('Error'), _('You can only change currency for Draft Invoice !'))
|
||||
pass
|
||||
if context.get('active_id',False):
|
||||
state = obj_inv.browse(cr, uid, context['active_id']).state
|
||||
if obj_inv.browse(cr, uid, context['active_id']).state != 'draft':
|
||||
raise osv.except_osv(_('Error'), _('You can only change currency for Draft Invoice !'))
|
||||
pass
|
||||
|
||||
def change_currency(self, cr, uid, ids, context=None):
|
||||
obj_inv = self.pool.get('account.invoice')
|
||||
|
|
|
@ -18,15 +18,16 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
|
||||
class account_chart(osv.osv_memory):
|
||||
"""
|
||||
For Chart of Accounrs
|
||||
For Chart of Accounts
|
||||
"""
|
||||
_name = "account.chart"
|
||||
_description = "chart"
|
||||
_description = "Account chart"
|
||||
_columns = {
|
||||
'fiscalyear': fields.many2one('account.fiscalyear', \
|
||||
'Fiscal year', \
|
||||
|
@ -37,11 +38,9 @@ class account_chart(osv.osv_memory):
|
|||
|
||||
def _get_fiscalyear(self, cr, uid, context=None):
|
||||
"""Return default Fiscalyear value"""
|
||||
fiscalyear_obj = self.pool.get('account.fiscalyear')
|
||||
fiscalyear = fiscalyear_obj.find(cr, uid)
|
||||
return fiscalyear
|
||||
return self.pool.get('account.fiscalyear').find(cr, uid)
|
||||
|
||||
def account_chart_open_window(self, cr, uid, ids, context={}):
|
||||
def account_chart_open_window(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Opens chart of Accounts
|
||||
@param cr: the current row, from the database cursor,
|
||||
|
@ -51,6 +50,8 @@ class account_chart(osv.osv_memory):
|
|||
"""
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
act_obj = self.pool.get('ir.actions.act_window')
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
result = mod_obj._get_id(cr, uid, 'account', 'action_account_tree')
|
||||
id = mod_obj.read(cr, uid, [result], ['res_id'], context=context)[0]['res_id']
|
||||
|
@ -65,6 +66,7 @@ class account_chart(osv.osv_memory):
|
|||
'fiscalyear': _get_fiscalyear,
|
||||
'target_move': 'all'
|
||||
}
|
||||
|
||||
account_chart()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -36,6 +36,7 @@ class account_invoice_refund(osv.osv_memory):
|
|||
'period': fields.many2one('account.period', 'Force period'),
|
||||
'journal_id': fields.many2one('account.journal', 'Refund Journal', help='You can select here the journal to use for the refund invoice that will be created. If you leave that field empty, it will use the same journal as the current invoice.'),
|
||||
'description': fields.char('Description', size=128, required=True),
|
||||
'filter_refund': fields.selection([('modify', 'Modify'), ('refund', 'Refund'), ('cancel', 'Cancel')], "Refund Type", required=True, help='Refund invoice base on this type. You can not Modify and Cancel if the invoice is already rencociled'),
|
||||
}
|
||||
|
||||
def _get_journal(self, cr, uid, context=None):
|
||||
|
@ -50,7 +51,8 @@ class account_invoice_refund(osv.osv_memory):
|
|||
|
||||
_defaults = {
|
||||
'date': time.strftime('%Y-%m-%d'),
|
||||
'journal_id': _get_journal
|
||||
'journal_id': _get_journal,
|
||||
'filter_refund': 'modify',
|
||||
}
|
||||
|
||||
def compute_refund(self, cr, uid, ids, mode='refund', context=None):
|
||||
|
@ -66,6 +68,8 @@ class account_invoice_refund(osv.osv_memory):
|
|||
mod_obj = self.pool.get('ir.model.data')
|
||||
act_obj = self.pool.get('ir.actions.act_window')
|
||||
wf_service = netsvc.LocalService('workflow')
|
||||
inv_tax_obj = self.pool.get('account.invoice.tax')
|
||||
inv_line_obj = self.pool.get('account.invoice.line')
|
||||
|
||||
if context is None:
|
||||
context = {}
|
||||
|
@ -76,15 +80,19 @@ class account_invoice_refund(osv.osv_memory):
|
|||
period = False
|
||||
description = False
|
||||
company = self.pool.get('res.users').browse(cr, uid, uid).company_id
|
||||
journal_id = form.get('journal_id', False)
|
||||
for inv in inv_obj.browse(cr, uid, context.get('active_ids'), context=context):
|
||||
if inv.state in ['draft', 'proforma2', 'cancel']:
|
||||
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'] :
|
||||
period = form['period']
|
||||
else:
|
||||
period = inv.period_id and inv.period_id.id or False
|
||||
|
||||
journal_id = form.get('journal_id', False)
|
||||
if not journal_id:
|
||||
journal_id = inv.journal_id.id
|
||||
|
||||
if form['date'] :
|
||||
date = form['date']
|
||||
|
@ -153,10 +161,9 @@ class account_invoice_refund(osv.osv_memory):
|
|||
'journal_id', 'period_id'], context=context)
|
||||
invoice = invoice[0]
|
||||
del invoice['id']
|
||||
invoice_lines = self.pool.get('account.invoice.line').read(cr, uid, invoice['invoice_line'], context=context)
|
||||
invoice_lines = inv_line_obj.read(cr, uid, invoice['invoice_line'], context=context)
|
||||
invoice_lines = inv_obj._refund_cleanup_lines(cr, uid, invoice_lines)
|
||||
tax_lines = self.pool.get('account.invoice.tax').read(
|
||||
cr, uid, invoice['tax_line'], context=context)
|
||||
tax_lines = inv_tax_obj.read(cr, uid, invoice['tax_line'], context=context)
|
||||
tax_lines = inv_obj._refund_cleanup_lines(cr, uid, tax_lines)
|
||||
|
||||
invoice.update({
|
||||
|
@ -196,14 +203,9 @@ class account_invoice_refund(osv.osv_memory):
|
|||
return result
|
||||
|
||||
def invoice_refund(self, cr, uid, ids, context=None):
|
||||
return self.compute_refund(cr, uid, ids, 'refund', context=context)
|
||||
|
||||
def invoice_cancel(self, cr, uid, ids, context=None):
|
||||
return self.compute_refund(cr, uid, ids, 'cancel', context=context)
|
||||
|
||||
def invoice_modify(self, cr, uid, ids, context=None):
|
||||
return self.compute_refund(cr, uid, ids, 'modify', context=context)
|
||||
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()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -14,19 +14,18 @@
|
|||
<field name="journal_id"/>
|
||||
<field name="date"/>
|
||||
<field name="period"/>
|
||||
<field name="filter_refund"/>
|
||||
</group>
|
||||
<separator colspan="4"/>
|
||||
<group col="4" colspan="4" fill="1">
|
||||
<label align="0.0" width="300" string="Refund Invoice: creates the refund invoice, ready for editing."/>
|
||||
<label align="0.0" width="500" colspan="4" string="Cancel Invoice: creates the refund invoice, validate and reconcile it to cancel the current invoice."/>
|
||||
<label align="0.0" width="550" colspan="4" string="Modify Invoice: cancels the current invoice and creates a new copy of it ready for editing."/>
|
||||
<label align="0.0" width="550" colspan="4" string="Modify Invoice: Cancels the current invoice and creates a new copy of it ready for editing."/>
|
||||
<label align="0.0" width="300" string="Refund Invoice: Creates the refund invoice, ready for editing."/>
|
||||
<label align="0.0" width="500" colspan="4" string="Cancel Invoice: Creates the refund invoice, validate and reconcile it to cancel the current invoice."/>
|
||||
</group>
|
||||
<separator colspan="4"/>
|
||||
<group colspan="4" col="6">
|
||||
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
|
||||
<button icon="gtk-redo" string="Refund Invoice" name="invoice_refund" type="object"/>
|
||||
<button icon="gtk-ok" string="Cancel Invoice" name="invoice_cancel" type="object"/>
|
||||
<button icon="gtk-undo" string="Modify Invoice" name="invoice_modify" type="object"/>
|
||||
<button string='Refund' icon="gtk-execute" name="invoice_refund" type="object"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
<!-- </record>-->
|
||||
<!-- <menuitem action="action_account_moves_sale_refund" sequence="5" id="menu_eaction_account_moves_sale_refund" parent="menu_finance_payables" icon="STOCK_JUSTIFY_FILL"/>-->
|
||||
|
||||
<record id="action_account_moves_all" model="ir.actions.act_window">
|
||||
<record id="action_account_moves_bank" model="ir.actions.act_window">
|
||||
<field name="name">Journal Items</field>
|
||||
<field name="res_model">account.move.journal</field>
|
||||
<field name="view_type">form</field>
|
||||
|
@ -67,10 +67,10 @@
|
|||
</record>
|
||||
|
||||
<menuitem
|
||||
action="action_account_moves_all"
|
||||
action="action_account_moves_bank"
|
||||
icon="STOCK_JUSTIFY_FILL"
|
||||
id="menu_eaction_account_moves_all"
|
||||
parent="account.menu_finance_entries"
|
||||
id="menu_action_account_moves_bank"
|
||||
parent="account.menu_finance_bank_and_cash"
|
||||
sequence="4"
|
||||
groups="group_account_user,group_account_manager,base.group_system"
|
||||
/>
|
||||
|
|
|
@ -1,201 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
import decimal_precision as dp
|
||||
|
||||
class account_invoice_pay_writeoff(osv.osv_memory):
|
||||
"""
|
||||
Opens the write off amount pay form.
|
||||
"""
|
||||
_name = "account.invoice.pay.writeoff"
|
||||
_description = "Pay Invoice "
|
||||
_columns = {
|
||||
'writeoff_acc_id': fields.many2one('account.account', 'Write-Off account', required=True),
|
||||
'writeoff_journal_id': fields.many2one('account.journal', 'Write-Off journal', required=True),
|
||||
'comment': fields.char('Comment', size=64, required=True),
|
||||
'analytic_id': fields.many2one('account.analytic.account','Analytic Account', domain=[('parent_id', '!=', False)])
|
||||
}
|
||||
_defaults = {
|
||||
'comment': 'Write-Off',
|
||||
}
|
||||
|
||||
def pay_and_reconcile_writeoff(self, cr, uid, ids, context=None):
|
||||
data = self.read(cr, uid, ids, context=context)[0]
|
||||
context.update({'write_off': data})
|
||||
self.pool.get('account.invoice.pay').pay_and_reconcile(cr, uid, ids, context=context)
|
||||
return {}
|
||||
|
||||
account_invoice_pay_writeoff()
|
||||
|
||||
class account_invoice_pay(osv.osv_memory):
|
||||
"""
|
||||
Generate pay invoice wizard, user can make partial or full payment for invoice.
|
||||
"""
|
||||
_name = "account.invoice.pay"
|
||||
_description = "Pay Invoice "
|
||||
_columns = {
|
||||
'amount': fields.float('Amount paid', required=True, digits_compute = dp.get_precision('Account')),
|
||||
'name': fields.char('Entry Name', size=64, required=True),
|
||||
'date': fields.date('Date payment', required=True),
|
||||
'journal_id': fields.many2one('account.journal', 'Journal/Payment Mode', required=True, domain=[('type','=','cash')]),
|
||||
'period_id': fields.many2one('account.period', 'Period', required=True),
|
||||
}
|
||||
|
||||
def view_init(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
if context.get('active_id', False):
|
||||
invoice = self.pool.get('account.invoice').browse(cr, uid, context['active_id'], context=context)
|
||||
if invoice.state in ['draft', 'proforma2', 'cancel']:
|
||||
raise osv.except_osv(_('Error !'), _('Can not pay draft/proforma/cancel invoice.'))
|
||||
pass
|
||||
|
||||
def _get_period(self, cr, uid, context=None):
|
||||
period_id = False
|
||||
ids = self.pool.get('account.period').find(cr, uid, context=context)
|
||||
if len(ids):
|
||||
period_id = ids[0]
|
||||
return period_id
|
||||
|
||||
def _get_amount(self, cr, uid, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
if context.get('active_id', False):
|
||||
return self.pool.get('account.invoice').browse(cr, uid, context['active_id'], context=context).residual
|
||||
return 0.0
|
||||
|
||||
_defaults = {
|
||||
'date': time.strftime('%Y-%m-%d'),
|
||||
'period_id': _get_period,
|
||||
'amount': _get_amount,
|
||||
}
|
||||
|
||||
def wo_check(self, cr, uid, ids, context=None):
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
inv_obj = self.pool.get('account.invoice')
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.read(cr, uid, ids,context=context)[0]
|
||||
invoice = inv_obj.browse(cr, uid, context['active_id'], context)
|
||||
journal = self.pool.get('account.journal').browse(cr, uid, data['journal_id'], context)
|
||||
|
||||
# Here we need that:
|
||||
# The invoice total amount in company's currency <> paid amount in company currency
|
||||
# (according to the correct day rate, invoicing rate and payment rate are may be different)
|
||||
# => Ask to a write-off of the difference. This could happen even if both amount are equal,
|
||||
# because if the currency rate
|
||||
# Get the amount in company currency for the invoice (according to move lines)
|
||||
inv_amount_company_currency = 0
|
||||
for aml in invoice.move_id.line_id:
|
||||
if aml.account_id.id == invoice.account_id.id or aml.account_id.type in ('receivable', 'payable'):
|
||||
inv_amount_company_currency += aml.debit
|
||||
inv_amount_company_currency -= aml.credit
|
||||
inv_amount_company_currency = abs(inv_amount_company_currency)
|
||||
|
||||
# Get the current amount paid in company currency
|
||||
if journal.currency and invoice.company_id.currency_id.id<>journal.currency.id:
|
||||
ctx = {'date':data['date']}
|
||||
amount_paid = cur_obj.compute(cr, uid, journal.currency.id, invoice.company_id.currency_id.id, data['amount'], round=True, context=ctx)
|
||||
else:
|
||||
amount_paid = data['amount']
|
||||
# Get the old payment if there are some
|
||||
if invoice.payment_ids:
|
||||
debit = credit = 0.0
|
||||
for payment in invoice.payment_ids:
|
||||
debit += payment.debit
|
||||
credit += payment.credit
|
||||
amount_paid += abs(debit-credit)
|
||||
|
||||
# Test if there is a difference according to currency rouding setting
|
||||
if self.pool.get('res.currency').is_zero(cr, uid, invoice.company_id.currency_id,
|
||||
(amount_paid - inv_amount_company_currency)):
|
||||
return self.pay_and_reconcile(cr, uid, ids, context=context)
|
||||
else:
|
||||
model_data_ids = mod_obj.search(cr, uid,[('model','=','ir.ui.view'),('name','=','view_account_invoice_pay_writeoff')], context=context)
|
||||
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
return {
|
||||
'name': _('Information addendum'),
|
||||
'context': context,
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'account.invoice.pay.writeoff',
|
||||
'views': [(resource_id,'form')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
}
|
||||
|
||||
def pay_and_reconcile(self, cr, uid, ids, context=None):
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
inv_obj = self.pool.get('account.invoice')
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.read(cr, uid, ids, context=context)[0]
|
||||
writeoff_account_id = False
|
||||
writeoff_journal_id = False
|
||||
comment = False
|
||||
|
||||
if 'write_off' in context and context['write_off'] :
|
||||
writeoff_account_id = context['write_off']['writeoff_acc_id']
|
||||
writeoff_journal_id = context['write_off']['writeoff_journal_id']
|
||||
comment = context['write_off']['comment']
|
||||
|
||||
amount = data['amount']
|
||||
|
||||
invoice = inv_obj.browse(cr, uid, context['active_id'], context=context)
|
||||
journal = self.pool.get('account.journal').browse(cr, uid, data['journal_id'], context=context)
|
||||
# Compute the amount in company's currency, with the journal currency (which is equal to payment currency)
|
||||
# when it is needed : If payment currency (according to selected journal.currency) is <> from company currency
|
||||
if journal.currency and invoice.company_id.currency_id.id<>journal.currency.id:
|
||||
ctx = {'date':data['date']}
|
||||
amount = cur_obj.compute(cr, uid, journal.currency.id, invoice.company_id.currency_id.id, amount, context=ctx)
|
||||
currency_id = journal.currency.id
|
||||
# Put the paid amount in currency, and the currency, in the context if currency is different from company's currency
|
||||
context.update({'amount_currency':data['amount'],'currency_id':currency_id})
|
||||
|
||||
if invoice.company_id.currency_id.id<>invoice.currency_id.id:
|
||||
ctx = {'date':data['date']}
|
||||
amount = cur_obj.compute(cr, uid, invoice.currency_id.id, invoice.company_id.currency_id.id, amount, context=ctx)
|
||||
currency_id = invoice.currency_id.id
|
||||
# Put the paid amount in currency, and the currency, in the context if currency is different from company's currency
|
||||
context.update({'amount_currency':data['amount'],'currency_id':currency_id})
|
||||
|
||||
# Take the choosen date
|
||||
if comment:
|
||||
context.update({'date_p':data['date'],'comment':comment})
|
||||
else:
|
||||
context.update({'date_p':data['date'],'comment':False})
|
||||
|
||||
acc_id = journal.default_credit_account_id and journal.default_credit_account_id.id
|
||||
if not acc_id:
|
||||
raise osv.except_osv(_('Error !'), _('Your journal must have a default credit and debit account.'))
|
||||
inv_obj.pay_and_reconcile(cr, uid, [context['active_id']],
|
||||
amount, acc_id, data['period_id'], data['journal_id'], writeoff_account_id,
|
||||
data['period_id'], writeoff_journal_id, context, data['name'])
|
||||
return {}
|
||||
|
||||
account_invoice_pay()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -1,64 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_account_invoice_pay" model="ir.ui.view">
|
||||
<field name="name">account.invoice.pay.form</field>
|
||||
<field name="model">account.invoice.pay</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Pay invoice">
|
||||
<group colspan="4" >
|
||||
<field name="amount"/>
|
||||
<newline/>
|
||||
<field name="name"/>
|
||||
<field name="date"/>
|
||||
<field name="journal_id" widget="selection"/>
|
||||
<field name="period_id" widget="selection"/>
|
||||
</group>
|
||||
<group colspan="4" col="6">
|
||||
<label string ="" colspan="2"/>
|
||||
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
|
||||
<button icon="gtk-execute" string="Partial Payment" name="pay_and_reconcile" type="object"/>
|
||||
<button icon="gtk-execute" string="Full Payment" name="wo_check" type="object"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_account_invoice_pay" model="ir.actions.act_window">
|
||||
<field name="name">Pay Invoice</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">account.invoice.pay</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_account_invoice_pay"/>
|
||||
<field name="context">{'record_id' : active_id}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_account_invoice_pay_writeoff" model="ir.ui.view">
|
||||
<field name="name">account.invoice.pay.writeoff.form</field>
|
||||
<field name="model">account.invoice.pay.writeoff</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Information addendum">
|
||||
<group colspan="4" >
|
||||
<separator string="Write-Off Move" colspan="4"/>
|
||||
<field name="writeoff_journal_id"/>
|
||||
<field name="writeoff_acc_id" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<field name="comment"/>
|
||||
<separator string="Analytic" colspan="4"/>
|
||||
<field name="analytic_id"/>
|
||||
</group>
|
||||
<group colspan="4" col="6">
|
||||
<label string ="" colspan="2"/>
|
||||
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
|
||||
<button icon="gtk-execute" string="Pay and reconcile" name="pay_and_reconcile_writeoff" type="object"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -64,10 +64,10 @@ class account_statement_from_invoice_lines(osv.osv_memory):
|
|||
amount = -line.credit
|
||||
|
||||
if line.amount_currency:
|
||||
amount = currency_obj.compute(cursor, user, line.currency_id.id,
|
||||
amount = currency_obj.compute(cr, uid, line.currency_id.id,
|
||||
statement.currency.id, line.amount_currency, context=ctx)
|
||||
elif (line.invoice and line.invoice.currency_id.id <> statement.currency.id):
|
||||
amount = currency_obj.compute(cursor, user, line.invoice.currency_id.id,
|
||||
amount = currency_obj.compute(cr, uid, line.invoice.currency_id.id,
|
||||
statement.currency.id, amount, context=ctx)
|
||||
|
||||
reconcile_id = statement_reconcile_obj.create(cr, uid, {
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
|
||||
class account_tax_chart(osv.osv_memory):
|
||||
"""
|
||||
For Chart of taxes
|
||||
"""
|
||||
_name = "account.tax.chart"
|
||||
_description = "Account tax chart"
|
||||
_columns = {
|
||||
'period_id': fields.many2one('account.period', \
|
||||
'Period', \
|
||||
),
|
||||
'target_move': fields.selection([('all', 'All Entries'),
|
||||
('posted', 'All Posted Entries')], 'Target Moves', required=True),
|
||||
}
|
||||
|
||||
def _get_period(self, cr, uid, context=None):
|
||||
"""Return default period value"""
|
||||
return self.pool.get('account.period').find(cr, uid)
|
||||
|
||||
def account_tax_chart_open_window(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Opens chart of Accounts
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of account chart’s IDs
|
||||
@return: dictionary of Open account chart window on given fiscalyear and all Entries or posted entries
|
||||
"""
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
act_obj = self.pool.get('ir.actions.act_window')
|
||||
period_obj = self.pool.get('account.period')
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
result = mod_obj._get_id(cr, uid, 'account', 'action_tax_code_tree')
|
||||
id = mod_obj.read(cr, uid, [result], ['res_id'], context=context)[0]['res_id']
|
||||
result = act_obj.read(cr, uid, [id], context=context)[0]
|
||||
if data['period_id']:
|
||||
fiscalyear_id = period_obj.read(cr, uid, [data['period_id']], context=context)[0]['fiscalyear_id'][0]
|
||||
result['context'] = str({'period_id': data['period_id'], \
|
||||
'fiscalyear_id': fiscalyear_id, \
|
||||
'state': data['target_move']})
|
||||
else:
|
||||
result['context'] = str({'state': data['target_move']})
|
||||
|
||||
if data['period_id']:
|
||||
result['name'] += ':' + self.pool.get('account.period').read(cr, uid, [data['period_id']], context=context)[0]['code']
|
||||
return result
|
||||
|
||||
_defaults = {
|
||||
'period_id': _get_period,
|
||||
'target_move': 'all'
|
||||
}
|
||||
|
||||
account_tax_chart()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="view_account_tax_chart" model="ir.ui.view">
|
||||
<field name="name">account.tax.chart.form</field>
|
||||
<field name="model">account.tax.chart</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Account tax charts">
|
||||
<group colspan="4" >
|
||||
<field name="period_id"/>
|
||||
<label align="0.7" colspan="6" string="(If you do not select period it will take all open periods)"/>
|
||||
<field name="target_move"/>
|
||||
</group>
|
||||
<separator string="" colspan="4" />
|
||||
<group colspan="4" col="6">
|
||||
<label string ="" colspan="2"/>
|
||||
<button icon="gtk-cancel" special="cancel" string="Cancel" />
|
||||
<button icon="terp-gtk-go-back-rtl" string="Open Charts" name="account_tax_chart_open_window" type="object" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_account_tax_chart" model="ir.actions.act_window">
|
||||
<field name="name">Chart of Taxes</field>
|
||||
<field name="res_model">account.tax.chart</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('parent_id','=',False)]</field>
|
||||
<field name="view_id" ref="view_account_tax_chart"/>
|
||||
<field name="help">Chart of Taxes is a tree view reflecting the structure of the Tax Cases (or tax codes) and shows the current tax situation. The tax chart represents the amount of each area of the tax declaration for your country. It’s presented in a hierarchical structure, which can be modified to fit your needs.</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
icon="STOCK_INDENT"
|
||||
action="action_account_tax_chart"
|
||||
id="menu_action_tax_code_tree"
|
||||
parent="menu_finance_charts"
|
||||
sequence="12"/>
|
||||
|
||||
</data>
|
||||
</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: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-08-23 06:51+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:28+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
|
|
|
@ -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-08-23 06:55+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:42+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: Finnish <fi@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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
|
|
|
@ -7,13 +7,13 @@ msgstr ""
|
|||
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-08-23 06:52+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:35+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
|
|
|
@ -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-08-23 06:51+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:30+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
|
|
|
@ -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-08-23 06:51+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:29+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_analytic_default
|
||||
|
|
|
@ -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-08-23 06:51+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:31+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_analytic_default
|
||||
|
|
|
@ -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-08-23 06:51+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:29+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
|
|
|
@ -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-08-23 06:49+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:27+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_analytic_plans
|
||||
|
|
|
@ -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-08-23 06:52+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:35+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_budget
|
||||
|
|
|
@ -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-08-23 06:52+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:34+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_budget
|
||||
|
|
|
@ -8,13 +8,13 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-11-24 13:11+0000\n"
|
||||
"PO-Revision-Date: 2010-08-23 06:39+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 09:50+0000\n"
|
||||
"Last-Translator: bamuhrez <bamuhrez@gmail.com>\n"
|
||||
"Language-Team: Arabic <ar@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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:59+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_coda
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
<field name="type">tree</field>
|
||||
<field eval="32" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="blue:state in ('draft');black:state in ('validate')" editable="bottom" string="Partner entries">
|
||||
<tree colors="red:state in ('draft');black:state in ('validate')" editable="bottom" string="Partner entries">
|
||||
<field name="date"/>
|
||||
<field name="move_id"/>
|
||||
<field name="ref"/>
|
||||
|
|
|
@ -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-08-23 06:49+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:26+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:38+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_followup
|
||||
|
|
|
@ -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-08-23 06:51+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:31+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:38+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_followup
|
||||
|
|
|
@ -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-08-23 06:49+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 08:54+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_invoice_layout
|
||||
|
|
|
@ -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-08-23 06:51+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:33+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_invoice_layout
|
||||
|
|
|
@ -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-08-23 06:55+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:42+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_payment
|
||||
|
|
|
@ -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-08-23 06:55+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:43+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_payment
|
||||
|
|
|
@ -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-08-23 06:51+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:32+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:37+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:55+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_report
|
||||
|
|
|
@ -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-08-23 06:53+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:37+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:37+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:55+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_report
|
||||
|
|
|
@ -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-08-23 06:44+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 08:53+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_reporting
|
||||
|
|
|
@ -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-08-23 06:53+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:38+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_reporting
|
||||
|
|
|
@ -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-08-23 06:51+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:33+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:38+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:56+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_tax_include
|
||||
|
|
|
@ -281,7 +281,7 @@ msgstr ""
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr ""
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr ""
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr ""
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr "Nou pagament bancari"
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Línies de comprovant"
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr ""
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr "Neue Bankzahlung"
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Auszugspositionen"
|
||||
|
||||
|
|
|
@ -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-08-03 02:48+0000\n"
|
||||
"Last-Translator: mga (Open ERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-08-26 21:26+0000\n"
|
||||
"Last-Translator: Makis Nicolaou <mark.nicolaou@gmail.com>\n"
|
||||
"Language-Team: Greek <el@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-08-12 04:04+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-27 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_voucher
|
||||
|
@ -283,7 +283,7 @@ msgstr "Νέα Πληρωμή Τράπεζας"
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Γραμμές Παραστατικού"
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr "Nuevo pago bancario"
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Líneas de comprobante"
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr "Nuevo pago en bancos"
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Lineas del voucher"
|
||||
|
||||
|
|
|
@ -322,7 +322,7 @@ msgstr "Uus pangamakse"
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Tähiku read"
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr "Nouveau Paiement Bancaire"
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Lignes de Souches"
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr ""
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr ""
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr ""
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr "Nuovo Pagamento Bancario"
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Nuova Ricevuta"
|
||||
|
||||
|
|
|
@ -283,7 +283,7 @@ msgstr "새 은행 결제"
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "전표 라인"
|
||||
|
||||
|
|
|
@ -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-08-23 06:52+0000\n"
|
||||
"PO-Revision-Date: 2010-08-29 10:34+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-08-24 03:40+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-30 03:58+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_voucher
|
||||
|
@ -282,7 +282,7 @@ msgstr ""
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -282,7 +282,7 @@ msgstr "Nieuwe bankbetaling"
|
|||
|
||||
#. module: account_voucher
|
||||
#: view:account.voucher:0
|
||||
#: field:account.voucher,payment_ids:0
|
||||
#: field:account.voucher,line_ids:0
|
||||
msgid "Voucher Lines"
|
||||
msgstr "Bonregels"
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue