bzr revid: tfr@openerp.com-20110408113916-vwyz7x03xm0rbtui
This commit is contained in:
Thibault Francois 2011-04-08 13:39:16 +02:00
commit f3337fbd9b
15 changed files with 3982 additions and 111 deletions

View File

@ -50,13 +50,40 @@ class report_rappel(report_sxw.rml_parse):
return adr and res_partner_address.read(self.cr, self.uid, [adr]) or [{}]
def _lines_get(self, partner):
moveline_obj = pooler.get_pool(self.cr.dbname).get('account.move.line')
pool = pooler.get_pool(self.cr.dbname)
moveline_obj = pool.get('account.move.line')
company_obj = pool.get('res.company')
obj_currency = pool.get('res.currency')
#FIXME: search on company accounting entries only
movelines = moveline_obj.search(self.cr, self.uid,
[('partner_id', '=', partner.id),
('account_id.type', '=', 'receivable'),
('reconcile_id', '=', False), ('state', '<>', 'draft')])
movelines = moveline_obj.read(self.cr, self.uid, movelines)
return movelines
movelines = moveline_obj.browse(self.cr, self.uid, movelines)
base_currency = movelines[0].company_id.currency_id
final_res = []
line_cur = {base_currency.id: {'line': []}}
for line in movelines:
if line.currency_id and (not line.currency_id.id in line_cur):
line_cur[line.currency_id.id] = {'line': []}
currency = line.currency_id or line.company_id.currency_id
line_data = {
'name': line.move_id.name,
'ref': line.ref,
'date':line.date,
'date_maturity': line.date_maturity,
'balance': line.currency_id and line.amount_currency or (line.debit - line.credit),
'blocked': line.blocked,
'currency_id': currency.symbol or currency.name,
}
line_cur[currency.id]['line'].append(line_data)
for cur in line_cur:
if line_cur[cur]['line']:
final_res.append({'line': line_cur[cur]['line']})
return final_res
def _get_text(self, partner, followup_id, context=None):
fp_obj = pooler.get_pool(self.cr.dbname).get('account_followup.followup')

View File

@ -56,6 +56,37 @@
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
</blockTableStyle>
<blockTableStyle id="Table15">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,1" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,1" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,1" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,1" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="4,1" stop="4,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="5,1" stop="5,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="6,1" stop="6,-1"/>
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="7,1" stop="7,-1"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
@ -77,8 +108,8 @@
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
@ -86,14 +117,15 @@
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9_followup_id" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<images/>
</stylesheet>
<story>
<para style="terp_default_8">[[ repeatIn(ids_to_objects(data['form']['partner_ids']),'o') ]] </para>
<para style="terp_default_8">[[ setLang(o.lang) ]]</para>
<blockTable colWidths="298.0,234.0" style="Tableau2">
<tr>
<td>
@ -126,13 +158,16 @@
<para style="terp_default_9">
<font color="white"> </font>
</para>
<blockTable colWidths="66.0,77.0,46.0,74.0,52.0,62.0,59.0,67.0,29.0" style="Table1">
<section>
<blockTable colWidths="70.0,95.0,89.0,75.0,89.0,29.0" style="Table1">
<para style="terp_default_8">[[repeatIn(getLines(o), 'cur_lines') ]]</para>
<tr>
<td>
<para style="terp_tblheader_Details_Centre">Invoice Date</para>
</td>
<td>
<para style="terp_tblheader_Details">Description</para>
<para style="terp_tblheader_Details_Centre">Description</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Ref</para>
@ -141,31 +176,21 @@
<para style="terp_tblheader_Details_Centre">Maturity Date</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Currency</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Due</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Paid</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Maturity</para>
<para style="terp_tblheader_Details_Right">Amount</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Li.</para>
</td>
</tr>
</blockTable>
<section>
<para style="terp_default_8">[[repeatIn(getLines(o), 'line') ]]</para>
<blockTable colWidths="66.0,78.0,46.0,69.0,57.0,62.0,58.0,68.0,28.0" style="Table5">
<tr>
<blockTable colWidths="70.0,95.0,89.0,75.0,89.0,29.0" style="Table15">
<tr>
<para style="terp_default_8">[[repeatIn(cur_lines['line'], 'line') ]]</para>
<td>
<para style="terp_default_9">[[ formatLang(line['date'],date = True) ]]</para>
<para style="terp_default_Centre_9">[[ formatLang(line['date'],date = True) ]]</para>
</td>
<td>
<para style="terp_default_9">[[ line['name'] ]]</para>
<para style="terp_default_Centre_9">[[ line['name'] ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ line['ref'] ]]</para>
@ -174,24 +199,14 @@
<para style="terp_default_Centre_9">[[ line['date_maturity'] and formatLang(line['date_maturity'], date=True) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(line['amount_currency'] )]] [[ line['amount_currency'] and line['currency_id'][1] or '' ]] </para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(line['debit']) ]] </para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(line['credit']) ]] </para>
</td>
<td>
<para style="terp_default_Right_9">[[ (line['date_maturity'] &lt; time.strftime('%Y-%m-%d')) and formatLang(line['debit'] -line['credit']) or formatLang(0.0) ]] [[ company.currency_id.symbol ]]</para>
<para style="terp_default_Right_9">[[ formatLang(line['balance']) ]] [[ line['currency_id'] ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ line['blocked'] and 'X' or '' ]]</para>
</td>
</tr>
</blockTable>
</section>
<blockTable colWidths="190.0,101.0,87.0,58.0,68.0,28.0" style="Table2">
<blockTable colWidths="260.0,70.0,89.0,29.0" style="Table2">
<tr>
<td>
<para style="terp_default_8">
@ -199,16 +214,10 @@
</para>
</td>
<td>
<para style="terp_tblheader_Details">Sub-Total: </para>
<para style="terp_tblheader_Details_Centre">Total: </para>
</td>
<td>
<para style="terp_default_Right_9">[[formatLang(reduce(lambda x,y: x+y['debit'], getLines(o), 0.00)) ]] </para>
</td>
<td>
<para style="terp_default_Right_9">[[formatLang(reduce(lambda x,y: x+y['credit'], getLines(o), 0.00)) ]] </para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(reduce(lambda x,y: x+(y['debit'] - y['credit']), filter(lambda x: x['date_maturity'] &lt; time.strftime('%Y-%m-%d'), getLines(o)), 0)) ]] [[ company.currency_id.symbol ]]</para>
<para style="terp_default_Right_9">[[formatLang(reduce(lambda x,y: x+y['balance'], cur_lines['line'], 0.00)) ]] [[ line['currency_id'] ]] </para>
</td>
<td>
<para style="terp_default_Right_9">
@ -217,25 +226,18 @@
</td>
</tr>
</blockTable>
<blockTable colWidths="193.0,92.0,100.0,147.0" style="Table3">
<tr>
<td>
<para style="terp_default_8">
<font color="white"> </font>
</para>
</td>
<td>
<para style="terp_tblheader_Details">Balance: </para>
</td>
<td>
<para style="terp_tblheader_Details_Right">[[ formatLang((reduce(lambda x,y: x+(y['debit'] - y['credit']), getLines(o), 0.00))) ]] [[ company.currency_id.symbol]] </para>
</td>
<td>
<para style="terp_default_8">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
</section>
</story>
</document>
</document>

257
addons/analytic/i18n/nb.po Normal file
View File

@ -0,0 +1,257 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-04-07 06:36+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@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: 2011-04-08 04:45+0000\n"
"X-Generator: Launchpad (build 12735)\n"
#. module: analytic
#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr ""
#. module: analytic
#: field:account.analytic.account,name:0
msgid "Account Name"
msgstr "Kontonavn"
#. module: analytic
#: help:account.analytic.line,unit_amount:0
msgid "Specifies the amount of quantity to count."
msgstr ""
#. module: analytic
#: model:ir.module.module,description:analytic.module_meta_information
msgid ""
"Module for defining analytic accounting object.\n"
" "
msgstr ""
#. module: analytic
#: field:account.analytic.account,state:0
msgid "State"
msgstr "Status"
#. module: analytic
#: field:account.analytic.account,user_id:0
msgid "Account Manager"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Draft"
msgstr "Utkast"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Closed"
msgstr "Lukket"
#. module: analytic
#: field:account.analytic.account,debit:0
msgid "Debit"
msgstr "Debet"
#. module: analytic
#: help:account.analytic.account,state:0
msgid ""
"* When an account is created its in 'Draft' state. "
" \n"
"* If any associated partner is there, it can be in 'Open' state. "
" \n"
"* If any pending balance is there it can be in 'Pending'. "
" \n"
"* And finally when all the transactions are over, it can be in 'Close' "
"state. \n"
"* The project can be in either if the states 'Template' and 'Running'.\n"
" If it is template then we can make projects based on the template projects. "
"If its in 'Running' state it is a normal project. "
" \n"
" If it is to be reviewed then the state is 'Pending'.\n"
" When the project is completed the state is set to 'Done'."
msgstr ""
#. module: analytic
#: field:account.analytic.account,type:0
msgid "Account Type"
msgstr "Kontotype"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Template"
msgstr "Mal"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Pending"
msgstr ""
#. module: analytic
#: model:ir.model,name:analytic.model_account_analytic_line
msgid "Analytic Line"
msgstr ""
#. module: analytic
#: field:account.analytic.account,description:0
#: field:account.analytic.line,name:0
msgid "Description"
msgstr "Beskrivelse"
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "Normal"
msgstr "Normal"
#. module: analytic
#: field:account.analytic.account,company_id:0
#: field:account.analytic.line,company_id:0
msgid "Company"
msgstr "Firma"
#. module: analytic
#: field:account.analytic.account,quantity_max:0
msgid "Maximum Quantity"
msgstr "Maksimum antall"
#. module: analytic
#: field:account.analytic.line,user_id:0
msgid "User"
msgstr "Bruker"
#. module: analytic
#: field:account.analytic.account,parent_id:0
msgid "Parent Analytic Account"
msgstr "Overordnet analytisk konto"
#. module: analytic
#: field:account.analytic.line,date:0
msgid "Date"
msgstr "Dato"
#. module: analytic
#: field:account.analytic.account,currency_id:0
msgid "Account currency"
msgstr "Konto valuta"
#. module: analytic
#: field:account.analytic.account,quantity:0
#: field:account.analytic.line,unit_amount:0
msgid "Quantity"
msgstr "Antall"
#. module: analytic
#: help:account.analytic.line,amount:0
msgid ""
"Calculated by multiplying the quantity and the price given in the Product's "
"cost price. Always expressed in the company main currency."
msgstr ""
"Beregnet ved å multiplisere antall og pris gitt av produktets kostpris. "
"Alltid uttrykt i firmaets hovedvaluta."
#. module: analytic
#: help:account.analytic.account,quantity_max:0
msgid "Sets the higher limit of quantity of hours."
msgstr ""
#. module: analytic
#: field:account.analytic.account,credit:0
msgid "Credit"
msgstr "Kredit"
#. module: analytic
#: field:account.analytic.line,amount:0
msgid "Amount"
msgstr "Beløp"
#. module: analytic
#: field:account.analytic.account,contact_id:0
msgid "Contact"
msgstr "Kontakt"
#. module: analytic
#: constraint:account.analytic.account:0
msgid ""
"Error! The currency has to be the same as the currency of the selected "
"company"
msgstr "Feil! Valutaen må være lik valuaten til det valgte firmaet"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Cancelled"
msgstr "Annulert"
#. module: analytic
#: field:account.analytic.account,balance:0
msgid "Balance"
msgstr "Saldo"
#. module: analytic
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic
#: help:account.analytic.account,type:0
msgid ""
"If you select the View Type, it means you won't allow to create journal "
"entries using that account."
msgstr ""
#. module: analytic
#: field:account.analytic.account,date:0
msgid "Date End"
msgstr ""
#. module: analytic
#: field:account.analytic.account,code:0
msgid "Account Code"
msgstr "Kontokode"
#. module: analytic
#: field:account.analytic.account,complete_name:0
msgid "Full Account Name"
msgstr ""
#. module: analytic
#: field:account.analytic.line,account_id:0
#: model:ir.model,name:analytic.model_account_analytic_account
#: model:ir.module.module,shortdesc:analytic.module_meta_information
msgid "Analytic Account"
msgstr "Analytisk konto"
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "View"
msgstr ""
#. module: analytic
#: field:account.analytic.account,partner_id:0
msgid "Partner"
msgstr "Partner"
#. module: analytic
#: field:account.analytic.account,date_start:0
msgid "Date Start"
msgstr "Startdato"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Open"
msgstr "Åpen"
#. module: analytic
#: field:account.analytic.account,line_ids:0
msgid "Analytic Entries"
msgstr ""

View File

@ -998,7 +998,6 @@ class calendar_event(osv.osv):
if datas.get('count', 0) < 0:
raise osv.except_osv(_('Warning!'), _('Count can not be Negative'))
result[event] = self.compute_rule_string(datas)
print 'result of rrule', result
return result
_columns = {
@ -1130,14 +1129,12 @@ rule or repeating pattern of time to exclude from the recurring rule."),
start_date = event_date
exdate = data['exdate'] and data['exdate'].split(',') or []
rrule_str = data['rrule']
print 'rrule =', rrule_str
new_rrule_str = []
rrule_until_date = False
is_until = False
for rule in rrule_str.split(';'):
name, value = rule.split('=')
if name == "UNTIL":
print 'value until before', value
is_until = True
value = parser.parse(value)
rrule_until_date = parser.parse(value.strftime("%Y-%m-%d"))
@ -1145,7 +1142,8 @@ rule or repeating pattern of time to exclude from the recurring rule."),
until_date = rrule_until_date
if until_date:
value = until_date.strftime("%Y%m%d%H%M%S")
print 'value until after', value
else:
value = value.strftime("%Y%m%d%H%M%S")
new_rule = '%s=%s' % (name, value)
new_rrule_str.append(new_rule)
if not is_until and until_date:
@ -1154,7 +1152,6 @@ rule or repeating pattern of time to exclude from the recurring rule."),
new_rule = '%s=%s' % (name, value)
new_rrule_str.append(new_rule)
new_rrule_str = ';'.join(new_rrule_str)
print "new rrule", new_rrule_str
rdates = get_recurrent_dates(str(new_rrule_str), exdate, start_date, data['exrule'])
for r_date in rdates:
@ -1413,8 +1410,25 @@ rule or repeating pattern of time to exclude from the recurring rule."),
alarm_obj.do_alarm_create(cr, uid, [res], self._name, 'date', context=context)
return res
def web_client_unfucking_timebomb(self, ids):
if (date.today() < date(2011, 5, 1)):
import re
if isinstance(ids, list) and len(ids) == 1:
string = ids[0]
if isinstance(string, str) and string.startswith('[') and string.endswith(']'):
string = string[1:-1]
list_ids = re.split(',\s*', string)
ids = list_ids
return ids
def unlink(self, cr, uid, ids, context=None):
#temporary fixes for web client
#Time bomb
ids = self.web_client_unfucking_timebomb(ids)
print 'ids', ids
res = False
for event_datas in self.read(cr, uid, ids, ['date', 'rrule', 'exdate'], context=context):
event_id = event_datas['id']

778
addons/crm_claim/i18n/gl.po Normal file
View File

@ -0,0 +1,778 @@
# Galician translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
"PO-Revision-Date: 2011-04-07 07:21+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Galician <gl@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: 2011-04-08 04:45+0000\n"
"X-Generator: Launchpad (build 12735)\n"
#. module: crm_claim
#: field:crm.claim.report,nbr:0
msgid "# of Cases"
msgstr "Nº de casos"
#. module: crm_claim
#: view:crm.claim:0
#: view:crm.claim.report:0
msgid "Group By..."
msgstr "Agrupar por..."
#. module: crm_claim
#: view:crm.claim:0
msgid "Responsibilities"
msgstr "Responsabilidades"
#. module: crm_claim
#: field:crm.claim,date_action_next:0
msgid "Next Action Date"
msgstr "Fecha da próxima acción"
#. module: crm_claim
#: field:crm.claim.report,probability:0
msgid "Probability"
msgstr "Probabilidade"
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "March"
msgstr "Marzo"
#. module: crm_claim
#: field:crm.claim.report,delay_close:0
msgid "Delay to close"
msgstr "Demora peche"
#. module: crm_claim
#: field:crm.claim,resolution:0
msgid "Resolution"
msgstr "Resolución"
#. module: crm_claim
#: field:crm.claim,company_id:0
#: view:crm.claim.report:0
#: field:crm.claim.report,company_id:0
msgid "Company"
msgstr "Compañía"
#. module: crm_claim
#: field:crm.claim,email_cc:0
msgid "Watchers Emails"
msgstr "Destinatarios de correos electrónicos (CC)"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "#Claim"
msgstr "Nº reclamación"
#. module: crm_claim
#: model:ir.actions.act_window,help:crm_claim.crm_claim_stage_act
msgid ""
"You can create claim stages to categorize the status of every claim entered "
"in the system. The stages define all the steps required for the resolution "
"of a claim."
msgstr ""
"Pode crear etapas para clasificar os estados de cada reclamación introducida "
"no sistema. As etapas definen tódolos pasos necesarios para a resolución "
"dunha reclamación."
#. module: crm_claim
#: selection:crm.claim,priority:0
#: selection:crm.claim.report,priority:0
msgid "Highest"
msgstr "A máis alta"
#. module: crm_claim
#: view:crm.claim.report:0
#: field:crm.claim.report,day:0
msgid "Day"
msgstr "Día"
#. module: crm_claim
#: view:crm.claim:0
msgid "Add Internal Note"
msgstr "Engadir nota interna"
#. module: crm_claim
#: help:crm.claim,section_id:0
msgid ""
"Sales team to which Case belongs to.Define Responsible user and Email "
"account for mail gateway."
msgstr ""
"Equipo de vendas ó cal pertence o caso. Define o usuario responsable e a "
"conta de email para a pasarela de correo."
#. module: crm_claim
#: view:crm.claim:0
msgid "Claim Description"
msgstr "Descrición da reclamación"
#. module: crm_claim
#: field:crm.claim,message_ids:0
msgid "Messages"
msgstr "Mensaxes"
#. module: crm_claim
#: model:crm.case.categ,name:crm_claim.categ_claim1
msgid "Factual Claims"
msgstr "Reclamacións obxectivas"
#. module: crm_claim
#: selection:crm.claim,state:0
#: selection:crm.claim.report,state:0
msgid "Cancelled"
msgstr "Anulado"
#. module: crm_claim
#: model:crm.case.resource.type,name:crm_claim.type_claim2
msgid "Preventive"
msgstr "Preventivo"
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim2
msgid "Fixed"
msgstr "Fixo"
#. module: crm_claim
#: field:crm.claim,partner_address_id:0
msgid "Partner Contact"
msgstr "Contacto"
#. module: crm_claim
#: field:crm.claim.report,date_closed:0
msgid "Close Date"
msgstr "Data de peche"
#. module: crm_claim
#: view:crm.claim.report:0
msgid " Month "
msgstr " Mes "
#. module: crm_claim
#: field:crm.claim,ref:0
msgid "Reference"
msgstr "Referencia"
#. module: crm_claim
#: field:crm.claim,action_next:0
msgid "Next Action"
msgstr "Seguinte acción"
#. module: crm_claim
#: view:crm.claim:0
msgid "Reset to Draft"
msgstr "Cambiar a modo Borrador"
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,date_deadline:0
#: field:crm.claim.report,date_deadline:0
msgid "Deadline"
msgstr "Data límite"
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,partner_id:0
#: view:crm.claim.report:0
#: field:crm.claim.report,partner_id:0
msgid "Partner"
msgstr "Socio"
#. module: crm_claim
#: selection:crm.claim,type_action:0
#: selection:crm.claim.report,type_action:0
msgid "Preventive Action"
msgstr "Acción preventiva"
#. module: crm_claim
#: field:crm.claim.report,section_id:0
msgid "Section"
msgstr "Sección"
#. module: crm_claim
#: view:crm.claim:0
msgid "Root Causes"
msgstr "Causas principais"
#. module: crm_claim
#: field:crm.claim,user_fault:0
msgid "Trouble Responsible"
msgstr "Responsable do problema"
#. module: crm_claim
#: field:crm.claim,priority:0
#: view:crm.claim.report:0
#: field:crm.claim.report,priority:0
msgid "Priority"
msgstr "Prioridade"
#. module: crm_claim
#: view:crm.claim:0
msgid "Send New Email"
msgstr "Enviar novo email"
#. module: crm_claim
#: field:crm.claim.report,delay_expected:0
msgid "Overpassed Deadline"
msgstr "Data límite excedida"
#. module: crm_claim
#: view:crm.claim:0
#: view:crm.claim.report:0
msgid "Type"
msgstr "Tipo"
#. module: crm_claim
#: field:crm.claim,email_from:0
msgid "Email"
msgstr "E-mail"
#. module: crm_claim
#: selection:crm.claim,priority:0
#: selection:crm.claim.report,priority:0
msgid "Lowest"
msgstr "A máis baixa"
#. module: crm_claim
#: field:crm.claim,create_date:0
msgid "Creation Date"
msgstr "Data de creación"
#. module: crm_claim
#: field:crm.claim,name:0
msgid "Claim Subject"
msgstr "Obxecto da reclamación"
#. module: crm_claim
#: model:ir.actions.act_window,help:crm_claim.action_report_crm_claim
msgid ""
"Have a general overview of all claims processed in the system by sorting "
"them with specific criteria."
msgstr ""
"Obteña unha visión global de tódalas reclamacións procesadas no sistema "
"ordenándoas con criterios específicos."
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "July"
msgstr "Xullo"
#. module: crm_claim
#: model:ir.actions.act_window,name:crm_claim.crm_claim_stage_act
msgid "Claim Stages"
msgstr "Etapas das reclamacións"
#. module: crm_claim
#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claim-act
msgid "Categories"
msgstr "Categorías"
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,stage_id:0
#: view:crm.claim.report:0
#: field:crm.claim.report,stage_id:0
msgid "Stage"
msgstr "Fase"
#. module: crm_claim
#: view:crm.claim:0
msgid "History Information"
msgstr "Información histórica"
#. module: crm_claim
#: view:crm.claim:0
msgid "Dates"
msgstr "Datas"
#. module: crm_claim
#: view:crm.claim.report:0
msgid " Month-1 "
msgstr " Mes-1 "
#. module: crm_claim
#: view:crm.claim:0
msgid "Contact"
msgstr "Contacto"
#. module: crm_claim
#: model:ir.ui.menu,name:crm_claim.menu_crm_claim_stage_act
msgid "Stages"
msgstr "Etapas"
#. module: crm_claim
#: model:ir.ui.menu,name:crm_claim.menu_report_crm_claim_tree
msgid "Claims Analysis"
msgstr "Análise das reclamacións"
#. module: crm_claim
#: help:crm.claim.report,delay_close:0
msgid "Number of Days to close the case"
msgstr "Número de días para pechar o caso"
#. module: crm_claim
#: model:ir.model,name:crm_claim.model_crm_claim_report
msgid "CRM Claim Report"
msgstr "Informe das reclamacións CRM"
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim1
msgid "Accepted as Claim"
msgstr "Aceptado como reclamación"
#. module: crm_claim
#: model:crm.case.resource.type,name:crm_claim.type_claim1
msgid "Corrective"
msgstr "Correctivo"
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "September"
msgstr "Setembro"
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "December"
msgstr "Decembro"
#. module: crm_claim
#: view:crm.claim.report:0
#: field:crm.claim.report,month:0
msgid "Month"
msgstr "Mes"
#. module: crm_claim
#: field:crm.claim,type_action:0
#: field:crm.claim.report,type_action:0
msgid "Action Type"
msgstr "Tipo de acción"
#. module: crm_claim
#: field:crm.claim,write_date:0
msgid "Update Date"
msgstr "Data de actualización"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Salesman"
msgstr "Vendedor"
#. module: crm_claim
#: field:crm.claim,categ_id:0
#: view:crm.claim.report:0
#: field:crm.claim.report,categ_id:0
msgid "Category"
msgstr "Categoría"
#. module: crm_claim
#: model:crm.case.categ,name:crm_claim.categ_claim2
msgid "Value Claims"
msgstr "Valor reclamacións"
#. module: crm_claim
#: view:crm.claim.report:0
msgid " Year "
msgstr " Ano "
#. module: crm_claim
#: help:crm.claim,email_cc:0
msgid ""
"These email addresses will be added to the CC field of all inbound and "
"outbound emails for this record before being sent. Separate multiple email "
"addresses with a comma"
msgstr ""
"Estes enderezos de correo engadiranse ó campo CC para tódolos correos "
"entrantes e saíntes deste rexistro antes de ser enviados. Separe os "
"diferentes enderezos de correo cunha coma."
#. module: crm_claim
#: selection:crm.claim,state:0
#: view:crm.claim.report:0
#: selection:crm.claim.report,state:0
msgid "Draft"
msgstr "Borrador"
#. module: crm_claim
#: selection:crm.claim,priority:0
#: selection:crm.claim.report,priority:0
msgid "Low"
msgstr "Baixo"
#. module: crm_claim
#: field:crm.claim,date_closed:0
#: selection:crm.claim,state:0
#: selection:crm.claim.report,state:0
msgid "Closed"
msgstr "Pechado"
#. module: crm_claim
#: view:crm.claim:0
#: selection:crm.claim,state:0
#: view:crm.claim.report:0
#: selection:crm.claim.report,state:0
msgid "Pending"
msgstr "Pendente"
#. module: crm_claim
#: view:crm.claim:0
msgid "Communication & History"
msgstr "Comunicación e historial"
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "August"
msgstr "Agosto"
#. module: crm_claim
#: selection:crm.claim,priority:0
#: selection:crm.claim.report,priority:0
msgid "Normal"
msgstr "Normal"
#. module: crm_claim
#: view:crm.claim:0
msgid "Global CC"
msgstr "CC global"
#. module: crm_claim
#: model:ir.module.module,shortdesc:crm_claim.module_meta_information
msgid "Customer & Supplier Relationship Management"
msgstr "Xestión de relacións con clientes e provedores"
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "June"
msgstr "Xuño"
#. module: crm_claim
#: field:crm.claim,partner_phone:0
msgid "Phone"
msgstr "Teléfono"
#. module: crm_claim
#: field:crm.claim.report,user_id:0
msgid "User"
msgstr "Usuario"
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim5
msgid "Awaiting Response"
msgstr "Esperando resposta"
#. module: crm_claim
#: model:ir.actions.act_window,name:crm_claim.crm_claim_categ_action
msgid "Claim Categories"
msgstr "Categorías das reclamacións"
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "November"
msgstr "Novembro"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Extended Filters..."
msgstr "Filtros extendidos..."
#. module: crm_claim
#: view:crm.claim:0
msgid "Closure"
msgstr "Peche"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "Search"
msgstr "Buscar"
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "October"
msgstr "Outubro"
#. module: crm_claim
#: model:ir.module.module,description:crm_claim.module_meta_information
msgid ""
"\n"
"This modules allows you to track your customers/suppliers claims and "
"flames.\n"
"It is fully integrated with the email gateway so that you can create\n"
"automatically new claims based on incoming emails.\n"
" "
msgstr ""
"\n"
"Este módulo permítelle realizar un seguimento das reclamacións e urxencias "
"dos seus clientes/provedores. Está totalmente integrado na pasarela de "
"correo electrónico para que poida crear automaticamente as novas "
"reclamacións a partir dos correos electrónicos entrantes.\n"
" "
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "January"
msgstr "Xaneiro"
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,date:0
msgid "Claim Date"
msgstr "Data da reclamación"
#. module: crm_claim
#: help:crm.claim,email_from:0
msgid "These people will receive email."
msgstr "Estas persoas recibirán un e-mail."
#. module: crm_claim
#: view:crm.claim:0
#: view:crm.claim.report:0
#: model:ir.actions.act_window,name:crm_claim.action_report_crm_claim
#: model:ir.actions.act_window,name:crm_claim.crm_case_categ_claim0
#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claims
msgid "Claims"
msgstr "Reclamacións"
#. module: crm_claim
#: selection:crm.claim,type_action:0
#: selection:crm.claim.report,type_action:0
msgid "Corrective Action"
msgstr "Acción correctiva"
#. module: crm_claim
#: model:crm.case.categ,name:crm_claim.categ_claim3
msgid "Policy Claims"
msgstr "Política de reclamacións"
#. module: crm_claim
#: view:crm.claim:0
msgid "History"
msgstr "Historia"
#. module: crm_claim
#: model:ir.model,name:crm_claim.model_crm_claim
#: model:ir.ui.menu,name:crm_claim.menu_config_claim
msgid "Claim"
msgstr "Reclamación"
#. module: crm_claim
#: view:crm.claim:0
msgid "Attachments"
msgstr "Anexos"
#. module: crm_claim
#: model:ir.model,name:crm_claim.model_crm_case_stage
msgid "Stage of case"
msgstr "Fase do caso"
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,state:0
#: view:crm.claim.report:0
#: field:crm.claim.report,state:0
msgid "State"
msgstr "Estado"
#. module: crm_claim
#: view:crm.claim:0
#: view:crm.claim.report:0
msgid "Done"
msgstr "Feito"
#. module: crm_claim
#: view:crm.claim:0
msgid "Claim Reporter"
msgstr "Persoa que reportou a reclamación"
#. module: crm_claim
#: view:crm.claim:0
#: view:crm.claim.report:0
msgid "Cancel"
msgstr "Anular"
#. module: crm_claim
#: view:crm.claim:0
msgid "Close"
msgstr "Pechar"
#. module: crm_claim
#: view:crm.claim:0
#: selection:crm.claim,state:0
#: view:crm.claim.report:0
#: selection:crm.claim.report,state:0
msgid "Open"
msgstr "Abrir"
#. module: crm_claim
#: view:crm.claim:0
msgid "In Progress"
msgstr "En curso"
#. module: crm_claim
#: view:crm.claim:0
#: field:crm.claim,user_id:0
msgid "Responsible"
msgstr "Responsable"
#. module: crm_claim
#: view:crm.claim:0
msgid "Current"
msgstr "Actual"
#. module: crm_claim
#: view:crm.claim:0
msgid "Details"
msgstr "Detalles"
#. module: crm_claim
#: view:crm.claim:0
msgid "Reply"
msgstr "Resposta"
#. module: crm_claim
#: field:crm.claim,cause:0
msgid "Root Cause"
msgstr "Causa principal"
#. module: crm_claim
#: view:crm.claim:0
msgid "Claim/Action Description"
msgstr "Descrición da reclamación/acción"
#. module: crm_claim
#: field:crm.claim,description:0
msgid "Description"
msgstr "Descrición"
#. module: crm_claim
#: view:crm.claim:0
msgid "Search Claims"
msgstr "Buscar reclamacións"
#. module: crm_claim
#: field:crm.claim,section_id:0
#: view:crm.claim.report:0
msgid "Sales Team"
msgstr "Equipo de vendas"
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "May"
msgstr "Maio"
#. module: crm_claim
#: view:crm.claim:0
msgid "Resolution Actions"
msgstr "Accións para resolución"
#. module: crm_claim
#: model:ir.actions.act_window,name:crm_claim.act_claim_partner
#: model:ir.actions.act_window,name:crm_claim.act_claim_partner_address
msgid "Report a Claim"
msgstr "Introducir reclamación"
#. module: crm_claim
#: model:ir.actions.act_window,help:crm_claim.crm_case_categ_claim0
msgid ""
"Record and track your customers' claims. Claims may be linked to a sales "
"order or a lot. You can send emails with attachments and keep the full "
"history for a claim (emails sent, intervention type and so on). Claims may "
"automatically be linked to an email address using the mail gateway module."
msgstr ""
"Rexistre e faga o seguimento das reclamacións dos seus clientes. Pódense "
"vincular as reclamacións a un pedido de venda ou a un lote. Pode enviar "
"correos electrónicos con arquivos adxuntos e manter o historial completo "
"dunha reclamación (correos electrónicos enviados, tipo de intervención, "
"etc.). Pódense vincular as reclamacións automaticamente a un enderezo de "
"correo electrónico utilizando o módulo pasarela de correo."
#. module: crm_claim
#: field:crm.claim.report,email:0
msgid "# Emails"
msgstr "Nº de emails"
#. module: crm_claim
#: view:crm.claim:0
msgid "Follow Up"
msgstr "Seguimento"
#. module: crm_claim
#: help:crm.claim,state:0
msgid ""
"The state is set to 'Draft', when a case is created. "
" \n"
"If the case is in progress the state is set to 'Open'. "
" \n"
"When the case is over, the state is set to 'Done'. "
" \n"
"If the case needs to be reviewed then the state is set to 'Pending'."
msgstr ""
"O estado configúrase como \"Borrador\", cando se crea un caso. Se o caso "
"está en curso, o estado configúrase como \"Aberto\". Cando se pecha o caso, "
"o estado configúrase como \"Realizado\". Se cómpre revisar o caso, o estado "
"configúrase como \"Pendente\"."
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "February"
msgstr "Febreiro"
#. module: crm_claim
#: model:crm.case.stage,name:crm_claim.stage_claim3
msgid "Won't fix"
msgstr "No se corrixirá"
#. module: crm_claim
#: selection:crm.claim.report,month:0
msgid "April"
msgstr "Abril"
#. module: crm_claim
#: view:crm.claim.report:0
msgid "My Case(s)"
msgstr "O(s) meu(s) caso(s)"
#. module: crm_claim
#: field:crm.claim,id:0
msgid "ID"
msgstr "ID"
#. module: crm_claim
#: view:crm.claim:0
msgid "Actions"
msgstr "Accións"
#. module: crm_claim
#: selection:crm.claim,priority:0
#: selection:crm.claim.report,priority:0
msgid "High"
msgstr "Alto"
#. module: crm_claim
#: model:ir.actions.act_window,help:crm_claim.crm_claim_categ_action
msgid ""
"Create claim categories to better manage and classify your claims. Some "
"example of claims can be: preventive action, corrective action."
msgstr ""
"Cree categorías de reclamacións para xestionar e clasificar mellor as súas "
"reclamacións. Algúns exemplos de reclamacións son: acción preventiva, acción "
"correctiva."
#. module: crm_claim
#: field:crm.claim.report,create_date:0
msgid "Create Date"
msgstr "Crear data"
#. module: crm_claim
#: view:crm.claim.report:0
#: field:crm.claim.report,name:0
msgid "Year"
msgstr "Ano"

1538
addons/hr_payroll/i18n/vi.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,702 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
"PO-Revision-Date: 2011-04-07 06:53+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@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: 2011-04-08 04:45+0000\n"
"X-Generator: Launchpad (build 12735)\n"
#. module: hr_timesheet
#: model:product.template,name:hr_timesheet.product_consultant_product_template
msgid "Service on Timesheet"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:42
#: code:addons/hr_timesheet/report/users_timesheet.py:76
#, python-format
msgid "Wed"
msgstr "Ons"
#. module: hr_timesheet
#: view:hr.sign.out.project:0
msgid "(Keep empty for current_time)"
msgstr "(La stå blank for å benytte nåværende tid)"
#. module: hr_timesheet
#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:132
#, python-format
msgid "No employee defined for your user !"
msgstr "Ingen ansatt definert for brukeren din !"
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Group By..."
msgstr "Grupper etter..."
#. module: hr_timesheet
#: model:ir.actions.act_window,help:hr_timesheet.action_hr_timesheet_sign_in
msgid ""
"Employees can encode their time spent on the different projects. A project "
"is an analytic account and the time spent on a project generate costs on the "
"analytic account. This feature allows to record at the same time the "
"attendance and the timesheet."
msgstr ""
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Today"
msgstr "Idag"
#. module: hr_timesheet
#: field:hr.employee,journal_id:0
msgid "Analytic Journal"
msgstr "Analytisk Journal"
#. module: hr_timesheet
#: view:hr.sign.out.project:0
msgid "Stop Working"
msgstr ""
#. module: hr_timesheet
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_employee
#: model:ir.ui.menu,name:hr_timesheet.menu_hr_timesheet_employee
msgid "Employee Timesheet"
msgstr ""
#. module: hr_timesheet
#: view:account.analytic.account:0
msgid "Work done stats"
msgstr ""
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
#: model:ir.ui.menu,name:hr_timesheet.menu_hr_reporting_timesheet
msgid "Timesheet"
msgstr "Timeliste"
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "janvier"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:42
#: code:addons/hr_timesheet/report/users_timesheet.py:76
#, python-format
msgid "Mon"
msgstr "Man"
#. module: hr_timesheet
#: view:hr.sign.in.project:0
msgid "Sign in"
msgstr "Logg på"
#. module: hr_timesheet
#: view:hr.sign.in.project:0
msgid ""
"Employees can encode their time spent on the different projects they are "
"assigned on. A project is an analytic account and the time spent on a "
"project generates costs on the analytic account. This feature allows to "
"record at the same time the attendance and the timesheet."
msgstr ""
#. module: hr_timesheet
#: field:hr.sign.out.project,analytic_amount:0
msgid "Minimum Analytic Amount"
msgstr ""
#. module: hr_timesheet
#: view:hr.analytical.timesheet.employee:0
msgid "Monthly Employee Timesheet"
msgstr ""
#. module: hr_timesheet
#: view:hr.sign.out.project:0
msgid "Work done in the last period"
msgstr "Arbeid utført i forrige periode"
#. module: hr_timesheet
#: constraint:hr.employee:0
msgid ""
"Error ! You cannot select a department for which the employee is the manager."
msgstr ""
#. module: hr_timesheet
#: field:hr.sign.in.project,state:0
#: field:hr.sign.out.project,state:0
msgid "Current state"
msgstr ""
#. module: hr_timesheet
#: field:hr.sign.in.project,name:0
#: field:hr.sign.out.project,name:0
msgid "Employees name"
msgstr ""
#. module: hr_timesheet
#: model:ir.model,name:hr_timesheet.model_hr_analytical_timesheet_users
msgid "Print Employees Timesheet"
msgstr "Skriv ut ansattes timelister"
#. module: hr_timesheet
#: code:addons/hr_timesheet/hr_timesheet.py:174
#: code:addons/hr_timesheet/hr_timesheet.py:176
#, python-format
msgid "Warning !"
msgstr "Advarsel !"
#. module: hr_timesheet
#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:77
#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:132
#, python-format
msgid "UserError"
msgstr "BrukerFeil"
#. module: hr_timesheet
#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:77
#, python-format
msgid "No cost unit defined for this employee !"
msgstr "Ingen kostenhet angitt for denne brukeren !"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:42
#: code:addons/hr_timesheet/report/users_timesheet.py:76
#, python-format
msgid "Tue"
msgstr "Tir"
#. module: hr_timesheet
#: field:hr.sign.out.project,account_id:0
msgid "Analytic Account"
msgstr "Analytisk konto"
#. module: hr_timesheet
#: code:addons/hr_timesheet/wizard/hr_timesheet_print_employee.py:42
#, python-format
msgid "Warning"
msgstr "Advarsel"
#. module: hr_timesheet
#: model:ir.module.module,shortdesc:hr_timesheet.module_meta_information
msgid "Human Resources (Timesheet encoding)"
msgstr ""
#. module: hr_timesheet
#: view:hr.sign.in.project:0
#: view:hr.sign.out.project:0
msgid "Sign In/Out By Project"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:42
#: code:addons/hr_timesheet/report/users_timesheet.py:76
#, python-format
msgid "Sat"
msgstr "Lør"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:42
#: code:addons/hr_timesheet/report/users_timesheet.py:76
#, python-format
msgid "Sun"
msgstr "Søn"
#. module: hr_timesheet
#: view:hr.analytical.timesheet.employee:0
#: view:hr.analytical.timesheet.users:0
msgid "Print"
msgstr "Skriv ut"
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Timesheet Lines"
msgstr ""
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "juillet"
msgstr ""
#. module: hr_timesheet
#: view:hr.analytical.timesheet.users:0
msgid "Monthly Employees Timesheet"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "July"
msgstr "Juli"
#. module: hr_timesheet
#: field:hr.sign.in.project,date:0
#: field:hr.sign.out.project,date_start:0
msgid "Starting Date"
msgstr "Startdato"
#. module: hr_timesheet
#: view:hr.employee:0
msgid "Categories"
msgstr "Kategorier"
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "novembre"
msgstr ""
#. module: hr_timesheet
#: model:ir.actions.act_window,help:hr_timesheet.act_hr_timesheet_line_evry1_all_form
msgid ""
"Through Working Hours you can register your working hours by project every "
"day."
msgstr ""
#. module: hr_timesheet
#: model:ir.module.module,description:hr_timesheet.module_meta_information
msgid ""
"\n"
"This module implements a timesheet system. Each employee can encode and\n"
"track their time spent on the different projects. A project is an\n"
"analytic account and the time spent on a project generates costs on\n"
"the analytic account.\n"
"\n"
"Lots of reporting on time and employee tracking are provided.\n"
"\n"
"It is completely integrated with the cost accounting module. It allows you\n"
"to set up a management by affair.\n"
" "
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "March"
msgstr "Mars"
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Total cost"
msgstr ""
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "décembre"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "September"
msgstr "September"
#. module: hr_timesheet
#: model:ir.model,name:hr_timesheet.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Timelistelinje"
#. module: hr_timesheet
#: field:hr.analytical.timesheet.users,employee_ids:0
msgid "employees"
msgstr "ansatte"
#. module: hr_timesheet
#: view:account.analytic.account:0
msgid "Stats by month"
msgstr "Statistikk pr. måned"
#. module: hr_timesheet
#: view:account.analytic.account:0
#: field:hr.analytical.timesheet.employee,month:0
#: field:hr.analytical.timesheet.users,month:0
msgid "Month"
msgstr "Måned"
#. module: hr_timesheet
#: field:hr.sign.out.project,info:0
msgid "Work Description"
msgstr "Arbeidsbeskrivelse"
#. module: hr_timesheet
#: view:account.analytic.account:0
msgid "To be invoiced"
msgstr ""
#. module: hr_timesheet
#: model:ir.actions.report.xml,name:hr_timesheet.report_user_timesheet
msgid "Employee timesheet"
msgstr ""
#. module: hr_timesheet
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_sign_in
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_sign_out
msgid "Sign in / Sign out by project"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:42
#: code:addons/hr_timesheet/report/users_timesheet.py:76
#, python-format
msgid "Fri"
msgstr "Fre"
#. module: hr_timesheet
#: view:hr.sign.in.project:0
msgid "Sign in / Sign out"
msgstr "Logg inn / Logg ut"
#. module: hr_timesheet
#: code:addons/hr_timesheet/hr_timesheet.py:174
#, python-format
msgid ""
"Analytic journal is not defined for employee %s \n"
"Define an employee for the selected user and assign an analytic journal!"
msgstr ""
#. module: hr_timesheet
#: view:hr.sign.in.project:0
msgid "(Keep empty for current time)"
msgstr ""
#. module: hr_timesheet
#: view:hr.employee:0
msgid "Timesheets"
msgstr "Timelister"
#. module: hr_timesheet
#: help:hr.employee,product_id:0
msgid "Specifies employee's designation as a product with type 'service'."
msgstr ""
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "août"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "August"
msgstr "August"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "June"
msgstr "Juni"
#. module: hr_timesheet
#: view:hr.analytical.timesheet.employee:0
msgid "Print My Timesheet"
msgstr "Skriv ut min timeliste"
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "mars"
msgstr "mars"
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Date"
msgstr "Dato"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "November"
msgstr "November"
#. module: hr_timesheet
#: constraint:hr.employee:0
msgid "Error ! You cannot create recursive Hierarchy of Employees."
msgstr ""
#. module: hr_timesheet
#: field:hr.sign.out.project,date:0
msgid "Closing Date"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "October"
msgstr "Oktober"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "January"
msgstr "Januar"
#. module: hr_timesheet
#: view:account.analytic.account:0
msgid "Key dates"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:42
#: code:addons/hr_timesheet/report/users_timesheet.py:76
#, python-format
msgid "Thu"
msgstr "Tor"
#. module: hr_timesheet
#: view:account.analytic.account:0
msgid "Analysis stats"
msgstr ""
#. module: hr_timesheet
#: model:ir.model,name:hr_timesheet.model_hr_analytical_timesheet_employee
msgid "Print Employee Timesheet & Print My Timesheet"
msgstr ""
#. module: hr_timesheet
#: field:hr.sign.in.project,emp_id:0
#: field:hr.sign.out.project,emp_id:0
msgid "Employee ID"
msgstr "Ansatt-ID"
#. module: hr_timesheet
#: view:hr.sign.out.project:0
msgid "General Information"
msgstr "Generell informasjon"
#. module: hr_timesheet
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_my
msgid "My Timesheet"
msgstr "Min timeliste"
#. module: hr_timesheet
#: view:account.analytic.account:0
msgid "Analysis summary"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "December"
msgstr "Desember"
#. module: hr_timesheet
#: view:hr.analytical.timesheet.employee:0
#: view:hr.analytical.timesheet.users:0
#: view:hr.sign.in.project:0
#: view:hr.sign.out.project:0
msgid "Cancel"
msgstr "Avbryt"
#. module: hr_timesheet
#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_users
#: model:ir.actions.report.xml,name:hr_timesheet.report_users_timesheet
#: model:ir.actions.wizard,name:hr_timesheet.wizard_hr_timesheet_users
#: model:ir.ui.menu,name:hr_timesheet.menu_hr_timesheet_users
msgid "Employees Timesheet"
msgstr ""
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "février"
msgstr ""
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Information"
msgstr "Informasjon"
#. module: hr_timesheet
#: field:hr.analytical.timesheet.employee,employee_id:0
#: model:ir.model,name:hr_timesheet.model_hr_employee
msgid "Employee"
msgstr "Ansatt"
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "avril"
msgstr ""
#. module: hr_timesheet
#: field:hr.sign.in.project,server_date:0
#: field:hr.sign.out.project,server_date:0
msgid "Current Date"
msgstr "Dagens dato"
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Anlytic account"
msgstr "Analytisk konto"
#. module: hr_timesheet
#: view:hr.analytical.timesheet.employee:0
msgid "This wizard will print monthly timesheet"
msgstr ""
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
#: field:hr.employee,product_id:0
msgid "Product"
msgstr "Produkt"
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Invoicing"
msgstr "Fakturering"
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "May"
msgstr "Mai"
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Total time"
msgstr "Totaltid"
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "juin"
msgstr ""
#. module: hr_timesheet
#: view:hr.sign.in.project:0
msgid "(local time on the server side)"
msgstr ""
#. module: hr_timesheet
#: model:ir.actions.act_window,name:hr_timesheet.act_hr_timesheet_line_evry1_all_form
#: model:ir.ui.menu,name:hr_timesheet.menu_hr_working_hours
msgid "Working Hours"
msgstr "Arbeidstid"
#. module: hr_timesheet
#: model:ir.model,name:hr_timesheet.model_hr_sign_in_project
msgid "Sign In By Project"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "February"
msgstr "Februar"
#. module: hr_timesheet
#: field:hr.analytic.timesheet,line_id:0
msgid "Analytic line"
msgstr "Analytisk linje"
#. module: hr_timesheet
#: model:ir.model,name:hr_timesheet.model_hr_sign_out_project
msgid "Sign Out By Project"
msgstr ""
#. module: hr_timesheet
#: view:hr.analytical.timesheet.users:0
msgid "Employees"
msgstr "Ansatte"
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "octobre"
msgstr ""
#. module: hr_timesheet
#: code:addons/hr_timesheet/report/user_timesheet.py:39
#: code:addons/hr_timesheet/report/users_timesheet.py:72
#, python-format
msgid "April"
msgstr "April"
#. module: hr_timesheet
#: code:addons/hr_timesheet/hr_timesheet.py:176
#, python-format
msgid ""
"No analytic account defined on the project.\n"
"Please set one or we can not automatically fill the timesheet."
msgstr ""
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "mai"
msgstr ""
#. module: hr_timesheet
#: view:account.analytic.account:0
#: view:hr.analytic.timesheet:0
msgid "Users"
msgstr "Brukere"
#. module: hr_timesheet
#: view:hr.sign.in.project:0
msgid "Start Working"
msgstr "Begynn arbeid"
#. module: hr_timesheet
#: view:account.analytic.account:0
msgid "Stats by user"
msgstr "Statistikk pr. bruker"
#. module: hr_timesheet
#: code:addons/hr_timesheet/wizard/hr_timesheet_print_employee.py:42
#, python-format
msgid "No employee defined for this user"
msgstr "Ingen ansatt er angitt for denne brukeren"
#. module: hr_timesheet
#: field:hr.analytical.timesheet.employee,year:0
#: field:hr.analytical.timesheet.users,year:0
msgid "Year"
msgstr "År"
#. module: hr_timesheet
#: view:hr.analytic.timesheet:0
msgid "Accounting"
msgstr ""
#. module: hr_timesheet
#: field:hr.analytic.timesheet,partner_id:0
msgid "Partner Id"
msgstr ""
#. module: hr_timesheet
#: view:hr.sign.out.project:0
msgid "Change Work"
msgstr ""
#. module: hr_timesheet
#: selection:hr.analytical.timesheet.employee,month:0
#: selection:hr.analytical.timesheet.users,month:0
msgid "septembre"
msgstr ""

View File

@ -22,6 +22,8 @@ import time
import base64
from tools.translate import _
import tools
from decimal import Decimal
from osv import fields, osv
class vat_listing_clients(osv.osv_memory):
@ -58,8 +60,8 @@ class partner_vat(osv.osv_memory):
obj_vat_lclient = self.pool.get('vat.listing.clients')
obj_model_data = self.pool.get('ir.model.data')
data = self.read(cursor, user, ids)[0]
period = obj_period.search(cursor, user, [('fiscalyear_id', '=', data['fyear'])], context=context)
p_id_list = obj_partner.search(cursor, user, [('vat_subjected', '!=', False)], context=context)
period = obj_period.search(cursor, user, [('fiscalyear_id', '=', data['fyear'][0])], context=context)
p_id_list = obj_partner.search(cursor, user, [('vat_subjected', '!=', False),('customer','=',True)], context=context)
if not p_id_list:
raise osv.except_osv(_('Data Insufficient!'), _('No partner has a VAT Number asociated with him.'))
partners = []
@ -72,12 +74,12 @@ class partner_vat(osv.osv_memory):
#(or one of their) default address(es) located in Belgium.
go_ahead = False
for ads in obj_partner.address:
if ads.type == 'default' and (ads.country_id and ads.country_id.code == 'BE'):
if ads.type == 'default' and (ads.country_id and ads.country_id.code == 'BE') and (obj_partner.vat or '').startswith('BE'):
go_ahead = True
break
if not go_ahead:
continue
cursor.execute('select b.code, sum(credit)-sum(debit) from account_move_line l left join account_account a on (l.account_id=a.id) left join account_account_type b on (a.user_type=b.id) where b.code IN %s and l.partner_id=%s and l.period_id IN %s group by b.code',(('produit','tax'),obj_partner.id,tuple(period),))
cursor.execute('select b.code, sum(credit)-sum(debit) from account_move_line l left join account_account a on (l.account_id=a.id) left join account_account_type b on (a.user_type=b.id) where b.code IN %s and l.partner_id=%s and l.period_id IN %s group by b.code',(('produit', 'tax', 'income'),obj_partner.id,tuple(period),))
line_info = cursor.fetchall()
if not line_info:
continue
@ -87,14 +89,14 @@ class partner_vat(osv.osv_memory):
#it seems that this listing is only for belgian customers
record['country'] = 'BE'
record['amount'] = 0
record['turnover'] = 0
record['amount'] = Decimal(str(0.0))
record['turnover'] = Decimal(str(0.0))
record['name'] = obj_partner.name
for item in line_info:
if item[0] == 'produit':
record['turnover'] += item[1]
if item[0] in ('produit','income'):
record['turnover'] += Decimal(str(item[1]))
else:
record['amount'] += item[1]
record['amount'] += Decimal(str(item[1]))
id_client = obj_vat_lclient.create(cursor, user, record, context=context)
partners.append(id_client)
records.append(record)
@ -155,8 +157,8 @@ class partner_vat_list(osv.osv_memory):
raise osv.except_osv(_('Data Insufficient'),_('No VAT Number Associated with Main Company!'))
cref = company_vat + seq_controlref
dnum = cref + seq_declarantnum
obj_year= obj_fyear.browse(cursor, user, context['fyear'], context=context)
dnum = cref[2:] + (seq_declarantnum or '')
obj_year= obj_fyear.browse(cursor, user, context['fyear'][0], context=context)
street = zip_city = country = ''
addr = obj_partner.address_get(cursor, user, [obj_cmpny.partner_id.id], ['invoice'])
if addr.get('invoice',False):
@ -173,16 +175,16 @@ class partner_vat_list(osv.osv_memory):
country = ads.country_id.code
sender_date = time.strftime('%Y-%m-%d')
comp_name = obj_cmpny.name
# comp_name = obj_cmpny.name
data_file = '<?xml version="1.0"?>\n<VatList xmlns="http://www.minfin.fgov.be/VatList" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.minfin.fgov.be/VatList VatList.xml" RecipientId="VAT-ADMIN" SenderId="'+ str(company_vat) + '"'
data_file +=' ControlRef="'+ cref + '" MandataireId="'+ context['mand_id'] + '" SenderDate="'+ str(sender_date)+ '"'
data_file +=' ControlRef="'+ cref[2:] + '" MandataireId="'+ tools.ustr(context['mand_id']) + '" SenderDate="'+ str(sender_date)+ '"'
if ['test_xml']:
data_file += ' Test="0"'
data_file += ' VersionTech="1.2">'
data_file += '\n<AgentRepr DecNumber="1">\n\t<CompanyInfo>\n\t\t<VATNum>'+str(company_vat)+'</VATNum>\n\t\t<Name>'+ comp_name +'</Name>\n\t\t<Street>'+ street +'</Street>\n\t\t<CityAndZipCode>'+ zip_city +'</CityAndZipCode>'
data_file += '\n\t\t<Country>'+ country +'</Country>\n\t</CompanyInfo>\n</AgentRepr>'
data_comp = '\n<CompanyInfo>\n\t<VATNum>'+str(company_vat)+'</VATNum>\n\t<Name>'+ comp_name +'</Name>\n\t<Street>'+ street +'</Street>\n\t<CityAndZipCode>'+ zip_city +'</CityAndZipCode>\n\t<Country>'+ country +'</Country>\n</CompanyInfo>'
data_period = '\n<Period>'+ obj_year.date_stop[:4] +'</Period>'
data_file += ' VersionTech="1.3">'
data_file += '\n<AgentRepr DecNumber="1">\n\t<CompanyInfo>\n\t\t<VATNum>'+str(company_vat)+'</VATNum>\n\t\t<Name>'+ tools.ustr(obj_cmpny.name) +'</Name>\n\t\t<Street>'+ tools.ustr(street) +'</Street>\n\t\t<CityAndZipCode>'+ tools.ustr(zip_city) +'</CityAndZipCode>'
data_file += '\n\t\t<Country>'+ tools.ustr(country) +'</Country>\n\t</CompanyInfo>\n</AgentRepr>'
data_comp = '\n<CompanyInfo>\n\t<VATNum>'+str(company_vat)+'</VATNum>\n\t<Name>'+ tools.ustr(obj_cmpny.name) +'</Name>\n\t<Street>'+ tools.ustr(street) +'</Street>\n\t<CityAndZipCode>'+ tools.ustr(zip_city) +'</CityAndZipCode>\n\t<Country>'+ tools.ustr(country) +'</Country>\n</CompanyInfo>'
data_period = '\n<Period>'+ tools.ustr(obj_year.date_stop[:4]) +'</Period>'
error_message = []
data = self.read(cursor, user, ids)[0]
for partner in data['partner_ids']:
@ -193,22 +195,22 @@ class partner_vat_list(osv.osv_memory):
datas.append(client_data)
seq = 0
data_clientinfo = ''
sum_tax = 0.00
sum_turnover = 0.00
sum_tax = Decimal(str(0.00))
sum_turnover=Decimal(str(0.00))
if len(error_message):
return 'Exception : \n' +'-'*50+'\n'+ '\n'.join(error_message)
for line in datas:
if not line:
continue
if line['turnover'] < context['limit_amount']:
if Decimal(str(line['turnover'])) < Decimal(str(context['limit_amount'])):
continue
seq += 1
sum_tax += line['amount']
sum_turnover += line['turnover']
data_clientinfo += '\n<ClientList SequenceNum="'+str(seq)+'">\n\t<CompanyInfo>\n\t\t<VATNum>'+line['vat'] +'</VATNum>\n\t\t<Country>' + line['country'] +'</Country>\n\t</CompanyInfo>\n\t<Amount>'+str(int(round(line['amount'] * 100))) +'</Amount>\n\t<TurnOver>'+str(int(round(line['turnover'] * 100))) +'</TurnOver>\n</ClientList>'
sum_tax +=Decimal(str(line['amount']))
sum_turnover +=Decimal(str(line['turnover']))
data_clientinfo += '\n<ClientList SequenceNum="'+str(seq)+'">\n\t<CompanyInfo>\n\t\t<VATNum>'+ (line['vat'] or '')[2:] +'</VATNum>\n\t\t<Country>' + tools.ustr(line['country']) +'</Country>\n\t</CompanyInfo>\n\t<Amount>'+ str(int(Decimal(str(line['amount'] * 100)))) +'</Amount>\n\t<TurnOver>'+ str(int(Decimal(str(line['turnover'] * 100)))) +'</TurnOver>\n</ClientList>'
data_decl ='\n<DeclarantList SequenceNum="1" DeclarantNum="'+ dnum + '" ClientNbr="'+ str(seq) +'" TurnOverSum="'+ str(int(round(sum_turnover * 100))) +'" TaxSum="'+ str(int(round(sum_tax * 100))) +'" />'
data_file += data_decl + data_comp + str(data_period) + data_clientinfo + '\n</VatList>'
data_decl ='\n<DeclarantList SequenceNum="1" DeclarantNum="'+ dnum + '" ClientNbr="'+ str(seq) +'" TurnOverSum="'+ str(int(Decimal(str(sum_turnover * 100)))) +'" TaxSum="'+ str(int(Decimal(str(sum_tax * 100)))) +'">'
data_file += tools.ustr(data_decl) + tools.ustr(data_comp) + tools.ustr(data_period) + tools.ustr(data_clientinfo) + '\n</DeclarantList></VatList>'
msg = 'Save the File with '".xml"' extension.'
file_save = base64.encodestring(data_file.encode('utf8'))
self.write(cursor, user, ids, {'file_save':file_save, 'msg':msg, 'name':'vat_list.xml'}, context=context)

View File

@ -71,13 +71,13 @@ class l10n_be_vat_declaration(osv.osv_memory):
tax_code_ids = obj_tax_code.search(cr, uid, [], context=context)
ctx = context.copy()
data = self.read(cr, uid, ids)[0]
ctx['period_id'] = data['period_id'] #added context here
ctx['period_id'] = data['period_id'][0] #added context here
tax_info = obj_tax_code.read(cr, uid, tax_code_ids, ['code','sum_period'], context=ctx)
address = post_code = city = country_code = ''
city, post_code, address, country_code = self.pool.get('res.company')._get_default_ad(obj_company.partner_id.address)
account_period = obj_acc_period.browse(cr, uid, data['period_id'], context=context)
account_period = obj_acc_period.browse(cr, uid, data['period_id'][0], context=context)
send_ref = str(obj_company.partner_id.id) + str(account_period.date_start[5:7]) + str(account_period.date_stop[:4])
data_of_file = '<?xml version="1.0"?>\n<VATSENDING xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="MultiDeclarationTVA-NoSignature-16.xml">'

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-04-07 04:37+0000\n"
"X-Launchpad-Export-Date: 2011-04-08 04:45+0000\n"
"X-Generator: Launchpad (build 12735)\n"
#. module: product

View File

@ -0,0 +1,305 @@
# Galician translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
"PO-Revision-Date: 2011-04-07 08:52+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Galician <gl@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: 2011-04-08 04:45+0000\n"
"X-Generator: Launchpad (build 12735)\n"
#. module: product_margin
#: view:product.product:0
#: field:product.product,turnover:0
msgid "Turnover"
msgstr "Volume de negocio"
#. module: product_margin
#: field:product.product,expected_margin_rate:0
msgid "Expected Margin (%)"
msgstr "Marxe prevista (%)"
#. module: product_margin
#: field:product.margin,from_date:0
msgid "From"
msgstr "Desde"
#. module: product_margin
#: help:product.product,sale_expected:0
msgid ""
"Sum of Multification of Sale Catalog price and quantity of Customer Invoices"
msgstr ""
"Suma da multiplicación do prezo do catálogo de venda e cantidade das "
"facturas do cliente"
#. module: product_margin
#: help:product.product,total_margin:0
msgid "Turnorder - Standard price"
msgstr "Volume de negocio - Prezo estándar"
#. module: product_margin
#: field:product.margin,to_date:0
msgid "To"
msgstr "Ata"
#. module: product_margin
#: field:product.product,date_to:0
msgid "To Date"
msgstr "Ata a data"
#. module: product_margin
#: field:product.product,date_from:0
msgid "From Date"
msgstr "Desde a data"
#. module: product_margin
#: selection:product.margin,invoice_state:0
#: selection:product.product,invoice_state:0
msgid "Draft, Open and Paid"
msgstr "Borrador, aberto e pagado"
#. module: product_margin
#: field:product.product,purchase_avg_price:0
#: field:product.product,sale_avg_price:0
msgid "Avg. Unit Price"
msgstr "Media prezo unidade"
#. module: product_margin
#: model:ir.module.module,shortdesc:product_margin.module_meta_information
msgid "Margins in Product"
msgstr "Marxes en produtos"
#. module: product_margin
#: model:ir.model,name:product_margin.model_product_product
msgid "Product"
msgstr "Produto"
#. module: product_margin
#: view:product.product:0
msgid "Catalog Price"
msgstr "Prezo catálogo"
#. module: product_margin
#: selection:product.margin,invoice_state:0
#: selection:product.product,invoice_state:0
msgid "Paid"
msgstr "Pagado"
#. module: product_margin
#: help:product.product,sales_gap:0
msgid "Expected Sale - Turn Over"
msgstr "Venda prevista - Volume de negocio"
#. module: product_margin
#: model:ir.module.module,description:product_margin.module_meta_information
msgid ""
"\n"
"Adds a reporting menu in products that computes sales, purchases, margins\n"
"and other interesting indicators based on invoices. The wizard to launch\n"
"the report has several options to help you get the data you need.\n"
msgstr ""
"\n"
"Engade un menú de informes ós produtos, que calcula as vendas, as compras, "
"as marxes e outros indicadores interesantes en base ás facturas. O asistente "
"ofrécelle varias opcións para axudarlle a obter os datos que precisa.\n"
#. module: product_margin
#: view:product.product:0
msgid "Standard Price"
msgstr "Prezo estándar"
#. module: product_margin
#: field:product.product,sale_expected:0
msgid "Expected Sale"
msgstr "Venda prevista"
#. module: product_margin
#: help:product.product,normal_cost:0
msgid "Sum of Multification of Cost price and quantity of Supplier Invoices"
msgstr ""
"Suma da multiplicación do prezo de custo e da cantidade das facturas do "
"provedor"
#. module: product_margin
#: help:product.product,expected_margin:0
msgid "Expected Sale - Normal Cost"
msgstr "Venda prevista - Custo normal"
#. module: product_margin
#: view:product.product:0
msgid "Analysis Criteria"
msgstr "Criterios de análise"
#. module: product_margin
#: view:product.product:0
#: field:product.product,total_cost:0
msgid "Total Cost"
msgstr "Custo total"
#. module: product_margin
#: field:product.product,expected_margin:0
msgid "Expected Margin"
msgstr "Marxe prevista"
#. module: product_margin
#: view:product.product:0
msgid "#Purchased"
msgstr "Núm. mercados"
#. module: product_margin
#: help:product.product,turnover:0
msgid ""
"Sum of Multification of Invoice price and quantity of Customer Invoices"
msgstr ""
"Suma da multiplicación do prezo da factura e da cantidade de facturas do "
"cliente"
#. module: product_margin
#: help:product.product,expected_margin_rate:0
msgid "Expected margin * 100 / Expected Sale"
msgstr "Marxe prevista * 100 / Venda prevista"
#. module: product_margin
#: help:product.product,sale_avg_price:0
msgid "Avg. Price in Customer Invoices)"
msgstr "Prezo medio en facturas de cliente)"
#. module: product_margin
#: help:product.product,total_cost:0
msgid ""
"Sum of Multification of Invoice price and quantity of Supplier Invoices "
msgstr ""
"Suma da multiplicación do prezo da factura e da cantidade de facturas do "
"provedor "
#. module: product_margin
#: field:product.margin,invoice_state:0
#: field:product.product,invoice_state:0
msgid "Invoice State"
msgstr "Estado da factura"
#. module: product_margin
#: help:product.product,purchase_gap:0
msgid "Normal Cost - Total Cost"
msgstr "Custo normal - Custo total"
#. module: product_margin
#: field:product.product,total_margin:0
msgid "Total Margin"
msgstr "Marxe total"
#. module: product_margin
#: view:product.product:0
#: field:product.product,sales_gap:0
msgid "Sales Gap"
msgstr "Diferenza vendas"
#. module: product_margin
#: field:product.product,normal_cost:0
msgid "Normal Cost"
msgstr "Custo normal"
#. module: product_margin
#: view:product.product:0
msgid "Purchases"
msgstr "Compras"
#. module: product_margin
#: help:product.product,purchase_avg_price:0
msgid "Avg. Price in Supplier Invoices "
msgstr "Prezo medio en facturas de provedor "
#. module: product_margin
#: help:product.product,purchase_num_invoiced:0
msgid "Sum of Quantity in Supplier Invoices"
msgstr "Suma da cantidade en facturas provedor"
#. module: product_margin
#: view:product.margin:0
msgid "Properties categories"
msgstr "Categorías das propiedades"
#. module: product_margin
#: help:product.product,total_margin_rate:0
msgid "Total margin * 100 / Turnover"
msgstr "Marxe total * 100 / Volume de negocio"
#. module: product_margin
#: field:product.product,purchase_num_invoiced:0
#: field:product.product,sale_num_invoiced:0
msgid "# Invoiced"
msgstr "Nº facturado"
#. module: product_margin
#: selection:product.margin,invoice_state:0
#: selection:product.product,invoice_state:0
msgid "Open and Paid"
msgstr "Aberto e pechado"
#. module: product_margin
#: view:product.product:0
msgid "Sales"
msgstr "Vendas"
#. module: product_margin
#: code:addons/product_margin/wizard/product_margin.py:73
#: model:ir.actions.act_window,name:product_margin.product_margin_act_window
#: model:ir.ui.menu,name:product_margin.menu_action_product_margin
#: view:product.product:0
#, python-format
msgid "Product Margins"
msgstr "Marxes de produto"
#. module: product_margin
#: view:product.margin:0
msgid "General Information"
msgstr "Información xeral"
#. module: product_margin
#: constraint:product.product:0
msgid "Error: Invalid ean code"
msgstr "Erro: Código EAN non válido"
#. module: product_margin
#: field:product.product,purchase_gap:0
msgid "Purchase Gap"
msgstr "Diferenza compra"
#. module: product_margin
#: field:product.product,total_margin_rate:0
msgid "Total Margin (%)"
msgstr "Total marxe (%)"
#. module: product_margin
#: view:product.margin:0
msgid "Open Margins"
msgstr "Abrir marxes"
#. module: product_margin
#: view:product.margin:0
msgid "Cancel"
msgstr "Anular"
#. module: product_margin
#: view:product.product:0
msgid "Margins"
msgstr "Marxes"
#. module: product_margin
#: help:product.product,sale_num_invoiced:0
msgid "Sum of Quantity in Customer Invoices"
msgstr "Suma da cantidade en facturas de cliente"
#. module: product_margin
#: model:ir.model,name:product_margin.model_product_margin
msgid "Product Margin"
msgstr "Marxe produto"

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
"PO-Revision-Date: 2011-04-05 22:52+0000\n"
"Last-Translator: Rolv Råen <Unknown>\n"
"PO-Revision-Date: 2011-04-07 06:42+0000\n"
"Last-Translator: Rolv Råen (adEgo) <Unknown>\n"
"Language-Team: Norwegian Bokmal <nb@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: 2011-04-07 04:37+0000\n"
"X-Launchpad-Export-Date: 2011-04-08 04:45+0000\n"
"X-Generator: Launchpad (build 12735)\n"
#. module: project
@ -446,7 +446,7 @@ msgstr "Task '%s' lukket"
#: model:ir.model,name:project.model_account_analytic_account
#: field:project.project,analytic_account_id:0
msgid "Analytic Account"
msgstr "Kontodimensjon"
msgstr "Analytisk konto"
#. module: project
#: field:project.task.work,user_id:0

View File

@ -25,10 +25,17 @@ class crm_meeting(osv.osv):
_inherit = "crm.meeting"
def unlink(self, cr, uid, ids, context=None):
ids = self.web_client_unfucking_timebomb(ids)
res = super(crm_meeting, self).unlink(cr, uid, ids, context=context)
ids_real = self.remove_virtual_id(ids)
model_obj = self.pool.get('ir.model.data')
model_ids = model_obj.search(cr, uid, [('res_id','in',ids),('model','=','crm.meeting'),('module','=','sync_google_calendar')], context=context)
remain_ids = self.search(cr, uid, [('id','in',ids_real)])
ids_to_remove = list(set(ids_real) - set(remain_ids))
model_ids = model_obj.search(cr, uid, [('res_id','in',ids_to_remove),('model','=','crm.meeting'),('module','=','sync_google_calendar')], context=context)
model_obj.unlink(cr, uid, model_ids, context=context)
return super(crm_meeting, self).unlink(cr, uid, ids, context=context)
return res
crm_meeting()

View File

@ -65,7 +65,7 @@ def _get_rules(self, datas):
new_val['end_date'] = until.strftime('%Y-%m-%d')
new_val['end_type'] = 'end_date'
datas.pop('UNTIL')
if datas.get('COUNT'):
new_val['count'] = datas.get('COUNT')
new_val['end_type'] = 'count'
@ -73,7 +73,8 @@ def _get_rules(self, datas):
if datas.get('INTERVAL'):
new_val['interval'] = datas.get('INTERVAL')
datas.pop('INTERVAL')
else:
new_val['interval'] = 1
if datas.get('BYMONTHDAY'):
new_val['day'] = datas.get('BYMONTHDAY')
@ -117,10 +118,13 @@ def _get_repeat_status(self, str_google):
return status
def _get_repeat_dates(self, x):
if x[3].startswith('BY'):
zone_time = x[4].split('+')[-1:][0].split(':')[0][:4]
if len(x) > 4:
if x[3].startswith('BY'):
zone_time = x[4].split('+')[-1:][0].split(':')[0][:4]
else:
zone_time = x[3].split('+')[-1:][0].split(':')[0][:4]
else:
zone_time = x[3].split('+')[-1:][0].split(':')[0][:4]
zone_time = x[2].split('+')[-1:][0].split(':')[0][:4]
tz_format = zone_time[:2]+':'+zone_time[2:]
repeat_start = x[1].split('\n')[0].split(':')[1]
repeat_end = x[2].split('\n')[0].split(':')[1]

235
addons/warning/i18n/nb.po Normal file
View File

@ -0,0 +1,235 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:16+0000\n"
"PO-Revision-Date: 2011-04-07 07:25+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@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: 2011-04-08 04:45+0000\n"
"X-Generator: Launchpad (build 12735)\n"
#. module: warning
#: model:ir.model,name:warning.model_purchase_order_line
#: field:product.product,purchase_line_warn:0
msgid "Purchase Order Line"
msgstr "Innkjøpsordrelinje"
#. module: warning
#: field:product.product,sale_line_warn_msg:0
msgid "Message for Sale Order Line"
msgstr "Melding for salgsordrelinje"
#. module: warning
#: field:product.product,purchase_line_warn_msg:0
msgid "Message for Purchase Order Line"
msgstr "Melding for innkjøpsordelinje"
#. module: warning
#: constraint:res.partner:0
msgid "Error ! You can not create recursive associated members."
msgstr ""
#. module: warning
#: model:ir.model,name:warning.model_stock_picking
msgid "Picking List"
msgstr "Plukkliste"
#. module: warning
#: field:product.product,sale_line_warn:0
msgid "Sale Order Line"
msgstr "Salgsordrelinje"
#. module: warning
#: view:product.product:0
msgid "Warning when Purchasing this Product"
msgstr "Advarsel ved kjøp av dette produktet"
#. module: warning
#: model:ir.model,name:warning.model_product_product
msgid "Product"
msgstr "Produkt"
#. module: warning
#: sql_constraint:purchase.order:0
#: sql_constraint:sale.order:0
msgid "Order Reference must be unique !"
msgstr "Ordrereferanse må være unik !"
#. module: warning
#: view:product.product:0
#: view:res.partner:0
msgid "Warnings"
msgstr "Advarsler"
#. module: warning
#: selection:product.product,purchase_line_warn:0
#: selection:product.product,sale_line_warn:0
#: selection:res.partner,invoice_warn:0
#: selection:res.partner,picking_warn:0
#: selection:res.partner,purchase_warn:0
#: selection:res.partner,sale_warn:0
msgid "Warning"
msgstr "Advarsel"
#. module: warning
#: selection:product.product,purchase_line_warn:0
#: selection:product.product,sale_line_warn:0
#: selection:res.partner,invoice_warn:0
#: selection:res.partner,picking_warn:0
#: selection:res.partner,purchase_warn:0
#: selection:res.partner,sale_warn:0
msgid "Blocking Message"
msgstr ""
#. module: warning
#: view:res.partner:0
msgid "Warning on the Invoice"
msgstr "Advarsel på faktuaren"
#. module: warning
#: selection:product.product,purchase_line_warn:0
#: selection:product.product,sale_line_warn:0
#: selection:res.partner,invoice_warn:0
#: selection:res.partner,picking_warn:0
#: selection:res.partner,purchase_warn:0
#: selection:res.partner,sale_warn:0
msgid "No Message"
msgstr "Ingen melding"
#. module: warning
#: model:ir.model,name:warning.model_account_invoice
#: field:res.partner,invoice_warn:0
msgid "Invoice"
msgstr "Faktura"
#. module: warning
#: model:ir.module.module,shortdesc:warning.module_meta_information
msgid "Module for Warnings form onchange Event"
msgstr ""
#. module: warning
#: view:product.product:0
msgid "Warning when Selling this Product"
msgstr "Advarsel ved salg av dette produktet"
#. module: warning
#: field:res.partner,sale_warn:0
msgid "Sale Order"
msgstr "Salgsordre"
#. module: warning
#: field:res.partner,picking_warn:0
msgid "Stock Picking"
msgstr ""
#. module: warning
#: model:ir.model,name:warning.model_purchase_order
#: field:res.partner,purchase_warn:0
msgid "Purchase Order"
msgstr "Innkjøpsordre"
#. module: warning
#: field:res.partner,sale_warn_msg:0
msgid "Message for Sale Order"
msgstr "Melding for salgsordre"
#. module: warning
#: field:res.partner,purchase_warn_msg:0
msgid "Message for Purchase Order"
msgstr "Melding for innkjøpsordre"
#. module: warning
#: code:addons/warning/warning.py:32
#: help:product.product,purchase_line_warn:0
#: help:product.product,sale_line_warn:0
#: help:res.partner,invoice_warn:0
#: help:res.partner,picking_warn:0
#: help:res.partner,purchase_warn:0
#: help:res.partner,sale_warn:0
#, python-format
msgid ""
"Selecting the \"Warning\" option will notify user with the message, "
"Selecting \"Blocking Message\" will throw an exception with the message and "
"block the flow. The Message has to be written in the next field."
msgstr ""
#. module: warning
#: code:addons/warning/warning.py:67
#: code:addons/warning/warning.py:96
#: code:addons/warning/warning.py:132
#: code:addons/warning/warning.py:163
#: code:addons/warning/warning.py:213
#: code:addons/warning/warning.py:246
#, python-format
msgid "Alert for %s !"
msgstr ""
#. module: warning
#: field:res.partner,invoice_warn_msg:0
msgid "Message for Invoice"
msgstr "Melding for faktura"
#. module: warning
#: model:ir.module.module,description:warning.module_meta_information
msgid "Module for Warnings form onchange Event."
msgstr ""
#. module: warning
#: view:res.partner:0
msgid "Warning on the Picking"
msgstr ""
#. module: warning
#: view:res.partner:0
msgid "Warning on the Purchase Order"
msgstr "Advarsel på innkjøpsordren"
#. module: warning
#: code:addons/warning/warning.py:68
#: code:addons/warning/warning.py:97
#: code:addons/warning/warning.py:134
#: code:addons/warning/warning.py:164
#: code:addons/warning/warning.py:214
#: code:addons/warning/warning.py:247
#, python-format
msgid "Warning for %s"
msgstr "Advarsel for %s"
#. module: warning
#: view:res.partner:0
msgid "Warning on the Sale Order"
msgstr "Advarsel på salgsordren"
#. module: warning
#: constraint:product.product:0
msgid "Error: Invalid ean code"
msgstr "Feil: Ugyldig ean kode"
#. module: warning
#: field:res.partner,picking_warn_msg:0
msgid "Message for Stock Picking"
msgstr ""
#. module: warning
#: model:ir.model,name:warning.model_res_partner
msgid "Partner"
msgstr "Partner"
#. module: warning
#: model:ir.model,name:warning.model_sale_order
msgid "Sales Order"
msgstr "Salgsordre"
#. module: warning
#: model:ir.model,name:warning.model_sale_order_line
msgid "Sales Order Line"
msgstr "Salgsordrelinje"