[MRG] merged main branch
bzr revid: stefan@therp.nl-20110622095400-sn4025tjk2fvfnol
This commit is contained in:
@@ -1331,6 +1331,7 @@ class account_move(osv.osv):
|
||||
|
||||
def _centralise(self, cr, uid, move, mode, context=None):
|
||||
assert mode in ('debit', 'credit'), 'Invalid Mode' #to prevent sql injection
|
||||
currency_obj = self.pool.get('res.currency')
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
@@ -1381,6 +1382,34 @@ class account_move(osv.osv):
|
||||
cr.execute('SELECT SUM(%s) FROM account_move_line WHERE move_id=%%s AND id!=%%s' % (mode,), (move.id, line_id2))
|
||||
result = cr.fetchone()[0] or 0.0
|
||||
cr.execute('update account_move_line set '+mode2+'=%s where id=%s', (result, line_id))
|
||||
|
||||
#adjust also the amount in currency if needed
|
||||
cr.execute("select currency_id, sum(amount_currency) as amount_currency from account_move_line where move_id = %s and currency_id is not null group by currency_id", (move.id,))
|
||||
for row in cr.dictfetchall():
|
||||
currency_id = currency_obj.browse(cr, uid, row['currency_id'], context=context)
|
||||
if not currency_obj.is_zero(cr, uid, currency_id, row['amount_currency']):
|
||||
amount_currency = row['amount_currency'] * -1
|
||||
account_id = amount_currency > 0 and move.journal_id.default_debit_account_id.id or move.journal_id.default_credit_account_id.id
|
||||
cr.execute('select id from account_move_line where move_id=%s and centralisation=\'currency\' and currency_id = %slimit 1', (move.id, row['currency_id']))
|
||||
res = cr.fetchone()
|
||||
if res:
|
||||
cr.execute('update account_move_line set amount_currency=%s , account_id=%s where id=%s', (amount_currency, account_id, res[0]))
|
||||
else:
|
||||
context.update({'journal_id': move.journal_id.id, 'period_id': move.period_id.id})
|
||||
line_id = self.pool.get('account.move.line').create(cr, uid, {
|
||||
'name': _('Currency Adjustment'),
|
||||
'centralisation': 'currency',
|
||||
'account_id': account_id,
|
||||
'move_id': move.id,
|
||||
'journal_id': move.journal_id.id,
|
||||
'period_id': move.period_id.id,
|
||||
'date': move.period_id.date_stop,
|
||||
'debit': 0.0,
|
||||
'credit': 0.0,
|
||||
'currency_id': row['currency_id'],
|
||||
'amount_currency': amount_currency,
|
||||
}, context)
|
||||
|
||||
return True
|
||||
|
||||
#
|
||||
|
||||
@@ -503,7 +503,7 @@ class account_move_line(osv.osv):
|
||||
}),
|
||||
'date_created': fields.date('Creation date', select=True),
|
||||
'analytic_lines': fields.one2many('account.analytic.line', 'move_id', 'Analytic lines'),
|
||||
'centralisation': fields.selection([('normal','Normal'),('credit','Credit Centralisation'),('debit','Debit Centralisation')], 'Centralisation', size=6),
|
||||
'centralisation': fields.selection([('normal','Normal'),('credit','Credit Centralisation'),('debit','Debit Centralisation'),('currency','Currency Adjustment')], 'Centralisation', size=8),
|
||||
'balance': fields.function(_balance, fnct_search=_balance_search, method=True, string='Balance'),
|
||||
'state': fields.selection([('draft','Unbalanced'), ('valid','Valid')], 'State', readonly=True,
|
||||
help='When new move line is created the state will be \'Draft\'.\n* When all the payments are done it will be in \'Valid\' state.'),
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
rml="account/report/account_print_invoice.rml"
|
||||
string="Invoices"
|
||||
attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/',''))"
|
||||
attachment_use="1"
|
||||
multi="True"/>
|
||||
<report id="account_transfers" model="account.transfer" name="account.transfer" string="Transfers" xml="account/report/transfer.xml" xsl="account/report/transfer.xsl"/>
|
||||
<report auto="False" id="account_intracom" menu="False" model="account.move.line" name="account.intracom" string="IntraCom"/>
|
||||
|
||||
+204
-188
File diff suppressed because it is too large
Load Diff
+200
-185
File diff suppressed because it is too large
Load Diff
@@ -263,7 +263,7 @@ class account_invoice(osv.osv):
|
||||
'move_lines':fields.function(_get_lines, method=True, type='many2many', relation='account.move.line', string='Entry Lines'),
|
||||
'residual': fields.function(_amount_residual, method=True, digits_compute=dp.get_precision('Account'), string='Residual',
|
||||
store={
|
||||
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 50),
|
||||
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line','move_id'], 50),
|
||||
'account.invoice.tax': (_get_invoice_tax, None, 50),
|
||||
'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount','invoice_id'], 50),
|
||||
'account.move.line': (_get_invoice_from_line, None, 50),
|
||||
|
||||
@@ -88,10 +88,10 @@ class account_balance(report_sxw.rml_parse, common_report_header):
|
||||
}
|
||||
self.sum_debit += account_rec['debit']
|
||||
self.sum_credit += account_rec['credit']
|
||||
if disp_acc == 'bal_movement':
|
||||
if disp_acc == 'movement':
|
||||
if not currency_obj.is_zero(self.cr, self.uid, currency, res['credit']) or not currency_obj.is_zero(self.cr, self.uid, currency, res['debit']) or not currency_obj.is_zero(self.cr, self.uid, currency, res['balance']):
|
||||
self.result_acc.append(res)
|
||||
elif disp_acc == 'bal_solde':
|
||||
elif disp_acc == 'not_zero':
|
||||
if not currency_obj.is_zero(self.cr, self.uid, currency, res['balance']):
|
||||
self.result_acc.append(res)
|
||||
else:
|
||||
|
||||
@@ -233,7 +233,7 @@
|
||||
<td>
|
||||
<para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para>
|
||||
</td>
|
||||
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
|
||||
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
|
||||
<td> <para style="terp_default_Centre_8">[[ get_filter(data)=='No Filter' and get_filter(data) or removeParentNode('para') ]] </para>
|
||||
<blockTable colWidths="60.0,60.0" style="Table5">[[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]
|
||||
<tr>
|
||||
|
||||
@@ -137,16 +137,17 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
|
||||
'name': account.name,
|
||||
'level': account.level,
|
||||
'balance':account.balance,
|
||||
'type': account.type,
|
||||
}
|
||||
currency = account.currency_id and account.currency_id or account.company_id.currency_id
|
||||
if typ == 'liability' and account.type <> 'view' and (account.debit <> account.credit):
|
||||
self.result_sum_dr += account.balance
|
||||
if typ == 'asset' and account.type <> 'view' and (account.debit <> account.credit):
|
||||
self.result_sum_cr += account.balance
|
||||
if data['form']['display_account'] == 'bal_movement':
|
||||
if data['form']['display_account'] == 'movement':
|
||||
if not currency_pool.is_zero(self.cr, self.uid, currency, account.credit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.debit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.balance):
|
||||
accounts_temp.append(account_dict)
|
||||
elif data['form']['display_account'] == 'bal_solde':
|
||||
elif data['form']['display_account'] == 'not_zero':
|
||||
if not currency_pool.is_zero(self.cr, self.uid, currency, account.balance):
|
||||
accounts_temp.append(account_dict)
|
||||
else:
|
||||
@@ -163,10 +164,12 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
|
||||
for i in range(0,max(len(cal_list['liability']),len(cal_list['asset']))):
|
||||
if i < len(cal_list['liability']) and i < len(cal_list['asset']):
|
||||
temp={
|
||||
'type': cal_list['liability'][i]['type'],
|
||||
'code': cal_list['liability'][i]['code'],
|
||||
'name': cal_list['liability'][i]['name'],
|
||||
'level': cal_list['liability'][i]['level'],
|
||||
'balance':cal_list['liability'][i]['balance'],
|
||||
'type1': cal_list['asset'][i]['type'],
|
||||
'code1': cal_list['asset'][i]['code'],
|
||||
'name1': cal_list['asset'][i]['name'],
|
||||
'level1': cal_list['asset'][i]['level'],
|
||||
@@ -176,10 +179,12 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
|
||||
else:
|
||||
if i < len(cal_list['asset']):
|
||||
temp={
|
||||
'type': '',
|
||||
'code': '',
|
||||
'name': '',
|
||||
'level': False,
|
||||
'balance':False,
|
||||
'type1': cal_list['asset'][i]['type'],
|
||||
'code1': cal_list['asset'][i]['code'],
|
||||
'name1': cal_list['asset'][i]['name'],
|
||||
'level1': cal_list['asset'][i]['level'],
|
||||
@@ -188,10 +193,12 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header)
|
||||
self.result_temp.append(temp)
|
||||
if i < len(cal_list['liability']):
|
||||
temp={
|
||||
'type': cal_list['liability'][i]['type'],
|
||||
'code': cal_list['liability'][i]['code'],
|
||||
'name': cal_list['liability'][i]['name'],
|
||||
'level': cal_list['liability'][i]['level'],
|
||||
'balance':cal_list['liability'][i]['balance'],
|
||||
'type1': '',
|
||||
'code1': '',
|
||||
'name1': '',
|
||||
'level1': False,
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,1" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table5">
|
||||
<blockAlignment value="LEFT"/>
|
||||
@@ -115,7 +114,7 @@
|
||||
<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_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"/>
|
||||
<paraStyle name="terp_header_Left" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<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"/>
|
||||
@@ -124,6 +123,36 @@
|
||||
<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_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
|
||||
<paraStyle name="terp_level_1_code" fontName="Helvetica-Bold" fontSize="9.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_1_name" fontName="Helvetica-Bold" fontSize="9.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_1_balance" fontName="Helvetica-Bold" fontSize="9.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_2_code" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_2_name" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="10.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_2_balance" fontName="Helvetica-Bold" fontSize="8.0" leftIndent=".0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_code" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_code_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_name" fontName="Helvetica" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_balance" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_balance_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_4_name" fontName="Helvetica" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_4_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
|
||||
<blockTableStyle id="Table1">
|
||||
<blockTopPadding start="0,0" stop="-1,0" length="15"/>
|
||||
<blockFont name="Helvetica-Bold" size="10.0" />
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,1" thickness="1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockTopPadding start="0,0" stop="-1,0" length="10"/>
|
||||
<blockAlignment value="LEFT"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#666666" start="1,1" stop="1,1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table3">
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
|
||||
</stylesheet>
|
||||
<images/>
|
||||
<story>
|
||||
@@ -174,7 +203,7 @@
|
||||
</tr>
|
||||
</blockTable>
|
||||
</td>
|
||||
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
|
||||
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
|
||||
<td><para style="terp_default_Centre_8">[[ get_target_move(data) ]] </para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -187,35 +216,32 @@
|
||||
<blockTable colWidths="539.0" style="Table_Company_Name">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_header_Centre">Assets</para>
|
||||
<para style="terp_header_Left">Assets</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="100.0,326.0,113.0" style="Table1" repeatRows="1">
|
||||
<blockTable colWidths="100.0,326.0,113.0" style="Table_Account_Line_Title" repeatRows="1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">Assets</para>
|
||||
<para style="terp_default_Bold_9">Account</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Balance</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><font face="Times-Roman">[[ repeatIn(get_lines_another('asset'), 'a') ]]</font>[[ a['code'] ]]<font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]</font></para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9"><font color="white">[[ '. '*(a['level']-1) ]]</font><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]]</font></para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[ formatLang(a['balance']) ]] [[ company.currency_id.symbol ]]</font></para>
|
||||
</td>
|
||||
<tr style="Table3">
|
||||
[[ repeatIn(get_lines_another('asset'),'a' ) ]]
|
||||
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,a['level']))}) ]]
|
||||
<td><para style="terp_level_3_code">[[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_code'}) ]]<i>[[ a['code'] ]]</i></para></td>
|
||||
<td><para style="terp_level_3_name">[[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a['level']))+'_name'}) ]][[ a['name'] ]]</para></td>
|
||||
<td>[[ (a['level'] <>2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_balance'}) ]][[ formatLang(a['balance']) ]] [[company.currency_id.symbol ]]</para></td>
|
||||
<td>[[ a['level'] == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a['balance']) ]] [[company.currency_id.symbol ]]</u></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="426.0,113.0" style="Table_Net_Profit_Loss">
|
||||
@@ -235,7 +261,7 @@
|
||||
<blockTable colWidths="539.0" style="Table_Company_Name">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_header_Centre">Liabilities</para>
|
||||
<para style="terp_header_Left">Liabilities</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -245,22 +271,19 @@
|
||||
<para style="terp_default_Bold_9">Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">Liabilities</para>
|
||||
<para style="terp_default_Bold_9">Account</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Balance</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9"><font face="Times-Roman">[[ repeatIn(get_lines_another('liability'), 'a') ]]</font>[[ a['code'] ]]<font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]] </font><font>[[ a['name']=='Net Profit' and setTag('para','para',{'style':'terp_default_Bold_9'}) or removeParentNode('font') ]]</font></para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9"><font color="white">[[ '. '*(a['level']-1) ]]</font><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]]</font><font>[[ a['name']=='Net Profit' and setTag('para','para',{'style':'terp_default_Bold_9'}) or removeParentNode('font') ]]</font></para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[ formatLang(a['balance']) ]] [[ company.currency_id.symbol ]]</font><font>[[ a['name']=='Net Profit' and setTag('para','para',{'style':'terp_default_Right_9_Bold'}) or removeParentNode('font') ]]</font></para>
|
||||
</td>
|
||||
<tr style="Table3">
|
||||
[[ repeatIn(get_lines_another('liability'),'a' ) ]]
|
||||
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,a['level']))}) ]]
|
||||
<td><para style="terp_level_3_code">[[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_code'}) ]]<i>[[ a['code'] ]]</i></para></td>
|
||||
<td><para style="terp_level_3_name">[[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a['level']))+'_name'}) ]][[ a['name'] ]]</para></td>
|
||||
<td>[[ (a['level'] <>2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a['type'] =='view' and a['level'] >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_balance'}) ]][[ formatLang(a['balance']) ]] [[company.currency_id.symbol ]]</para></td>
|
||||
<td>[[ a['level'] == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a['balance']) ]] [[company.currency_id.symbol ]]</u></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="426.0,113.0" style="Table_Net_Profit_Loss">
|
||||
|
||||
@@ -163,7 +163,7 @@
|
||||
</tr>
|
||||
</blockTable>
|
||||
</td>
|
||||
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
|
||||
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
|
||||
<td><para style="terp_default_Centre_8">[[ get_target_move(data) ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
||||
@@ -117,10 +117,10 @@ class general_ledger(report_sxw.rml_parse, common_report_header):
|
||||
num_entry = self.cr.fetchone()[0] or 0
|
||||
sold_account = self._sum_balance_account(child_account)
|
||||
self.sold_accounts[child_account.id] = sold_account
|
||||
if self.display_account == 'bal_movement':
|
||||
if self.display_account == 'movement':
|
||||
if child_account.type != 'view' and num_entry <> 0:
|
||||
res.append(child_account)
|
||||
elif self.display_account == 'bal_solde':
|
||||
elif self.display_account == 'not_zero':
|
||||
if child_account.type != 'view' and num_entry <> 0:
|
||||
if not currency_obj.is_zero(self.cr, self.uid, currency, sold_account):
|
||||
res.append(child_account)
|
||||
|
||||
@@ -395,7 +395,7 @@
|
||||
<para style="terp_default_Centre_7">[[', '.join([ lt or '' for lt in get_journal(data) ]) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_7">[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]</para>
|
||||
<para style="terp_default_Centre_7">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_7">[[ get_filter(data)=='No Filter' and get_filter(data) or removeParentNode('para') ]]</para>
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
</tr>
|
||||
</blockTable>
|
||||
</td>
|
||||
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
|
||||
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
|
||||
<td><para style="terp_default_Centre_8">[[ get_target_move(data) ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
||||
@@ -101,6 +101,7 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
|
||||
|
||||
cal_list = {}
|
||||
account_id = data['form'].get('chart_account_id', False)
|
||||
company_currency = account_pool.browse(self.cr, self.uid, account_id).company_id.currency_id
|
||||
account_ids = account_pool._get_children_and_consol(cr, uid, account_id, context=ctx)
|
||||
accounts = account_pool.browse(cr, uid, account_ids, context=ctx)
|
||||
|
||||
@@ -113,15 +114,18 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
|
||||
self.result_sum_dr += account.debit - account.credit
|
||||
if typ == 'income' and account.type <> 'view' and (account.debit <> account.credit):
|
||||
self.result_sum_cr += account.credit - account.debit
|
||||
if data['form']['display_account'] == 'bal_movement':
|
||||
if data['form']['display_account'] == 'movement':
|
||||
if not currency_pool.is_zero(self.cr, self.uid, currency, account.credit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.debit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.balance):
|
||||
accounts_temp.append(account)
|
||||
elif data['form']['display_account'] == 'bal_solde':
|
||||
elif data['form']['display_account'] == 'not_zero':
|
||||
if not currency_pool.is_zero(self.cr, self.uid, currency, account.balance):
|
||||
accounts_temp.append(account)
|
||||
else:
|
||||
accounts_temp.append(account)
|
||||
if self.result_sum_dr > self.result_sum_cr:
|
||||
if currency_pool.is_zero(self.cr, self.uid, company_currency, (self.result_sum_dr-self.result_sum_cr)):
|
||||
self.res_pl['type'] = None
|
||||
self.res_pl['balance'] = 0.0
|
||||
elif self.result_sum_dr > self.result_sum_cr:
|
||||
self.res_pl['type'] = _('Net Loss')
|
||||
self.res_pl['balance'] = (self.result_sum_dr - self.result_sum_cr)
|
||||
else:
|
||||
|
||||
@@ -24,9 +24,8 @@
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table_Account_Line_Title">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<blockValign value="MIDDLE"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,1" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table3">
|
||||
<blockAlignment value="LEFT"/>
|
||||
@@ -41,17 +40,6 @@
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,1" stop="-1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table3">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
@@ -136,7 +124,38 @@
|
||||
<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_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
</stylesheet>
|
||||
|
||||
<paraStyle name="terp_level_1_code" fontName="Helvetica-Bold" fontSize="9.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_1_name" fontName="Helvetica-Bold" fontSize="9.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_1_balance" fontName="Helvetica-Bold" fontSize="9.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_2_code" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_2_name" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="10.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_2_balance" fontName="Helvetica-Bold" fontSize="8.0" leftIndent=".0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_code" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_code_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_name" fontName="Helvetica" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_balance" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_3_balance_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_4_name" fontName="Helvetica" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_level_4_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
|
||||
<blockTableStyle id="Table1">
|
||||
<blockTopPadding start="0,0" stop="-1,0" length="15"/>
|
||||
<blockFont name="Helvetica-Bold" size="10.0" />
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,1" thickness="1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockTopPadding start="0,0" stop="-1,0" length="10"/>
|
||||
<blockAlignment value="LEFT"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#666666" start="1,1" stop="1,1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table3">
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
|
||||
|
||||
</stylesheet>
|
||||
<images/>
|
||||
<story>
|
||||
<blockTable colWidths="539.0" style="Table_Company_Name">
|
||||
@@ -156,7 +175,7 @@
|
||||
<td><para style="terp_tblheader_General_Centre">Chart of Account </para></td>
|
||||
<td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td>
|
||||
<td><para style="terp_tblheader_General_Centre">Filter By [[ get_filter(data)!='No Filter' and get_filter(data) ]]</para></td>
|
||||
<td><para style="terp_tblheader_General_Centre">Display Account</para></td>
|
||||
<td><para style="terp_tblheader_General_Centre">Display Account</para></td>
|
||||
<td><para style="terp_tblheader_General_Centre">Target Moves</para></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -184,42 +203,33 @@
|
||||
</tr>
|
||||
</blockTable>
|
||||
</td>
|
||||
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
|
||||
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
|
||||
<td><para style="terp_default_Centre_8">[[ get_target_move(data) ]] </para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="Standard">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="terp_header">Expenses</para>
|
||||
<blockTable colWidths="100.0,326.0,113.0" style="Table_Account_Line_Title" repeatRows="1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">Expenses</para>
|
||||
<para style="terp_default_Bold_9">Account</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Balance</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">
|
||||
<font face="Times-Roman">[[ repeatIn(get_lines_another('expense'),'a' ) ]] </font>[[ a.code ]]<font>[[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">
|
||||
<font color="white">[[ '. '*(a.level-1) ]]</font><font>[[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a.name ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[ formatLang(a.balance) ]] [[ company.currency_id.symbol ]]</font></para>
|
||||
</td>
|
||||
<tr style="Table3">
|
||||
[[ repeatIn(get_lines_another('expense'),'a' ) ]]
|
||||
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,a.level))}) ]]
|
||||
<td><para style="terp_level_3_code">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_code'}) ]]<i>[[ a.code ]]</i></para></td>
|
||||
<td><para style="terp_level_3_name">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.level))+'_name'}) ]][[ a.name ]]</para></td>
|
||||
<td>[[ (a.level <>2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance) ]] [[company.currency_id.symbol ]]</para></td>
|
||||
<td>[[ a.level == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.balance) ]] [[company.currency_id.symbol ]]</u></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="100.0,326.0,113.0" style="Table_Net_Profit_Loss">
|
||||
@@ -249,32 +259,26 @@
|
||||
<para style="terp_default_Right_9_Bold">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="100.0,326.0,113.0" style="Table2" repeatRows="1">
|
||||
<para style="terp_header">Incomes</para>
|
||||
<blockTable colWidths="100.0,326.0,113.0" style="Table_Account_Line_Title" repeatRows="1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">Code</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">Incomes</para>
|
||||
<para style="terp_default_Bold_9">Account</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P1">Balance</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">
|
||||
<font face="Times-Roman">[[ repeatIn(get_lines_another('income'),'a') ]] </font>[[ a.code ]]<font>[[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">
|
||||
<font color="white">[[ '. '*(a.level-1) ]]</font><font>[[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a.name ]]</font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9"><font>[[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[ formatLang(a.balance) ]] [[ company.currency_id.symbol ]]</font></para>
|
||||
</td>
|
||||
<tr style="Table3">
|
||||
[[ repeatIn(get_lines_another('income'),'a' ) ]]
|
||||
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,a.level))}) ]]
|
||||
<td><para style="terp_level_3_code">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_code'}) ]]<i>[[ a.code ]]</i></para></td>
|
||||
<td><para style="terp_level_3_name">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.level))+'_name'}) ]][[ a.name ]]</para></td>
|
||||
<td>[[ (a.level <>2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance) ]] [[company.currency_id.symbol ]]</para></td>
|
||||
<td>[[ a.level == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.balance) ]] [[company.currency_id.symbol ]]</u></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="100.0,326.0,113.0" style="Table4">
|
||||
|
||||
@@ -31,12 +31,13 @@ class account_treasury_report(osv.osv):
|
||||
def _compute_balances(self, cr, uid, ids, field_names, arg=None, context=None,
|
||||
query='', query_params=()):
|
||||
all_treasury_lines = self.search(cr, uid, [], context=context)
|
||||
current_sum = 0
|
||||
all_companies = self.pool.get('res.company').search(cr, uid, [], context=context)
|
||||
current_sum = dict((company, 0.0) for company in all_companies)
|
||||
res = dict((id, dict((fn, 0.0) for fn in field_names)) for id in all_treasury_lines)
|
||||
for record in self.browse(cr, uid, all_treasury_lines, context=context):
|
||||
res[record.id]['starting_balance'] = current_sum
|
||||
current_sum += record.balance
|
||||
res[record.id]['ending_balance'] = current_sum
|
||||
res[record.id]['starting_balance'] = current_sum[record.company_id.id]
|
||||
current_sum[record.company_id.id] += record.balance
|
||||
res[record.id]['ending_balance'] = current_sum[record.company_id.id]
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
|
||||
@@ -103,6 +103,14 @@ class account_fiscalyear_close(osv.osv_memory):
|
||||
if accnt_type_data.close_method=='none' or account.type == 'view':
|
||||
continue
|
||||
if accnt_type_data.close_method=='balance':
|
||||
balance_in_currency = 0.0
|
||||
if account.currency_id:
|
||||
cr.execute('SELECT sum(amount_currency) as balance_in_currency FROM account_move_line ' \
|
||||
'WHERE account_id = %s ' \
|
||||
'AND ' + query_line + ' ' \
|
||||
'AND currency_id = %s', (account.id, account.currency_id.id))
|
||||
balance_in_currency = cr.dictfetchone()['balance_in_currency']
|
||||
|
||||
if abs(account.balance)>0.0001:
|
||||
obj_acc_move_line.create(cr, uid, {
|
||||
'debit': account.balance>0 and account.balance,
|
||||
@@ -111,7 +119,9 @@ class account_fiscalyear_close(osv.osv_memory):
|
||||
'date': period.date_start,
|
||||
'journal_id': new_journal.id,
|
||||
'period_id': period.id,
|
||||
'account_id': account.id
|
||||
'account_id': account.id,
|
||||
'currency_id': account.currency_id and account.currency_id.id or False,
|
||||
'amount_currency': balance_in_currency,
|
||||
}, {'journal_id': new_journal.id, 'period_id':period.id})
|
||||
if accnt_type_data.close_method == 'unreconciled':
|
||||
offset = 0
|
||||
|
||||
@@ -48,7 +48,7 @@ class account_bs_report(osv.osv_memory):
|
||||
}
|
||||
|
||||
_defaults={
|
||||
'display_type': True,
|
||||
'display_type': False,
|
||||
'journal_ids': [],
|
||||
'reserve_account_id': _get_def_reserve_account,
|
||||
}
|
||||
|
||||
@@ -26,13 +26,13 @@ class account_common_account_report(osv.osv_memory):
|
||||
_description = 'Account Common Account Report'
|
||||
_inherit = "account.common.report"
|
||||
_columns = {
|
||||
'display_account': fields.selection([('bal_all','All'), ('bal_movement','With movements'),
|
||||
('bal_solde','With balance is not equal to 0'),
|
||||
'display_account': fields.selection([('all','All'), ('movement','With movements'),
|
||||
('not_zero','With balance is not equal to 0'),
|
||||
],'Display Accounts', required=True),
|
||||
|
||||
}
|
||||
_defaults = {
|
||||
'display_account': 'bal_all',
|
||||
'display_account': 'movement',
|
||||
}
|
||||
|
||||
def pre_print_report(self, cr, uid, ids, data, context=None):
|
||||
|
||||
@@ -33,7 +33,7 @@ class account_pl_report(osv.osv_memory):
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'display_type': True,
|
||||
'display_type': False,
|
||||
'journal_ids': [],
|
||||
'target_move': False
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@ user rights to Demo user.
|
||||
"depends" : ["account"],
|
||||
'update_xml': [
|
||||
'security/account_security.xml',
|
||||
'account_accountant_data.xml'
|
||||
],
|
||||
'demo_xml': ['account_accountant_demo.xml'],
|
||||
'test': [],
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!--
|
||||
It's easier for new users to not activate this (ex: they misconfigure
|
||||
header and footer.)
|
||||
|
||||
<record model="ir.actions.report.xml" id="account.account_invoices">
|
||||
<field name="attachment_use">1</field>
|
||||
</record>
|
||||
-->
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -20,7 +20,7 @@
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
from osv.osv import osv_pool, object_proxy
|
||||
from osv.osv import object_proxy
|
||||
from tools.translate import _
|
||||
import pooler
|
||||
import time
|
||||
|
||||
+281
-261
File diff suppressed because it is too large
Load Diff
@@ -26,18 +26,35 @@
|
||||
"website" : "http://www.openerp.com",
|
||||
"category" : "Tools",
|
||||
"description": """
|
||||
This module replaces the cleartext password in the database with a password hash.
|
||||
=================================================================================
|
||||
Replaces cleartext passwords in the database with a secure hash
|
||||
===============================================================
|
||||
For your existing user base, the removal of the cleartext
|
||||
passwords occurs the first time a user logs into the database,
|
||||
after installing base_crypt.
|
||||
|
||||
It prevents anyone from reading the original password.
|
||||
For your existing user base, the removal of the cleartext passwords occurs the first time
|
||||
a user logs into the database, after installing base_crypt.
|
||||
After installing this module it won't be possible to recover a forgotten password for your
|
||||
users, the only solution is for an admin to set a new password.
|
||||
All passwords will be replaced by a secure, salted, cryptographic
|
||||
hash, preventing anyone from reading the original password in
|
||||
the database.
|
||||
|
||||
After installing this module it won't be possible to recover a
|
||||
forgotten password for your users, the only solution is for an
|
||||
admin to set a new password.
|
||||
|
||||
Security Warning
|
||||
++++++++++++++++
|
||||
Installing this module does not mean you can ignore other security measures,
|
||||
as the password is still transmitted unencrypted on the network, unless you
|
||||
are using a secure protocol such as XML-RPCS.
|
||||
It also does not protect the rest of the content of the database, which may
|
||||
contain critical data. Appropriate security measures need to be implemented
|
||||
by the system administrator in all areas, such as: protection of database
|
||||
backups, system files, remote shell access, physical server access, etc.
|
||||
|
||||
Interation with LDAP authentication
|
||||
+++++++++++++++++++++++++++++++++++
|
||||
This module is currently not compatible with the ``user_ldap`` module and
|
||||
will disable LDAP authentication completely if installed at the same time.
|
||||
|
||||
Note: installing this module does not mean you can ignore basic security measures,
|
||||
as the password is still transmitted unencrypted on the network (by the client),
|
||||
unless you are using a secure protocol such as XML-RPCS.
|
||||
""",
|
||||
"depends" : ["base"],
|
||||
"data" : [],
|
||||
|
||||
@@ -20,53 +20,11 @@
|
||||
##############################################################################
|
||||
|
||||
from xml.dom import minidom
|
||||
from osv.osv import osv_pool
|
||||
from osv import fields,osv
|
||||
import pooler
|
||||
import string
|
||||
import tools
|
||||
|
||||
class recording_objects_proxy(osv_pool):
|
||||
def execute(self, *args, **argv):
|
||||
if args[3] == 'create':
|
||||
_old_args = args[4].copy()
|
||||
elif args[3] == 'write':
|
||||
_old_args = args[5].copy()
|
||||
elif len(args) >= 5 and isinstance(args[4], dict):
|
||||
_old_args = args[4].copy()
|
||||
elif len(args) > 5 and args[3] != 'write' and isinstance(args[5], dict):
|
||||
_old_args = args[5].copy()
|
||||
else:
|
||||
_old_args = None
|
||||
res = super(recording_objects_proxy, self).execute(*args, **argv)
|
||||
pool = pooler.get_pool(args[0])
|
||||
mod = pool.get('ir.module.record')
|
||||
|
||||
if mod and mod.recording:
|
||||
if args[3] not in ('default_get','read','fields_view_get','fields_get','search','search_count','name_search','name_get','get','request_get', 'get_sc', 'unlink'):
|
||||
if _old_args is not None:
|
||||
if args[3] != 'write' and args[3] != 'create' and len(args) > 5 and isinstance(args[5], dict):
|
||||
args=list(args)
|
||||
args[5]=_old_args
|
||||
args=tuple(args)
|
||||
mod.recording_data.append(('osv_memory_action', args, argv ,None))
|
||||
else:
|
||||
if args[3] == 'create':
|
||||
args[4].update(_old_args)
|
||||
elif args[3] == 'write':
|
||||
args[5].update(_old_args)
|
||||
mod.recording_data.append(('query', args, argv,res))
|
||||
return res
|
||||
|
||||
def exec_workflow(self, *args, **argv):
|
||||
res = super(recording_objects_proxy, self).exec_workflow(*args, **argv)
|
||||
pool = pooler.get_pool(args[0])
|
||||
mod = pool.get('ir.module.record')
|
||||
if mod and mod.recording:
|
||||
mod.recording_data.append(('workflow', args, argv))
|
||||
return res
|
||||
|
||||
recording_objects_proxy()
|
||||
|
||||
class xElement(minidom.Element):
|
||||
"""dom.Element with compact print
|
||||
|
||||
Binary file not shown.
@@ -19,7 +19,7 @@
|
||||
<node oor:name="Submenu">
|
||||
<node oor:name="m11" oor:op="replace">
|
||||
<prop oor:name="URL" oor:type="xs:string">
|
||||
<value>service:org.openoffice.openerp.report.serverparam?execute</value>
|
||||
<value>service:org.openoffice.openerp.report.change?execute</value>
|
||||
</prop>
|
||||
<prop oor:name="Title" oor:type="xs:string">
|
||||
<value/>
|
||||
@@ -283,7 +283,7 @@
|
||||
<node oor:name="org.openoffice.openerp.report" oor:op="replace">
|
||||
<node oor:name="m11" oor:op="replace">
|
||||
<prop oor:name="URL" oor:type="xs:string">
|
||||
<value>service:org.openoffice.openerp.report.serverparam?execute</value>
|
||||
<value>service:org.openoffice.openerp.report.change?execute</value>
|
||||
</prop>
|
||||
<prop oor:name="ImageIdentifier" oor:type="xs:string">
|
||||
<value/>
|
||||
@@ -593,7 +593,7 @@
|
||||
</node>
|
||||
<node oor:name="org.openoffice.openerp.report.image8" oor:op="replace">
|
||||
<prop oor:name="URL">
|
||||
<value>service:org.openoffice.openerp.report.serverparam?execute</value>
|
||||
<value>service:org.openoffice.openerp.report.change?execute</value>
|
||||
</prop>
|
||||
<node oor:name="UserDefinedImages">
|
||||
<prop oor:name="ImageSmallURL" oor:type="xs:string">
|
||||
|
||||
@@ -44,68 +44,96 @@
|
||||
#
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import uno
|
||||
import string
|
||||
import unohelper
|
||||
import xmlrpclib
|
||||
from com.sun.star.task import XJobExecutor
|
||||
if __name__<>"package":
|
||||
from lib.gui import *
|
||||
from lib.error import ErrorDialog
|
||||
from lib.functions import *
|
||||
from lib.logreport import *
|
||||
from lib.rpc import *
|
||||
from ServerParameter import *
|
||||
database="test"
|
||||
|
||||
class Change:
|
||||
def __init__(self, aVal= None, sURL=""):
|
||||
class Change( unohelper.Base, XJobExecutor ):
|
||||
def __init__(self,ctx):
|
||||
self.ctx = ctx
|
||||
self.module = "openerp_report"
|
||||
self.version = "0.1"
|
||||
desktop=getDesktop()
|
||||
log_detail(self)
|
||||
self.logobj=Logger()
|
||||
doc = desktop.getCurrentComponent()
|
||||
docinfo=doc.getDocumentInfo()
|
||||
self.protocol = {
|
||||
'XML-RPC': 'http://',
|
||||
'XML-RPC secure': 'https://',
|
||||
'NET-RPC': 'socket://',
|
||||
}
|
||||
host=port=protocol=''
|
||||
if docinfo.getUserFieldValue(0):
|
||||
m = re.match('^(http[s]?://|socket://)([\w.\-]+):(\d{1,5})$', docinfo.getUserFieldValue(0) or '')
|
||||
host = m.group(2)
|
||||
port = m.group(3)
|
||||
protocol = m.group(1)
|
||||
if protocol:
|
||||
for (key, value) in self.protocol.iteritems():
|
||||
if value==protocol:
|
||||
protocol=key
|
||||
break
|
||||
else:
|
||||
protocol='XML-RPC'
|
||||
self.win=DBModalDialog(60, 50, 120, 90, "Connect to Open ERP Server")
|
||||
|
||||
self.win.addFixedText("lblVariable", 38, 12, 25, 15, "Server ")
|
||||
|
||||
self.win.addEdit("txtHost",-2,9,60,15,sURL[sURL.find("/")+2:sURL.rfind(":")])
|
||||
self.win.addEdit("txtHost",-2,9,60,15, host or 'localhost')
|
||||
|
||||
self.win.addFixedText("lblReportName",45 , 31, 15, 15, "Port ")
|
||||
self.win.addEdit("txtPort",-2,28,60,15,sURL[sURL.rfind(":")+1:])
|
||||
self.win.addEdit("txtPort",-2,28,60,15, port or "8069")
|
||||
|
||||
self.win.addFixedText("lblLoginName", 2, 51, 60, 15, "Protocol Connection")
|
||||
|
||||
self.win.addComboListBox("lstProtocol", -2, 48, 60, 15, True)
|
||||
self.lstProtocol = self.win.getControl( "lstProtocol" )
|
||||
|
||||
# self.lstProtocol.addItem( "XML-RPC", 0)
|
||||
#self.lstProtocol.addItem( "XML-RPC secure", 1)
|
||||
#self.lstProtocol.addItem( "NET-RPC (faster)", 2)
|
||||
|
||||
self.win.addButton( 'btnOK', -2, -5, 30, 15, 'Ok', actionListenerProc = self.btnOk_clicked )
|
||||
self.win.addButton( 'btnNext', -2, -5, 30, 15, 'Next', actionListenerProc = self.btnNext_clicked )
|
||||
|
||||
self.win.addButton( 'btnCancel', -2 - 30 - 5 ,-5, 30, 15, 'Cancel', actionListenerProc = self.btnCancel_clicked )
|
||||
self.aVal=aVal
|
||||
self.protocol = {
|
||||
'XML-RPC': 'http://',
|
||||
'XML-RPC secure': 'https://',
|
||||
'NET-RPC': 'socket://',
|
||||
}
|
||||
|
||||
for i in self.protocol.keys():
|
||||
self.lstProtocol.addItem(i,self.lstProtocol.getItemCount() )
|
||||
self.win.doModalDialog( "lstProtocol", protocol)
|
||||
|
||||
sValue=self.protocol.keys()[0]
|
||||
if sURL<>"":
|
||||
sValue=self.protocol.keys()[self.protocol.values().index(sURL[:sURL.find("/")+2])]
|
||||
|
||||
self.win.doModalDialog( "lstProtocol", sValue)
|
||||
|
||||
def btnOk_clicked(self,oActionEvent):
|
||||
def btnNext_clicked(self,oActionEvent):
|
||||
global url
|
||||
url = self.protocol[self.win.getListBoxSelectedItem("lstProtocol")]+self.win.getEditText("txtHost")+":"+self.win.getEditText("txtPort")
|
||||
self.sock=RPCSession(url)
|
||||
desktop=getDesktop()
|
||||
doc = desktop.getCurrentComponent()
|
||||
docinfo=doc.getDocumentInfo()
|
||||
docinfo.setUserFieldValue(0,url)
|
||||
res=self.sock.listdb()
|
||||
if res == -1:
|
||||
self.aVal.append(url)
|
||||
elif res == 0:
|
||||
self.aVal.append("No Database found !!!")
|
||||
else:
|
||||
self.aVal.append(url)
|
||||
self.aVal.append(res)
|
||||
aVal=''
|
||||
#aVal= Fetature used
|
||||
try:
|
||||
url = self.protocol[self.win.getListBoxSelectedItem("lstProtocol")]+self.win.getEditText("txtHost")+":"+self.win.getEditText("txtPort")
|
||||
self.sock=RPCSession(url)
|
||||
desktop=getDesktop()
|
||||
doc = desktop.getCurrentComponent()
|
||||
docinfo=doc.getDocumentInfo()
|
||||
docinfo.setUserFieldValue(0,url)
|
||||
res=self.sock.listdb()
|
||||
self.win.endExecute()
|
||||
ServerParameter(aVal,url)
|
||||
except :
|
||||
import traceback,sys
|
||||
info = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback))
|
||||
self.logobj.log_write('ServerParameter', LOG_ERROR, info)
|
||||
ErrorDialog("Connection to server fail. please check your Server Parameter", "", "Error")
|
||||
self.win.endExecute()
|
||||
|
||||
def btnCancel_clicked(self,oActionEvent):
|
||||
self.win.endExecute()
|
||||
|
||||
|
||||
def btnCancel_clicked( self, oActionEvent ):
|
||||
self.win.endExecute()
|
||||
if __name__<>"package" and __name__=="__main__":
|
||||
Change(None)
|
||||
elif __name__=="package":
|
||||
g_ImplementationHelper.addImplementation( Change, "org.openoffice.openerp.report.change", ("com.sun.star.task.Job",),)
|
||||
|
||||
|
||||
@@ -51,5 +51,5 @@ if __name__<>"package":
|
||||
class LoginTest:
|
||||
def __init__(self):
|
||||
if not loginstatus:
|
||||
ServerParameter(None)
|
||||
Change(None)
|
||||
|
||||
|
||||
+17
-43
@@ -59,8 +59,7 @@ if __name__<>"package":
|
||||
database="test"
|
||||
|
||||
class ServerParameter( unohelper.Base, XJobExecutor ):
|
||||
def __init__(self,ctx):
|
||||
self.ctx = ctx
|
||||
def __init__(self, aVal= None, sURL=""):
|
||||
self.module = "openerp_report"
|
||||
self.version = "0.1"
|
||||
desktop=getDesktop()
|
||||
@@ -69,19 +68,12 @@ class ServerParameter( unohelper.Base, XJobExecutor ):
|
||||
doc = desktop.getCurrentComponent()
|
||||
docinfo=doc.getDocumentInfo()
|
||||
self.win=DBModalDialog(60, 50, 160, 108, "Server Connection Parameter")
|
||||
|
||||
self.win.addFixedText("lblVariable", 2, 12, 35, 15, "Server URL")
|
||||
if docinfo.getUserFieldValue(0)=="":
|
||||
docinfo.setUserFieldValue(0,"http://localhost:8069")
|
||||
self.win.addEdit("txtHost",-34,9,91,15,docinfo.getUserFieldValue(0))
|
||||
self.win.addButton('btnChange',-2 ,9,30,15,'Change', actionListenerProc = self.btnChange_clicked )
|
||||
|
||||
docinfo.setUserFieldValue(0,"http://localhost:8069")
|
||||
self.win.addFixedText("txtHost",-20,12,105,15,sURL)
|
||||
self.win.addFixedText("lblDatabaseName", 6, 31, 31, 15, "Database")
|
||||
#self.win.addFixedText("lblMsg", -2,28,123,15)
|
||||
# self.win.addComboListBox("lstDatabase", -2,28,123,15, True)
|
||||
# self.lstDatabase = self.win.getControl( "lstDatabase" )
|
||||
#self.win.selectListBoxItem( "lstDatabase", docinfo.getUserFieldValue(2), True )
|
||||
#self.win.setEnabled("lblMsg",False)
|
||||
|
||||
|
||||
self.win.addFixedText("lblLoginName", 17, 51, 20, 15, "Login")
|
||||
self.win.addEdit("txtLoginName",-2,48,123,15,docinfo.getUserFieldValue(1))
|
||||
@@ -92,8 +84,9 @@ class ServerParameter( unohelper.Base, XJobExecutor ):
|
||||
|
||||
|
||||
self.win.addButton('btnOK',-2 ,-5, 60,15,'Connect' ,actionListenerProc = self.btnOk_clicked )
|
||||
|
||||
self.win.addButton('btnCancel',-2 - 60 - 5 ,-5, 35,15,'Cancel' ,actionListenerProc = self.btnCancel_clicked )
|
||||
self.win.addButton('btnPrevious',15 -80 ,-5,50,15,'Previous',actionListenerProc = self.btnPrevious_clicked)
|
||||
self.win.addButton('btnCancel',-2 - 110 - 5 ,-5, 35,15,'Cancel' ,actionListenerProc = self.btnCancel_clicked )
|
||||
|
||||
sValue=""
|
||||
if docinfo.getUserFieldValue(0)<>"":
|
||||
global url
|
||||
@@ -125,7 +118,6 @@ class ServerParameter( unohelper.Base, XJobExecutor ):
|
||||
|
||||
def btnOk_clicked(self,oActionEvent):
|
||||
|
||||
|
||||
sLogin=self.win.getEditText("txtLoginName")
|
||||
sPassword=self.win.getEditText("txtPassword")
|
||||
global url
|
||||
@@ -136,20 +128,14 @@ class ServerParameter( unohelper.Base, XJobExecutor ):
|
||||
sDatabase=self.win.getListBoxSelectedItem("lstDatabase")
|
||||
self.sock=RPCSession(url)
|
||||
UID = self.sock.login(sDatabase,sLogin,sPassword)
|
||||
if not UID :
|
||||
if not UID or UID==-1 :
|
||||
ErrorDialog("Connection Refuse...","Please enter valid Login/Password")
|
||||
self.win.endExecute()
|
||||
try:
|
||||
ids_module =self.sock.execute(sDatabase, UID, sPassword, 'ir.module.module', 'search', [('name','=','base_report_designer'),('state', '=', 'installed')])
|
||||
except :
|
||||
import traceback,sys
|
||||
info = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback))
|
||||
self.logobj.log_write('ServerParameter', LOG_ERROR, info)
|
||||
|
||||
# self.win.endExecute()
|
||||
ids_module =self.sock.execute(sDatabase, UID, sPassword, 'ir.module.module', 'search', [('name','=','base_report_designer'),('state', '=', 'installed')])
|
||||
if not len(ids_module):
|
||||
ErrorDialog("Please Install base_report_designer module", "", "Module Uninstalled Error")
|
||||
self.logobj.log_write('Module Not Found',LOG_WARNING, ':base_report_designer not install in database %s' % (sDatabase))
|
||||
self.win.endExecute()
|
||||
#self.win.endExecute()
|
||||
else:
|
||||
desktop=getDesktop()
|
||||
doc = desktop.getCurrentComponent()
|
||||
@@ -171,27 +157,15 @@ class ServerParameter( unohelper.Base, XJobExecutor ):
|
||||
self.logobj.log_write('successful login',LOG_INFO, ':successful login from %s using database %s' % (sLogin, sDatabase))
|
||||
self.win.endExecute()
|
||||
|
||||
|
||||
def btnCancel_clicked( self, oActionEvent ):
|
||||
self.win.endExecute()
|
||||
|
||||
def btnChange_clicked(self,oActionEvent):
|
||||
aVal=[]
|
||||
url= self.win.getEditText("txtHost")
|
||||
Change(aVal,url)
|
||||
if aVal[1]== -1:
|
||||
self.win.getEditText("lstDatabase")
|
||||
self.win.removeListBoxItems("lstDatabase", 0, self.win.getListBoxItemCount("lstDatabase"))
|
||||
self.win.setEditText("txtHost",aVal[0])
|
||||
for i in range(len(aVal[1])):
|
||||
self.lstDatabase.addItem(aVal[1][i],i)
|
||||
elif aVal[1]==0:
|
||||
ErrorDialog(aVal[0],"")
|
||||
else:
|
||||
self.win.setEditText("txtHost",aVal[0])
|
||||
self.win.removeListBoxItems("lstDatabase", 0, self.win.getListBoxItemCount("lstDatabase"))
|
||||
for i in range(len(aVal[1])):
|
||||
self.lstDatabase.addItem(aVal[1][i],i)
|
||||
|
||||
def btnPrevious_clicked(self,oActionEvent):
|
||||
self.win.endExecute()
|
||||
Change(None)
|
||||
self.win.endExecute()
|
||||
|
||||
|
||||
if __name__<>"package" and __name__=="__main__":
|
||||
ServerParameter(None)
|
||||
|
||||
+21
-21
@@ -8,24 +8,24 @@ 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-05-29 10:44+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2011-06-20 20:57+0000\n"
|
||||
"Last-Translator: Ayhan KIZILTAN <Unknown>\n"
|
||||
"Language-Team: Turkish <tr@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-05-30 04:59+0000\n"
|
||||
"X-Generator: Launchpad (build 12959)\n"
|
||||
"X-Launchpad-Export-Date: 2011-06-21 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
msgid "Value Mapping"
|
||||
msgstr ""
|
||||
msgstr "Değer Eşleme"
|
||||
|
||||
#. module: caldav
|
||||
#: help:caldav.browse,url:0
|
||||
msgid "Url of the caldav server, use for synchronization"
|
||||
msgstr ""
|
||||
msgstr "Caldav sunucusu url si, senkronize etmek için kullanın"
|
||||
|
||||
#. module: caldav
|
||||
#: field:basic.calendar.alias,name:0
|
||||
@@ -35,17 +35,17 @@ msgstr "Dosya ismi"
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_calendar_event_export
|
||||
msgid "Event Export"
|
||||
msgstr ""
|
||||
msgstr "Olay Dışaaktarımı"
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.subscribe:0
|
||||
msgid "Provide path for Remote Calendar"
|
||||
msgstr ""
|
||||
msgstr "Uzaktan Takvim yolunu belirt"
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.actions.act_window,name:caldav.action_calendar_event_import_values
|
||||
msgid "Import .ics File"
|
||||
msgstr ""
|
||||
msgstr ".ics Dosyası İçe aktar"
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.export:0
|
||||
@@ -61,7 +61,7 @@ msgstr "Katılımcı"
|
||||
#. module: caldav
|
||||
#: sql_constraint:basic.calendar.fields:0
|
||||
msgid "Can not map a field more than once"
|
||||
msgstr ""
|
||||
msgstr "Birden çok alan eşleştirilemiyor"
|
||||
|
||||
#. module: caldav
|
||||
#: code:addons/caldav/calendar.py:787
|
||||
@@ -94,12 +94,12 @@ msgstr "Hizmetler"
|
||||
#. module: caldav
|
||||
#: selection:basic.calendar.fields,fn:0
|
||||
msgid "Expression as constant"
|
||||
msgstr ""
|
||||
msgstr "Sabit İfade"
|
||||
|
||||
#. module: caldav
|
||||
#: selection:user.preference,device:0
|
||||
msgid "Evolution"
|
||||
msgstr ""
|
||||
msgstr "Evrim"
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.import:0
|
||||
@@ -127,12 +127,12 @@ msgstr "Caldav Sunucusu"
|
||||
#: code:addons/caldav/wizard/calendar_event_subscribe.py:59
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
msgstr "Hata!"
|
||||
|
||||
#. module: caldav
|
||||
#: help:caldav.browse,caldav_doc_file:0
|
||||
msgid "download full caldav Documentation."
|
||||
msgstr ""
|
||||
msgstr "Tam calsav Belgesi indir"
|
||||
|
||||
#. module: caldav
|
||||
#: selection:user.preference,device:0
|
||||
@@ -210,7 +210,7 @@ msgstr "YAPILACAK"
|
||||
#. module: caldav
|
||||
#: view:calendar.event.export:0
|
||||
msgid "Export ICS"
|
||||
msgstr ""
|
||||
msgstr "ICS Dışaaktar"
|
||||
|
||||
#. module: caldav
|
||||
#: selection:basic.calendar.fields,fn:0
|
||||
@@ -221,7 +221,7 @@ msgstr "Alanı Kullan"
|
||||
#: code:addons/caldav/calendar.py:787
|
||||
#, python-format
|
||||
msgid "Can not create line \"%s\" more than once"
|
||||
msgstr ""
|
||||
msgstr "\"%s\" Satırı birden çok oluşturulamıyor"
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
@@ -233,24 +233,24 @@ msgstr "Takvim Satırları"
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_calendar_event_subscribe
|
||||
msgid "Event subscribe"
|
||||
msgstr ""
|
||||
msgstr "Olay aboneliği"
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.import:0
|
||||
msgid "Import ICS"
|
||||
msgstr ""
|
||||
msgstr "ICS içeaktar"
|
||||
|
||||
#. module: caldav
|
||||
#: view:calendar.event.import:0
|
||||
#: view:calendar.event.subscribe:0
|
||||
#: view:user.preference:0
|
||||
msgid "_Cancel"
|
||||
msgstr ""
|
||||
msgstr "_Vazgeç"
|
||||
|
||||
#. module: caldav
|
||||
#: model:ir.model,name:caldav.model_basic_calendar_event
|
||||
msgid "basic.calendar.event"
|
||||
msgstr ""
|
||||
msgstr "temel.Etkinlik.olay"
|
||||
|
||||
#. module: caldav
|
||||
#: view:basic.calendar:0
|
||||
@@ -258,7 +258,7 @@ msgstr ""
|
||||
#: selection:basic.calendar.attributes,type:0
|
||||
#: selection:basic.calendar.lines,name:0
|
||||
msgid "Event"
|
||||
msgstr ""
|
||||
msgstr "Etkinlik"
|
||||
|
||||
#. module: caldav
|
||||
#: field:document.directory,calendar_collection:0
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# Finnish 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-06-20 10:45+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2011-06-21 04:36+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: claim_from_delivery
|
||||
#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
|
||||
msgid "Claim"
|
||||
msgstr "Reklamaatio"
|
||||
|
||||
#. module: claim_from_delivery
|
||||
#: model:ir.module.module,description:claim_from_delivery.module_meta_information
|
||||
msgid "Create Claim from delivery order:\n"
|
||||
msgstr "Luo reklamaatio toimitustilaukselta:\n"
|
||||
|
||||
#. module: claim_from_delivery
|
||||
#: model:ir.module.module,shortdesc:claim_from_delivery.module_meta_information
|
||||
msgid "Claim from delivery"
|
||||
msgstr "Reklamaatio toimitukselta"
|
||||
+7
-6
@@ -331,8 +331,6 @@ class crm_case(object):
|
||||
if not case.user_id:
|
||||
data['user_id'] = uid
|
||||
self.write(cr, uid, case.id, data)
|
||||
|
||||
|
||||
self._action(cr, uid, cases, 'open')
|
||||
return True
|
||||
|
||||
@@ -423,11 +421,14 @@ class crm_case(object):
|
||||
@param ids: List of case Ids
|
||||
@param *args: Tuple Value for additional Params
|
||||
"""
|
||||
state = 'draft'
|
||||
if 'crm.phonecall' in args:
|
||||
state = 'open'
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self._history(cr, uid, cases, _('Draft'))
|
||||
self.write(cr, uid, ids, {'state': 'draft', 'active': True})
|
||||
self._action(cr, uid, cases, 'draft')
|
||||
self.write(cr, uid, ids, {'state': state, 'active': True})
|
||||
self._action(cr, uid, cases, state)
|
||||
return True
|
||||
|
||||
def remind_partner(self, cr, uid, ids, context=None, attach=False):
|
||||
@@ -454,9 +455,9 @@ class crm_case(object):
|
||||
"""
|
||||
for case in self.browse(cr, uid, ids, context=context):
|
||||
if not destination and not case.email_from:
|
||||
raise osv.except_osv(_('Error!'), ("Partner Email is not specified in Case"))
|
||||
return False
|
||||
if not case.user_id.user_email:
|
||||
raise osv.except_osv(_('Error!'), ("User Email is not specified in Case"))
|
||||
return False
|
||||
|
||||
if destination and case.section_id.user_id:
|
||||
case_email = case.section_id.user_id.user_email
|
||||
|
||||
@@ -143,7 +143,7 @@ class crm_lead(crm_case, osv.osv):
|
||||
domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]"),
|
||||
'type_id': fields.many2one('crm.case.resource.type', 'Campaign', \
|
||||
domain="['|',('section_id','=',section_id),('section_id','=',False)]"),
|
||||
'channel_id': fields.many2one('res.partner.canal', 'Channel'),
|
||||
'channel_id': fields.many2one('res.partner.canal', 'Lead Source'),
|
||||
|
||||
'contact_name': fields.char('Contact Name', size=64),
|
||||
'partner_name': fields.char("Customer Name", size=64,help='The name of the future partner that will be created while converting the into opportunity'),
|
||||
|
||||
@@ -334,7 +334,7 @@
|
||||
domain="[('user_id','=', False)]"
|
||||
help="Unassigned Leads" />
|
||||
</field>
|
||||
<field name="subjects"/>
|
||||
<field name="subjects" groups="base.group_extended"/>
|
||||
<field name="section_id" widget="selection"
|
||||
context="{'invisible_section': False}">
|
||||
<filter icon="terp-personal+" groups="base.group_extended"
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Mailings" colspan="2"/>
|
||||
<field name="optin" on_change="on_change_optin(optin)"/>
|
||||
<field name="optout" on_change="on_change_optout(optout)"/>
|
||||
<field name="optout" on_change="on_change_optout(optout)"/>
|
||||
</group>
|
||||
</page>
|
||||
|
||||
@@ -310,7 +310,7 @@
|
||||
domain="[]"
|
||||
help="Show Sales Team"/>
|
||||
</field>
|
||||
<field name="subjects"/>
|
||||
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="stage_id" widget="selection" domain="[('type', '=', 'opportunity')]"/>
|
||||
@@ -326,6 +326,7 @@
|
||||
<newline/>
|
||||
<field name="create_date" string="Creation Date"/>
|
||||
<field name="date_closed"/>
|
||||
<field name="subjects"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By..." colspan="16">
|
||||
|
||||
@@ -53,10 +53,10 @@ class crm_phonecall(crm_case, osv.osv):
|
||||
('draft', 'Draft'),
|
||||
('open', 'Todo'),
|
||||
('cancel', 'Cancelled'),
|
||||
('done', 'Done'),
|
||||
('pending', 'Pending'),
|
||||
('done', 'Held'),
|
||||
('pending', 'Not Held'),
|
||||
], 'State', size=16, readonly=True,
|
||||
help='The state is set to \'Draft\', when a case is created.\
|
||||
help='The state is set to \'Todo\', when a case is created.\
|
||||
\nIf the case is in progress the state is set to \'Open\'.\
|
||||
\nWhen the case is over, the state is set to \'Done\'.\
|
||||
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
|
||||
@@ -79,14 +79,19 @@ class crm_phonecall(crm_case, osv.osv):
|
||||
the canall which is this opportunity source."),
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'date': fields.datetime('Date'),
|
||||
'opportunity_id': fields.many2one ('crm.lead', 'Opportunity'),
|
||||
'opportunity_id': fields.many2one ('crm.lead', 'Lead/Opportunity'),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
|
||||
}
|
||||
|
||||
def _get_default_state(self, cr, uid, context=None):
|
||||
if context and context.get('default_state', False):
|
||||
return context.get('default_state')
|
||||
return 'open'
|
||||
|
||||
_defaults = {
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'priority': crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'state': 'open',
|
||||
'state': _get_default_state,
|
||||
'user_id': lambda self,cr,uid,ctx: uid,
|
||||
'active': 1,
|
||||
}
|
||||
@@ -122,14 +127,14 @@ class crm_phonecall(crm_case, osv.osv):
|
||||
return res
|
||||
|
||||
def case_reset(self, cr, uid, ids, *args):
|
||||
"""Resets case as draft
|
||||
"""Resets case as Todo
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of case Ids
|
||||
@param *args: Tuple Value for additional Params
|
||||
"""
|
||||
res = super(crm_phonecall, self).case_reset(cr, uid, ids, args)
|
||||
res = super(crm_phonecall, self).case_reset(cr, uid, ids, args, 'crm.phonecall')
|
||||
self.write(cr, uid, ids, {'duration': 0.0})
|
||||
return res
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<field name="categ_id" ref="crm.categ_phone1"/>
|
||||
<field eval=""(769) 703-274"" name="partner_phone"/>
|
||||
<field eval="2.3" name="duration"/>
|
||||
<field eval=""done"" name="state"/>
|
||||
</record>
|
||||
<record id="crm_case_phone02" model="crm.phonecall">
|
||||
<field name="partner_address_id" ref="base.res_partner_address_6"/>
|
||||
@@ -33,6 +34,7 @@
|
||||
<field name="categ_id" ref="crm.categ_phone1"/>
|
||||
<field eval=""(956) 293-2595"" name="partner_phone"/>
|
||||
<field eval="1.5" name="duration"/>
|
||||
<field eval=""done"" name="state"/>
|
||||
</record>
|
||||
<record id="crm_case_phone03" model="crm.phonecall">
|
||||
<field name="partner_address_id" ref="base.res_partner_address_2"/>
|
||||
@@ -49,6 +51,7 @@
|
||||
<field eval=""(079) 681-2139"" name="partner_phone"/>
|
||||
<field eval=""contact@tecsas.fr"" name="email_from"/>
|
||||
<field eval="5.0" name="duration"/>
|
||||
<field eval=""done"" name="state"/>
|
||||
</record>
|
||||
<record id="crm_case_phone04" model="crm.phonecall">
|
||||
<field eval="time.strftime('%Y-%m-21 14:10:23')" name="date"/>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<act_window
|
||||
id="crm_case_categ_phone_create_partner"
|
||||
name="Schedule Phone Call"
|
||||
name="Schedule a Call"
|
||||
res_model="crm.phonecall"
|
||||
src_model="res.partner"
|
||||
view_mode="calendar,tree,form"
|
||||
@@ -61,15 +61,15 @@
|
||||
parent="base.menu_base_partner" sequence="4" />
|
||||
|
||||
<record model="ir.actions.act_window" id="crm_case_categ_phone_incoming0">
|
||||
<field name="name">Inbound</field>
|
||||
<field name="name">Logged Calls</field>
|
||||
<field name="res_model">crm.phonecall</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,calendar</field>
|
||||
<field name="view_id" ref="crm_case_phone_tree_view"/>
|
||||
<field name="domain" eval="'[(\'categ_id\',\'=\','+str(ref('categ_phone1'))+')]'"/>
|
||||
<field name="context" eval="'{\'search_default_section_id\':section_id, \'default_state\':\'open\', \'search_default_current\':1,\'search_default_today\':1, \'default_categ_id\': ' + str(ref('categ_phone1')) +'}'"/>
|
||||
<field name="view_id" ref="crm_case_inbound_phone_tree_view"/>
|
||||
<field name="domain">[('state','=','done')]</field>
|
||||
<field name="context" eval="'{\'search_default_section_id\':section_id, \'default_state\':\'done\', \'search_default_today\':1}'"/>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
|
||||
<field name="help">The Inbound Calls tool allows you to log your inbound calls on the fly. Each call you get will appear on the partner form to trace every contact you have with a partner. From the phone call form, you can trigger a request for another call, a meeting or an opportunity.</field>
|
||||
<field name="help">This tool allows you to log your inbound calls on the fly. Each call you get will appear on the partner form to trace every contact you have with a partner. From the phone call form, you can trigger a request for another call, a meeting or an opportunity.</field>
|
||||
|
||||
</record>
|
||||
|
||||
@@ -90,24 +90,24 @@
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_form_phone_incoming0">
|
||||
<field name="sequence" eval="3"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="crm_case_inbound_phone_form_view"/>
|
||||
<field name="view_id" ref="crm_case_phone_form_view"/>
|
||||
<field name="act_window_id" ref="crm_case_categ_phone_incoming0"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Inbound" id="menu_crm_case_phone_inbound"
|
||||
<menuitem name="Logged Calls" id="menu_crm_case_phone_inbound"
|
||||
parent="crm.menu_crm_case_phone"
|
||||
action="crm_case_categ_phone_incoming0" />
|
||||
|
||||
<record model="ir.actions.act_window" id="crm_case_categ_phone_outgoing0">
|
||||
<field name="name">Outbound</field>
|
||||
<field name="name">Scheduled Calls</field>
|
||||
<field name="res_model">crm.phonecall</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,calendar</field>
|
||||
<field name="view_id" ref="crm_case_phone_tree_view"/>
|
||||
<field name="domain" eval="'[(\'categ_id\',\'=\','+str(ref('categ_phone2'))+')]'"/>
|
||||
<field name="context" eval="'{\'search_default_section_id\':section_id, \'default_state\':\'open\', \'search_default_current\':1, \'default_categ_id\': ' + str(ref('categ_phone2')) +'}'"/>
|
||||
<field name="domain">[('state','!=','done')]</field>
|
||||
<field name="context" eval="'{\'search_default_section_id\':section_id, \'default_state\':\'open\', \'search_default_current\':1,\'search_default_today\':1}'"/>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
|
||||
<field name="help">Outbound Calls list all the calls to be done by your sales team. A salesman can record the information about the call in the form view. This information will be stored in the partner form to trace every contact you have with a customer. You can also import a .CSV file with a list of calls to be done by your sales team.</field>
|
||||
<field name="help">Scheduled calls list all the calls to be done by your sales team. A salesman can record the information about the call in the form view. This information will be stored in the partner form to trace every contact you have with a customer. You can also import a .CSV file with a list of calls to be done by your sales team.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_phone_outgoing0">
|
||||
@@ -131,7 +131,7 @@
|
||||
<field name="act_window_id" ref="crm_case_categ_phone_outgoing0"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Outbound" id="menu_crm_case_phone_outbound"
|
||||
<menuitem name="Scheduled Calls" id="menu_crm_case_phone_outbound"
|
||||
parent="crm.menu_crm_case_phone"
|
||||
action="crm_case_categ_phone_outgoing0" />
|
||||
|
||||
|
||||
@@ -31,20 +31,20 @@
|
||||
<field name="partner_contact"/>
|
||||
<field name="partner_phone"/>
|
||||
<field name="user_id"/>
|
||||
<field name="categ_id" string="Type"/>
|
||||
<field name="categ_id"/>
|
||||
<field name="create_date" invisible="1"/>
|
||||
<button string="Convert to Opportunity"
|
||||
name="%(phonecall2opportunity_act)d"
|
||||
states="draft,open,pending"
|
||||
states="open,pending"
|
||||
icon="gtk-index"
|
||||
type="action" attrs="{'invisible':[('opportunity_id','!=',False)]}" />
|
||||
<button string="Meeting"
|
||||
states="draft,open,pending" icon="gtk-redo"
|
||||
states="open,pending" icon="gtk-redo"
|
||||
name="action_make_meeting" type="object" />
|
||||
<field name="state"/>
|
||||
<button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/>
|
||||
<button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/>
|
||||
<button name="case_close" string="Held" states="open,draft,pending" type="object" icon="gtk-jump-to"/>
|
||||
<button name="case_cancel" string="Cancel" states="open,pending" type="object" icon="gtk-cancel"/>
|
||||
<button name="case_open" string="Todo" states="pending" type="object" icon="gtk-go-forward"/>
|
||||
<button name="case_close" string="Held" states="open,pending" type="object" icon="gtk-jump-to"/>
|
||||
<button name="case_pending" string="Not Held" states="open" type="object" icon="gtk-media-pause"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -61,21 +61,21 @@
|
||||
<group colspan="6" col="7">
|
||||
<field name="name" required="1"/>
|
||||
<field name="partner_phone"/>
|
||||
<field name="duration" widget="float_time" required="1"/>
|
||||
<field name="duration" widget="float_time"/>
|
||||
<button string="Schedule a Meeting" name="action_make_meeting" icon="gtk-redo" type="object"/>
|
||||
|
||||
<field name="date" required="1"/>
|
||||
<field name="date"/>
|
||||
<field name="user_id"/>
|
||||
<field name="section_id" colspan="1" widget="selection" />
|
||||
<button string="Convert to Opportunity"
|
||||
name="%(phonecall2opportunity_act)d"
|
||||
icon="gtk-index" type="action"
|
||||
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
|
||||
<label colspan="6" string=""/>
|
||||
<button string="Schedule Other Call"
|
||||
icon="terp-call-start"
|
||||
name="%(phonecall_to_phonecall_act)d"
|
||||
type="action" />
|
||||
<label colspan="6" string=""/>
|
||||
<button string="Convert to Opportunity"
|
||||
name="%(phonecall2opportunity_act)d"
|
||||
icon="gtk-index" type="action"
|
||||
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
|
||||
|
||||
</group>
|
||||
|
||||
@@ -98,8 +98,7 @@
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Categorization" />
|
||||
<field name="categ_id" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.phonecall')]"
|
||||
string="Type" />
|
||||
domain="[('object_id.model', '=', 'crm.phonecall')]"/>
|
||||
<field name="priority"/>
|
||||
<field name="opportunity_id"/>
|
||||
</group>
|
||||
@@ -109,94 +108,32 @@
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1" />
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
<button name="case_open" string="Todo"
|
||||
states="pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_pending" string="Not Held"
|
||||
states="open" type="object" icon="gtk-media-pause" />
|
||||
<button name="case_close" string="Held"
|
||||
states="open,draft,pending" type="object"
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-jump-to" />
|
||||
<button name="case_reset" string="Reset to Draft"
|
||||
states="done,cancel" type="object"
|
||||
<button name="case_reset" string="Reset to Todo"
|
||||
states="cancel" type="object"
|
||||
icon="gtk-convert" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!--Inbound Phonecalls Form View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_inbound_phone_form_view">
|
||||
<field name="name">CRM - Inbound Phone Call Form</field>
|
||||
<field name="model">crm.phonecall</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Phone Call">
|
||||
<group colspan="4" col="7">
|
||||
<field name="name" required="1"/>
|
||||
<field name="partner_phone"/>
|
||||
<field name="duration" widget="float_time"/>
|
||||
<button string="Schedule a Meeting"
|
||||
name="action_make_meeting"
|
||||
icon="gtk-redo"
|
||||
type="object" />
|
||||
|
||||
<field name="date" required="1"/>
|
||||
<field name="user_id"/>
|
||||
<field name="section_id" colspan="1" widget="selection" />
|
||||
<button string="Convert to Opportunity"
|
||||
name="%(phonecall2opportunity_act)d"
|
||||
icon="gtk-index" type="action"
|
||||
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
|
||||
<label colspan="6" string=""/>
|
||||
<button string="Schedule Other Call"
|
||||
icon="terp-call-start"
|
||||
name="%(phonecall_to_phonecall_act)d"
|
||||
type="action" />
|
||||
|
||||
</group>
|
||||
<group col="3" colspan="2">
|
||||
<separator colspan="3" string="Contacts" />
|
||||
<field name="partner_id"
|
||||
on_change="onchange_partner_id(partner_id, email_from)" />
|
||||
<button string="Create a Partner"
|
||||
icon="terp-partner"
|
||||
name="%(action_crm_phonecall2partner)d"
|
||||
type="action"
|
||||
attrs="{'invisible':[('partner_id','!=',False)]}"
|
||||
groups="base.group_partner_manager" />
|
||||
<newline/>
|
||||
<field name="partner_address_id"
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)" />
|
||||
<newline/>
|
||||
<field name="partner_mobile" />
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Categorization" />
|
||||
<field name="categ_id" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.phonecall')]"
|
||||
string="Type" />
|
||||
<field name="priority"/>
|
||||
<field name="opportunity_id"/>
|
||||
</group>
|
||||
<separator string="Description" colspan="4" />
|
||||
<field name="description" nolabel="1" colspan="4" />
|
||||
<separator colspan="4" />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!--Inbound Phonecalls Tree View -->
|
||||
<!--Logged Phonecalls Tree View -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_inbound_phone_tree_view">
|
||||
<field name="name">CRM - Inbound Phone Calls Tree</field>
|
||||
<field name="name">CRM - Logged Phone Calls Tree</field>
|
||||
<field name="model">crm.phonecall</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Phone Calls" colors="grey:state in ('cancel','done');blue:state in ('pending',)" editable="top">
|
||||
<tree string="Phone Calls" editable="top">
|
||||
<field name="date"/>
|
||||
<field name="name"/>
|
||||
<field name="partner_id"
|
||||
@@ -207,21 +144,15 @@
|
||||
<field name="partner_phone"/>
|
||||
<field name="user_id"/>
|
||||
<field name="categ_id" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.phonecall')]"
|
||||
string="Type" />
|
||||
domain="[('object_id.model', '=', 'crm.phonecall')]"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="create_date" invisible="1"/>
|
||||
<button string="Schedule Other Call"
|
||||
icon="terp-call-start"
|
||||
name="%(phonecall_to_phonecall_act)d"
|
||||
type="action" />
|
||||
<button string="Convert to Opportunity"
|
||||
name="%(phonecall2opportunity_act)d"
|
||||
states="draft,open,pending"
|
||||
icon="gtk-index"
|
||||
type="action" attrs="{'invisible':[('opportunity_id','!=',False)]}" />
|
||||
<button string="Meeting"
|
||||
states="draft,open,pending" icon="gtk-redo"
|
||||
icon="gtk-redo"
|
||||
name="action_make_meeting" type="object" />
|
||||
</tree>
|
||||
</field>
|
||||
@@ -252,7 +183,7 @@
|
||||
<search string="Search Phonecalls">
|
||||
<filter icon="terp-check" string="Current"
|
||||
name="current"
|
||||
domain="[('state','in', ('draft','open','pending'))]"/>
|
||||
domain="[('state','in', ('open','pending'))]"/>
|
||||
<filter icon="terp-go-today" string="Today"
|
||||
domain="[('date','<', time.strftime('%%Y-%%m-%%d 23:59:59')),
|
||||
('date','>=',time.strftime('%%Y-%%m-%%d 00:00:00'))]"
|
||||
|
||||
+61
-3
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-06-09 17:52+0000\n"
|
||||
"PO-Revision-Date: 2011-06-20 20:31+0000\n"
|
||||
"Last-Translator: Ayhan KIZILTAN <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: 2011-06-10 04:37+0000\n"
|
||||
"X-Launchpad-Export-Date: 2011-06-21 04:36+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: crm
|
||||
@@ -1734,6 +1734,10 @@ msgid ""
|
||||
"mainly used by the sales manager in order to do the periodic review with the "
|
||||
"teams of the sales pipeline."
|
||||
msgstr ""
|
||||
"Fırsat Analizleri, planlanan gelir, planlanan maliyet, geçen sontarihler ya "
|
||||
"da fırsatlarla etkileşim sayısı gibi müşşteri bilgilerinizehızlı bir şekilde "
|
||||
"erişmenizi sağlar. Bu rapor genel olarak yalnızca satış müdürü tarafından "
|
||||
"satış kanallarına ait takımların süreli incelemeleri için kullanılır."
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.categ,name:0
|
||||
@@ -1757,6 +1761,10 @@ msgid ""
|
||||
"organise their sales pipeline. Stages will allow them to easily track how a "
|
||||
"specific lead or opportunity is positioned in the sales cycle."
|
||||
msgstr ""
|
||||
"Satışlarınıza ait satış kanallarının daha iyi bir şekilde organize edilmesi "
|
||||
"için adaylara ve fırsatlara özel aşamalar ekleyin. Aşamalar, belirli bir "
|
||||
"adayın ya da fırsatın satış çevriminde nasıl bir durumda olduğunu kolayca "
|
||||
"izlenmesini sağlar."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead.report:0
|
||||
@@ -1819,6 +1827,10 @@ msgid ""
|
||||
"sent/to be sent to your colleagues/partners. You can not only invite OpenERP "
|
||||
"users, but also external parties, such as a customer."
|
||||
msgstr ""
|
||||
"Toplantı Davetiyeleri ile paydaşlarınıza/iş arkadaşlarınıza göndereceğiniz "
|
||||
"toplantı davetiyeleri oluşturabilir ve yönetebilirsiniz. Yalnızca OpenERP "
|
||||
"kullanıcıların değil, müşterileriniz dışarıdan gruplar da davet "
|
||||
"edebilirsiniz."
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.meeting,week_list:0
|
||||
@@ -1973,6 +1985,10 @@ msgid ""
|
||||
"with a partner. From the phone call form, you can trigger a request for "
|
||||
"another call, a meeting or an opportunity."
|
||||
msgstr ""
|
||||
"Gelen Çağrılar aracı gelen çağrılarınıza anında bağlanmanızı sağlar. "
|
||||
"Aldığınız her çağrı, bir paydaşla kuracağınız her iletişimin izlenmesi için "
|
||||
"paydaş formunda görünecektir. Telefon çağrı formundan, başka bir çağrıyı, "
|
||||
"bir toplantıyı ya da bir fırsatı tetikleyebilirsainiz."
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.meeting,recurrency:0
|
||||
@@ -2016,6 +2032,9 @@ msgid ""
|
||||
"opportunities. You can also synchronize meetings with your mobile phone "
|
||||
"using the caldav interface."
|
||||
msgstr ""
|
||||
"Toplantı takvimi, satış takımınca paylaşılır ve personel tatilleri ya da iş "
|
||||
"fırsatları gibi diğer uygulamalarla tam olarak entegredir. Caldav arayüzünü "
|
||||
"kullanarak toplantılarınızı da cep telefonunuzdan senkronize edebilirsiniz."
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_crm_phonecall2opportunity
|
||||
@@ -2222,6 +2241,11 @@ msgid ""
|
||||
"The opportunities and sales order displayed, will automatically be filtered "
|
||||
"according to his team."
|
||||
msgstr ""
|
||||
"Farklı satış elemanlarınızı organize etmek ya da satış bölümlerinizi "
|
||||
"takımlara ayırmak için bir Satış Takımı tanımlar. Her takım kendine ait "
|
||||
"fırsatlar listesi, satış siparişleri, vb. ile çalışacaktır. Her kullanıcı "
|
||||
"kendi kullanıcı tercihlerine göre varsayılan takım ayarlar. Görüntülenen "
|
||||
"fırsatlar ve satış siparişleri, otomatik olarak bu takıma göre süzülecektir."
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.meeting,count:0
|
||||
@@ -2299,6 +2323,15 @@ msgid ""
|
||||
"email gateway: new emails may create leads, each of them automatically gets "
|
||||
"the history of the conversation with the prospect."
|
||||
msgstr ""
|
||||
"Adaylar, ürünlerinize ve hizmetlerinize ilgi duyan aday ya da paydaşların "
|
||||
"ilk temaslarını yönetmeyi ve izlemeyi sağlar. Bir aday, satış çevriminizde "
|
||||
"genellikle ilk adımdır. Yeterli bulunduğunda bir aday, herhangi bir "
|
||||
"bağlantılı etkinliğinde ayrıntılı olarak izlenmesi için ilgili paydaşın "
|
||||
"oluşturulması sırasında iş fırsatına çevrilebilir. Bir adayın veritabanını "
|
||||
"içeaktarabilir, kartvizitlerin kaydını tutabilir ya da websitenizin iletişim "
|
||||
"formunu OpenERP Adaylarla entegre edebilirsiniz. Adaylar eposta ağgeçidine "
|
||||
"bağlanabilir: yeni epostalar adayları oluşturur, her biri adaylarla yapılan "
|
||||
"konuşma geçmişini otomatikmen alır."
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.lead2opportunity.partner,action:0
|
||||
@@ -2645,6 +2678,9 @@ msgid ""
|
||||
"e.g.: Every other month on the last Sunday of the month for 10 occurrences: "
|
||||
" FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU"
|
||||
msgstr ""
|
||||
"Yinelenen olaylar için tekrarlama modeli kuralı tanımlar\n"
|
||||
"Örneğin: İki ayda bir ayın pazar günü için 10 oluşum: "
|
||||
"SIKLIK=AYLIK;ARALIK=2;SAYI=10;GÜNLÜK=-1PAZ"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.lead,job_id:0
|
||||
@@ -3036,6 +3072,10 @@ msgid ""
|
||||
"instance reflect your product structure or the different types of sales you "
|
||||
"do."
|
||||
msgstr ""
|
||||
"Adaylarınızı ve fırsatlarınızı firmanızın etkinliklerine uyacak şekilde "
|
||||
"sınıflandırmak ve analiz etmek için özel kategoriler oluşturun. Bu "
|
||||
"kategoriler örnek olarak ürününüzün yapısını ya da yaptığınız farklı satış "
|
||||
"türlerini yansıtabilir."
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.segmentation,som_interval_decrease:0
|
||||
@@ -3054,6 +3094,10 @@ msgid ""
|
||||
"several criteria and drill down the information, by adding more groups in "
|
||||
"the report."
|
||||
msgstr ""
|
||||
"Bu rapordan, satış takımınızın performansını telefon görüşmeleri temel "
|
||||
"alınarak analiz edebilirsiniz. Bilgileri, çeşitli kriterlere göre "
|
||||
"gruplandırabilir ya da süzebilirsiniz ve bu raporda daha çok grup ekleyerek "
|
||||
"bilgiyi derinleştirebilirsiniz."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.section:0
|
||||
@@ -3063,7 +3107,7 @@ msgstr "Ağgeçidi"
|
||||
#. module: crm
|
||||
#: help:crm.lead,user_id:0
|
||||
msgid "By Default Salesman is Administrator when create New User"
|
||||
msgstr ""
|
||||
msgstr "Yeni Kullanıcı oluştururken Varsayılan Satış Elemanı Yöneticidir"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead.report:0
|
||||
@@ -3213,6 +3257,10 @@ msgid ""
|
||||
"If checked, remove the category from partners that doesn't match "
|
||||
"segmentation criterions"
|
||||
msgstr ""
|
||||
"Kategorinin bölümlendirme kriterlerine uyan paydaşlarla sınırlandırıldığını "
|
||||
"kontrol edin. \n"
|
||||
"Eğer işaretliyse, bölümleme kriterlerine uymayan paydaşlardan kategoriyi "
|
||||
"kaldırın"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.meeting,exdate:0
|
||||
@@ -3348,6 +3396,13 @@ msgid ""
|
||||
"bought goods to another supplier. \n"
|
||||
"Use this functionality for recurring businesses."
|
||||
msgstr ""
|
||||
"Bir dönem, bu bölümde satış ve satınalma döngüsü arasındaki günlerin\n"
|
||||
"ortalamasıdır. \n"
|
||||
"Genel olarak uzun bir süre hiç satınalma yapılmamış ve mal satınalmamış bir "
|
||||
"paydaşı belirlemek için kullanılır, \n"
|
||||
"böyle bir durumda ruh durumunun düştüğünü ve başka bir tedarikçiden mal "
|
||||
"satınaldığını düşünürüz. \n"
|
||||
"Bu işlevi yinelenen işler için kullanın."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.send.mail:0
|
||||
@@ -3606,6 +3661,9 @@ msgid ""
|
||||
"them to easily track how is positioned a specific opportunity in the sales "
|
||||
"cycle."
|
||||
msgstr ""
|
||||
"Satış fırsatlarını koruyarak satışlarınıza ait satış hunilerini daha iyi "
|
||||
"organize etmek için özel aşamalar oluşturun. Satış döngüsü içerisinde "
|
||||
"belirli bir fırsatın nasıl bir durumda olduğunun kolayca izlenmesini sağlar."
|
||||
|
||||
#. module: crm
|
||||
#: model:process.process,name:crm.process_process_contractprocess0
|
||||
|
||||
@@ -25,9 +25,9 @@ from crm import crm
|
||||
|
||||
AVAILABLE_STATES = [
|
||||
('draft','Draft'),
|
||||
('open','Open'),
|
||||
('open','Todo'),
|
||||
('cancel', 'Cancelled'),
|
||||
('done', 'Closed'),
|
||||
('done', 'Held'),
|
||||
('pending','Pending')
|
||||
]
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" />
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}" />
|
||||
<filter string="Type" icon="terp-stock_symbol-selection"
|
||||
<filter string="Category" icon="terp-stock_symbol-selection"
|
||||
domain="[]" context="{'group_by':'categ_id'}" />
|
||||
<filter string="State" icon="terp-stock_effects-object-colorize"
|
||||
domain="[]" context="{'group_by':'state'}" />
|
||||
|
||||
@@ -54,82 +54,14 @@
|
||||
<tree string="Phone Calls" colors="gray:state in ('draft', 'cancel','done','pending')">
|
||||
<field name="date" string="Date"/>
|
||||
<field name="name" string="Call Summary"/>
|
||||
<field name="categ_id" string="Type" widget="selection"/>
|
||||
<field name="categ_id" widget="selection"/>
|
||||
<field name="user_id"/>
|
||||
<field name="state"/>
|
||||
<button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/>
|
||||
<button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/>
|
||||
<button name="case_open" string="Todo" states="draft,pending" type="object" icon="gtk-go-forward"/>
|
||||
<button name="case_close" string="Held" states="open,draft,pending" type="object" icon="gtk-jump-to"/>
|
||||
<button name="case_pending" string="Not Held" states="open" type="object" icon="gtk-media-pause"/>
|
||||
</tree>
|
||||
<form string="Phone Call">
|
||||
<group colspan="6" col="7">
|
||||
<field name="name" required="1"/>
|
||||
<field name="partner_phone" attrs="{'required': [('categ_id.name', '=', 'Outbound')]}"/>
|
||||
<field name="duration" widget="float_time" required="1"/>
|
||||
<button string="Schedule a Meeting" name="action_make_meeting" icon="gtk-redo" type="object"/>
|
||||
|
||||
<field name="date" required="1"/>
|
||||
<field name="user_id"/>
|
||||
<field name="section_id" colspan="1" widget="selection" />
|
||||
<button string="Convert to Opportunity"
|
||||
name="%(phonecall2opportunity_act)d"
|
||||
icon="gtk-index" type="action"
|
||||
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
|
||||
<label colspan="6" string=""/>
|
||||
<button string="Schedule Other Call"
|
||||
icon="terp-call-start"
|
||||
name="%(phonecall_to_phonecall_act)d"
|
||||
type="action" />
|
||||
|
||||
</group>
|
||||
|
||||
<group col="3" colspan="2">
|
||||
<separator colspan="3" string="Contacts" />
|
||||
<field name="partner_id"
|
||||
on_change="onchange_partner_id(partner_id, email_from)" />
|
||||
<button string="Create a Partner"
|
||||
icon="terp-partner"
|
||||
name="%(action_crm_phonecall2partner)d"
|
||||
type="action"
|
||||
attrs="{'invisible':[('partner_id','!=',False)]}"
|
||||
groups="base.group_partner_manager" />
|
||||
<newline/>
|
||||
<field name="partner_address_id"
|
||||
on_change="onchange_partner_address_id(partner_address_id, email_from)" />
|
||||
<newline/>
|
||||
<field name="partner_mobile" />
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Categorization" />
|
||||
<field name="categ_id" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.phonecall')]"
|
||||
string="Type" />
|
||||
<field name="priority"/>
|
||||
<field name="opportunity_id"/>
|
||||
</group>
|
||||
<separator string="Description" colspan="4" />
|
||||
<field name="description" nolabel="1" colspan="4" />
|
||||
<separator colspan="4" />
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1" />
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_pending" string="Not Held"
|
||||
states="open" type="object" icon="gtk-media-pause" />
|
||||
<button name="case_close" string="Held"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-jump-to" />
|
||||
<button name="case_reset" string="Reset to Draft"
|
||||
states="done,cancel" type="object"
|
||||
icon="gtk-convert" />
|
||||
</group>
|
||||
</form>
|
||||
|
||||
</field>
|
||||
</page>
|
||||
</field>
|
||||
|
||||
@@ -67,6 +67,8 @@ class crm_merge_opportunity(osv.osv_memory):
|
||||
ids = list(set(ids) - set(context.get('lead_ids', False)) )
|
||||
lead_obj = self.pool.get('crm.lead')
|
||||
op_id = lead_obj.search(cr, uid, [('id', 'in', ids)], order='create_date' , context=context)
|
||||
if not op_id:
|
||||
return False
|
||||
opps = lead_obj.browse(cr, uid, [op_id[0]], context=context)
|
||||
return opps[0]
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
from osv import osv, fields
|
||||
from tools.translate import _
|
||||
|
||||
import time
|
||||
|
||||
class crm_opportunity2phonecall(osv.osv_memory):
|
||||
"""Converts Opportunity to Phonecall"""
|
||||
|
||||
@@ -31,11 +33,13 @@ class crm_opportunity2phonecall(osv.osv_memory):
|
||||
_columns = {
|
||||
'name' : fields.char('Call summary', size=64, required=True, select=1),
|
||||
'user_id' : fields.many2one('res.users', "Assign To"),
|
||||
'date': fields.datetime('Date' , required=True),
|
||||
'partner_id' : fields.many2one('res.partner', "Partner"),
|
||||
'date': fields.datetime('Date'),
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category', required=True, \
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category', \
|
||||
domain="['|',('section_id','=',False),('section_id','=',section_id),\
|
||||
('object_id.model', '=', 'crm.phonecall')]"),
|
||||
('object_id.model', '=', 'crm.phonecall')]"),
|
||||
'action': fields.selection([('schedule','Schedule a call'), ('log','Log a call')], 'Action', required=True),
|
||||
}
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
@@ -58,6 +62,7 @@ class crm_opportunity2phonecall(osv.osv_memory):
|
||||
|
||||
record_ids = context and context.get('active_ids', []) or []
|
||||
res = super(crm_opportunity2phonecall, self).default_get(cr, uid, fields, context=context)
|
||||
res.update({'action': 'schedule', 'date': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
for opp in opp_obj.browse(cr, uid, record_ids, context=context):
|
||||
if 'name' in fields:
|
||||
res.update({'name': opp.name})
|
||||
@@ -67,6 +72,8 @@ class crm_opportunity2phonecall(osv.osv_memory):
|
||||
res.update({'section_id': opp.section_id and opp.section_id.id or False})
|
||||
if 'categ_id' in fields:
|
||||
res.update({'categ_id': categ_id})
|
||||
if 'partner_id' in fields:
|
||||
res.update({'partner_id': opp.partner_id and opp.partner_id.id or False})
|
||||
return res
|
||||
|
||||
def action_cancel(self, cr, uid, ids, context=None):
|
||||
@@ -112,7 +119,7 @@ class crm_opportunity2phonecall(osv.osv_memory):
|
||||
|
||||
for this in self.browse(cr, uid, ids, context=context):
|
||||
for opp in opp_obj.browse(cr, uid, record_ids, context=context):
|
||||
new_case = phonecall_obj.create(cr, uid, {
|
||||
vals = {
|
||||
'name' : opp.name,
|
||||
'case_id' : opp.id ,
|
||||
'user_id' : this.user_id and this.user_id.id or False,
|
||||
@@ -126,9 +133,12 @@ class crm_opportunity2phonecall(osv.osv_memory):
|
||||
'partner_mobile' : opp.partner_address_id and opp.partner_address_id.mobile or False,
|
||||
'priority': opp.priority,
|
||||
'opportunity_id': opp.id
|
||||
}, context=context)
|
||||
|
||||
phonecall_obj.case_open(cr, uid, [new_case])
|
||||
}
|
||||
new_case = phonecall_obj.create(cr, uid, vals, context=context)
|
||||
if this.action == 'schedule':
|
||||
phonecall_obj.case_open(cr, uid, [new_case])
|
||||
elif this.action == 'log':
|
||||
phonecall_obj.case_close(cr, uid, [new_case])
|
||||
|
||||
value = {
|
||||
'name': _('Phone Call'),
|
||||
|
||||
@@ -9,19 +9,22 @@
|
||||
<field name="model">crm.opportunity2phonecall</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Schedule a PhoneCall">
|
||||
<separator string="Schedule a PhoneCall" colspan="4"/>
|
||||
<form string="Schedule/Log a call">
|
||||
<separator string="Schedule/Log a call" colspan="4"/>
|
||||
<field name="action"/>
|
||||
<separator string="Call Details" colspan="4"/>
|
||||
<field name="name"/>
|
||||
<field name="date" string="Planned Date"/>
|
||||
<field name="date" string="Planned Date" attrs="{'invisible': [('action','=','log')]}"/>
|
||||
<newline/>
|
||||
<field name="user_id" />
|
||||
<field name="partner_id" readonly="True"/>
|
||||
<field name="user_id" />
|
||||
<field name="section_id" widget="selection" />
|
||||
<field name="categ_id" string="Type" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/>
|
||||
<separator string="" colspan="4"/>
|
||||
<group colspan="4">
|
||||
<label string ="" colspan="2"/>
|
||||
<group colspan="4" col="3">
|
||||
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
|
||||
<button name="action_apply" type="object" string="_Schedule Call" icon="gtk-ok" />
|
||||
<button name="action_apply" type="object" string="Log call" icon="gtk-ok" attrs="{'invisible' : [('action', '!=', 'log')]}" />
|
||||
<button name="action_apply" type="object" string="Schedule call" icon="gtk-ok" attrs="{'invisible' : [('action', '!=', 'schedule')]}" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
@@ -30,7 +33,7 @@
|
||||
<!-- Opportunity to Phonecall action -->
|
||||
|
||||
<record model="ir.actions.act_window" id="opportunity2phonecall_act">
|
||||
<field name="name">Schedule Call</field>
|
||||
<field name="name">Schedule/Log Call</field>
|
||||
<field name="res_model">crm.opportunity2phonecall</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
|
||||
@@ -31,43 +31,14 @@ class crm_phonecall2opportunity(osv.osv_memory):
|
||||
def action_cancel(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Closes Phonecall to Opportunity form
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Phonecall to Opportunity's IDs
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
|
||||
return {'type':'ir.actions.act_window_close'}
|
||||
|
||||
def view_init(self, cr, uid, fields, context=None):
|
||||
"""
|
||||
This function checks for precondition before wizard executes
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param fields: List of fields for default value
|
||||
@param context: A standard dictionary for contextual values
|
||||
|
||||
"""
|
||||
phonecall_obj = self.pool.get('crm.phonecall')
|
||||
record_id = context and context.get('active_id', False) or False
|
||||
case = phonecall_obj.browse(cr, uid, record_id, context=context)
|
||||
if case.state in ['done', 'cancel']:
|
||||
raise osv.except_osv(_("Warning"), _("Closed/Cancelled Phone \
|
||||
Call can not be converted into Opportunity"))
|
||||
|
||||
|
||||
def action_apply(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
This converts Phonecall to Opportunity and opens Phonecall view
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Phonecall to Opportunity IDs
|
||||
@param context: A standard dictionary for contextual values
|
||||
|
||||
@return : Dictionary value for created Opportunity form
|
||||
"""
|
||||
record_id = context and context.get('active_id', False) or False
|
||||
if record_id:
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
from osv import osv, fields
|
||||
from tools.translate import _
|
||||
|
||||
import time
|
||||
|
||||
class crm_phonecall2phonecall(osv.osv_memory):
|
||||
""" Converts Phonecall to Phonecall"""
|
||||
|
||||
@@ -84,6 +86,10 @@ class crm_phonecall2phonecall(osv.osv_memory):
|
||||
'date': this.date
|
||||
}
|
||||
phonecall_id = phonecall_obj.create(cr, uid, values, context=context)
|
||||
if this.action == 'schedule':
|
||||
phonecall_obj.case_open(cr, uid, [phonecall_id])
|
||||
elif this.action == 'log':
|
||||
phonecall_obj.case_close(cr, uid, [phonecall_id])
|
||||
|
||||
res = {
|
||||
'name': _('Phone Call'),
|
||||
@@ -102,11 +108,13 @@ class crm_phonecall2phonecall(osv.osv_memory):
|
||||
_columns = {
|
||||
'name' : fields.char('Call summary', size=64, required=True, select=1),
|
||||
'user_id' : fields.many2one('res.users',"Assign To"),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category', required=True, \
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category', \
|
||||
domain="['|',('section_id','=',False),('section_id','=',section_id),\
|
||||
('object_id.model', '=', 'crm.phonecall')]"),
|
||||
'date': fields.datetime('Date', required=True),
|
||||
'date': fields.datetime('Date'),
|
||||
'section_id':fields.many2one('crm.case.section','Sales Team'),
|
||||
'action': fields.selection([('schedule','Schedule a call'), ('log','Log a call')], 'Action', required=True),
|
||||
'partner_id' : fields.many2one('res.partner', "Partner"),
|
||||
}
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
@@ -122,7 +130,7 @@ class crm_phonecall2phonecall(osv.osv_memory):
|
||||
"""
|
||||
res = super(crm_phonecall2phonecall, self).default_get(cr, uid, fields, context=context)
|
||||
record_id = context and context.get('active_id', False) or False
|
||||
|
||||
res.update({'action': 'schedule', 'date': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
if record_id:
|
||||
phonecall = self.pool.get('crm.phonecall').browse(cr, uid, record_id, context=context)
|
||||
|
||||
@@ -142,6 +150,8 @@ class crm_phonecall2phonecall(osv.osv_memory):
|
||||
res.update({'section_id': phonecall.section_id and phonecall.section_id.id or False})
|
||||
if 'categ_id' in fields:
|
||||
res.update({'categ_id': categ_id})
|
||||
if 'partner_id' in fields:
|
||||
res.update({'partner_id': phonecall.partner_id and phonecall.partner_id.id or False})
|
||||
return res
|
||||
|
||||
crm_phonecall2phonecall()
|
||||
|
||||
@@ -9,18 +9,21 @@
|
||||
<field name="model">crm.phonecall2phonecall</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Schedule Other Call">
|
||||
<separator string="Schedule Other Call" colspan="4"/>
|
||||
<form string="Schedule/Log a call">
|
||||
<separator string="Schedule/Log a call" colspan="4"/>
|
||||
<field name="action"/>
|
||||
<separator string="Call Details" colspan="4"/>
|
||||
<field name="name"/>
|
||||
<field name="date" string="Planned Date"/>
|
||||
<field name="date" string="Planned Date" attrs="{'invisible': [('action','=','log')]}"/>
|
||||
<field name="partner_id" readonly="True"/>
|
||||
<field name="user_id" />
|
||||
<field name="section_id"/>
|
||||
<field name="categ_id" string="Type" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/>
|
||||
<separator string=" " colspan="4"/>
|
||||
<group colspan="4" col="3" >
|
||||
<label string=" " />
|
||||
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
|
||||
<button name="action_apply" type="object" string="_Schedule" icon="gtk-go-forward" />
|
||||
<button name="action_apply" type="object" string="Log call" icon="gtk-ok" attrs="{'invisible' : [('action', '!=', 'log')]}" />
|
||||
<button name="action_apply" type="object" string="Schedule call" icon="gtk-ok" attrs="{'invisible' : [('action', '!=', 'schedule')]}" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</record>
|
||||
</data>
|
||||
|
||||
<data noupdate="0">
|
||||
<data noupdate="1">
|
||||
<record model="document.directory.content.type" id="pdf">
|
||||
<field name="code">.pdf</field>
|
||||
<field name="name">PDF Report</field>
|
||||
|
||||
+190
-151
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,141 @@
|
||||
# Turkish 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-06-20 20:45+0000\n"
|
||||
"Last-Translator: Ayhan KIZILTAN <Unknown>\n"
|
||||
"Language-Team: Turkish <tr@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-06-21 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.model,name:document_ftp.model_document_ftp_configuration
|
||||
msgid "Auto Directory Configuration"
|
||||
msgstr "Otomatik Klasör Yapılandırması"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid ""
|
||||
"Indicate the network address on which your OpenERP server should be "
|
||||
"reachable for end-users. This depends on your network topology and "
|
||||
"configuration, and will only affect the links displayed to the users. The "
|
||||
"format is HOST:PORT and the default host (localhost) is only suitable for "
|
||||
"access from the server machine itself.."
|
||||
msgstr ""
|
||||
|
||||
#. module: document_ftp
|
||||
#: field:document.ftp.configuration,progress:0
|
||||
msgid "Configuration Progress"
|
||||
msgstr "Yapılandırma Gelişimi"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.actions.url,name:document_ftp.action_document_browse
|
||||
msgid "Browse Files"
|
||||
msgstr "Dosyalara Gözat"
|
||||
|
||||
#. module: document_ftp
|
||||
#: field:document.ftp.configuration,config_logo:0
|
||||
msgid "Image"
|
||||
msgstr "Resim"
|
||||
|
||||
#. module: document_ftp
|
||||
#: field:document.ftp.configuration,host:0
|
||||
msgid "Address"
|
||||
msgstr "Adres"
|
||||
|
||||
#. module: document_ftp
|
||||
#: field:document.ftp.browse,url:0
|
||||
msgid "FTP Server"
|
||||
msgstr "FTP Sunucusu"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
|
||||
msgid "FTP Server Configuration"
|
||||
msgstr "FTP Sunucusu Yapılandırması"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.module.module,description:document_ftp.module_meta_information
|
||||
msgid ""
|
||||
"This is a support FTP Interface with document management system.\n"
|
||||
" With this module you would not only be able to access documents through "
|
||||
"OpenERP\n"
|
||||
" but you would also be able to connect with them through the file system "
|
||||
"using the\n"
|
||||
" FTP client.\n"
|
||||
msgstr ""
|
||||
"Bu bir belge yönetim sistemli destek FTP Arayüzüdür.\n"
|
||||
" Bu modül ile yalnızca OpenERP nin içinden belgelere erişmekle kalmayıp \n"
|
||||
" FTP istemcisini kullanarak dosya sistemi içinden de \n"
|
||||
" bağlanabileceksiniz.\n"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.browse:0
|
||||
msgid "_Browse"
|
||||
msgstr "_Gözat"
|
||||
|
||||
#. module: document_ftp
|
||||
#: help:document.ftp.configuration,host:0
|
||||
msgid ""
|
||||
"Server address or IP and port to which users should connect to for DMS access"
|
||||
msgstr ""
|
||||
"DMS erişimi için kullanıcıların bağlanacağı sunucu adresi ya da IP ve "
|
||||
"bağlantı noktasıdır."
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.ui.menu,name:document_ftp.menu_document_browse
|
||||
msgid "Shared Repository (FTP)"
|
||||
msgstr "Paylaşılan Havuz (FTP)"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.browse:0
|
||||
msgid "_Cancel"
|
||||
msgstr "_Vazgeç"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid "Configure FTP Server"
|
||||
msgstr "FTP Sunucusunu Yapılandır"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.module.module,shortdesc:document_ftp.module_meta_information
|
||||
msgid "Integrated FTP Server with Document Management System"
|
||||
msgstr "Belge Yönetim Sistemi ile entegre FTP Sunucusu"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid "title"
|
||||
msgstr "unvan"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.model,name:document_ftp.model_document_ftp_browse
|
||||
msgid "Document FTP Browse"
|
||||
msgstr "FTP BelgeTaraması"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid "Knowledge Application Configuration"
|
||||
msgstr "Bilgi Birikimi Uygulama Ayarları"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
|
||||
msgid "Document Browse"
|
||||
msgstr "Belge Tarama"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.browse:0
|
||||
msgid "Browse Document"
|
||||
msgstr "Belge Tara"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid "res_config_contents"
|
||||
msgstr "res_config_contents"
|
||||
@@ -7,31 +7,31 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 16:23+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2011-06-18 11:13+0000\n"
|
||||
"Last-Translator: kifcaliph <kifcaliph@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: 2011-04-29 04:45+0000\n"
|
||||
"X-Generator: Launchpad (build 12758)\n"
|
||||
"X-Launchpad-Export-Date: 2011-06-19 04:36+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: google_map
|
||||
#: view:res.partner:0
|
||||
#: view:res.partner.address:0
|
||||
msgid "Map"
|
||||
msgstr ""
|
||||
msgstr "خريطة جوجل"
|
||||
|
||||
#. module: google_map
|
||||
#: view:res.partner:0
|
||||
#: view:res.partner.address:0
|
||||
msgid "Street2 : "
|
||||
msgstr ""
|
||||
msgstr "شارع 2: "
|
||||
|
||||
#. module: google_map
|
||||
#: model:ir.actions.wizard,name:google_map.wizard_google_map
|
||||
msgid "Launch Google Map"
|
||||
msgstr ""
|
||||
msgstr "فتح خريطة جوجل"
|
||||
|
||||
#. module: google_map
|
||||
#: model:ir.module.module,description:google_map.module_meta_information
|
||||
|
||||
@@ -7,24 +7,24 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2010-08-03 05:39+0000\n"
|
||||
"Last-Translator: Mantavya Gajjar (Open ERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-06-18 11:23+0000\n"
|
||||
"Last-Translator: kifcaliph <kifcaliph@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: 2011-04-29 05:26+0000\n"
|
||||
"X-Generator: Launchpad (build 12758)\n"
|
||||
"X-Launchpad-Export-Date: 2011-06-19 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract.wage.type:0
|
||||
msgid "Hourly cost computation"
|
||||
msgstr ""
|
||||
msgstr "حساب تكلفة الساعة"
|
||||
|
||||
#. module: hr_contract
|
||||
#: selection:hr.contract.wage.type,type:0
|
||||
msgid "Gross"
|
||||
msgstr ""
|
||||
msgstr "الإجمالي"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
|
||||
@@ -94,8 +94,8 @@ class hr_holidays(osv.osv):
|
||||
_description = "Leave"
|
||||
_order = "type desc, date_from asc"
|
||||
|
||||
def _employee_get(obj, cr, uid, context=None):
|
||||
ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context)
|
||||
def _employee_get(self, cr, uid, context=None):
|
||||
ids = self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context)
|
||||
if ids:
|
||||
return ids[0]
|
||||
return False
|
||||
|
||||
@@ -8,14 +8,14 @@ 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-06-08 02:26+0000\n"
|
||||
"PO-Revision-Date: 2011-06-11 13:23+0000\n"
|
||||
"Last-Translator: Christopher Ormaza - (Ecuadorenlinea.net) "
|
||||
"<chris.ormaza@gmail.com>\n"
|
||||
"Language-Team: Spanish (Ecuador) <es_EC@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-06-09 04:35+0000\n"
|
||||
"X-Launchpad-Export-Date: 2011-06-12 04:52+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: hr_payroll
|
||||
@@ -860,40 +860,40 @@ msgstr "Borrador"
|
||||
#. module: hr_payroll
|
||||
#: report:payslip.pdf:0
|
||||
msgid "Earnings"
|
||||
msgstr ""
|
||||
msgstr "Ingresos"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: report:hr.payroll.register.sheet:0
|
||||
#: report:salary.structure:0
|
||||
msgid "Basic"
|
||||
msgstr ""
|
||||
msgstr "Básico"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: model:ir.actions.act_window,name:hr_payroll.action_hr_passport_tree
|
||||
msgid "All Passports"
|
||||
msgstr ""
|
||||
msgstr "Todos los pasaportes"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: model:ir.actions.act_window,name:hr_payroll.action_hr_payroll_year_salary
|
||||
#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_year_salary
|
||||
msgid "Salary Register"
|
||||
msgstr ""
|
||||
msgstr "Registro Salarial"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: report:employees.salary:0
|
||||
#: report:hr.payroll.register.sheet:0
|
||||
msgid "Employee Name"
|
||||
msgstr ""
|
||||
msgstr "Nombre del empleado"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: model:ir.model,name:hr_payroll.model_hr_passport
|
||||
msgid "Passport Detail"
|
||||
msgstr ""
|
||||
msgstr "Detalle del Pasaporte"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: selection:hr.payslip.line,amount_type:0
|
||||
msgid "Percentage (%)"
|
||||
msgstr ""
|
||||
msgstr "Porcentaje (%)"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: field:hr.payroll.advice,register_id:0
|
||||
@@ -902,7 +902,7 @@ msgstr ""
|
||||
#: model:ir.model,name:hr_payroll.model_hr_payroll_register
|
||||
#: model:ir.ui.menu,name:hr_payroll.hr_menu_payroll_register
|
||||
msgid "Payroll Register"
|
||||
msgstr ""
|
||||
msgstr "Registro de nómina"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: report:hr.payroll.register.sheet:0
|
||||
@@ -913,68 +913,68 @@ msgstr ""
|
||||
#. module: hr_payroll
|
||||
#: field:hr.passport,contracts_ids:0
|
||||
msgid "Contracts"
|
||||
msgstr ""
|
||||
msgstr "Contratos"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: view:hr.payroll.structure:0
|
||||
msgid "Employee Function"
|
||||
msgstr ""
|
||||
msgstr "Función del empleado"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: view:hr.payslip:0
|
||||
msgid "Paid"
|
||||
msgstr ""
|
||||
msgstr "Pagado"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: view:hr.payslip:0
|
||||
msgid "Approve Sheet"
|
||||
msgstr ""
|
||||
msgstr "Aprobar hoja"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: field:hr.payslip,paid:0
|
||||
msgid "Paid ? "
|
||||
msgstr ""
|
||||
msgstr "¿Pagado? "
|
||||
|
||||
#. module: hr_payroll
|
||||
#: view:hr.holidays.status:0
|
||||
msgid "Validation"
|
||||
msgstr ""
|
||||
msgstr "Validación"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: report:employees.salary:0
|
||||
msgid "Title"
|
||||
msgstr ""
|
||||
msgstr "Tratamiento:"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: view:company.contribution:0
|
||||
msgid "Search Company Contribution"
|
||||
msgstr ""
|
||||
msgstr "Buscar contribución de la compañía"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: field:hr.allounce.deduction.categoty,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
msgstr "Usuario"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: view:hr.payroll.advice:0
|
||||
msgid "Payment Lines"
|
||||
msgstr ""
|
||||
msgstr "Líneas de pago"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: view:hr.payslip:0
|
||||
msgid "Compute Sheet"
|
||||
msgstr ""
|
||||
msgstr "Calcular hoja"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: field:company.contribution,active:0
|
||||
#: field:hr.payroll.register,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
msgstr "Activo"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: help:hr.allounce.deduction.categoty,condition:0
|
||||
msgid "Applied this head for calculation if condition is true"
|
||||
msgstr ""
|
||||
msgstr "Aplicar este encabezado en el cálculo si la condición es verdadera"
|
||||
|
||||
#. module: hr_payroll
|
||||
#: report:year.salary:0
|
||||
|
||||
@@ -0,0 +1,333 @@
|
||||
# Russian 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-06-12 22:30+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Russian <ru@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-06-13 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip,move_line_ids:0
|
||||
msgid "Accounting Lines"
|
||||
msgstr "Строки счета"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payroll.register,bank_journal_id:0
|
||||
#: field:hr.payslip,bank_journal_id:0
|
||||
msgid "Bank Journal"
|
||||
msgstr "Банковский журнал"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_contibution_register_line
|
||||
msgid "Contribution Register Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_contibution_register
|
||||
msgid "Contribution Register"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: help:hr.employee,analytic_account:0
|
||||
msgid "Analytic Account for Salary Analysis"
|
||||
msgstr "Аналитический счет для анализа заработной платы"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payroll.register,journal_id:0
|
||||
#: field:hr.payslip,journal_id:0
|
||||
msgid "Expense Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.contibution.register.line,period_id:0
|
||||
msgid "Period"
|
||||
msgstr "Период"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_employee
|
||||
msgid "Employee"
|
||||
msgstr "Сотрудник"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: view:hr.payslip:0
|
||||
msgid "Other Informations"
|
||||
msgstr "Прочая информация"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.employee,salary_account:0
|
||||
msgid "Salary Account"
|
||||
msgstr "Зарплатный счет"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: help:hr.employee,property_bank_account:0
|
||||
msgid "Select Bank Account from where Salary Expense will be Paid"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payroll_register
|
||||
msgid "Payroll Register"
|
||||
msgstr "Журнал начисления заработной платы"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payslip_account_move
|
||||
msgid "Account Move Link to Pay Slip"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: view:hr.payslip:0
|
||||
msgid "Description"
|
||||
msgstr "Описание"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:331
|
||||
#, python-format
|
||||
msgid "Please Confirm all Expense Invoice appear for Reimbursement"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:432
|
||||
#, python-format
|
||||
msgid "Please defined partner in bank account for %s !"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: view:hr.payslip:0
|
||||
msgid "Accounting Informations"
|
||||
msgstr "Учетная информация"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: help:hr.employee,salary_account:0
|
||||
msgid "Expense account when Salary Expense will be recorded"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:429
|
||||
#, python-format
|
||||
msgid "Please defined bank account for %s !"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.module.module,description:hr_payroll_account.module_meta_information
|
||||
msgid ""
|
||||
"Generic Payroll system Integrated with Accountings\n"
|
||||
" * Expanse Encoding\n"
|
||||
" * Payment Encoding\n"
|
||||
" * Comany Contribution Managemet\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.module.module,shortdesc:hr_payroll_account.module_meta_information
|
||||
msgid "Human Resource Payroll Accounting"
|
||||
msgstr "Учёт выплат персоналу"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: view:hr.payslip:0
|
||||
#: field:hr.payslip,move_payment_ids:0
|
||||
msgid "Payment Lines"
|
||||
msgstr "Позиции платежа"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:270
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:445
|
||||
#, python-format
|
||||
msgid "Please define fiscal year for perticular contract"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip.account.move,slip_id:0
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payslip
|
||||
msgid "Pay Slip"
|
||||
msgstr "Расчетный листок"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error ! You cannot create recursive Hierarchy of Employees."
|
||||
msgstr "Ошибка! Структура подчинения не может быть рекурсивной."
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: view:hr.payslip:0
|
||||
msgid "Account Lines"
|
||||
msgstr "Строки счета"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.contibution.register,account_id:0
|
||||
#: field:hr.holidays.status,account_id:0
|
||||
#: field:hr.payroll.advice,account_id:0
|
||||
msgid "Account"
|
||||
msgstr "Учётная запись"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.employee,property_bank_account:0
|
||||
msgid "Bank Account"
|
||||
msgstr "Банковский счет"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip.account.move,name:0
|
||||
msgid "Name"
|
||||
msgstr "Название"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payslip_line
|
||||
msgid "Payslip Line"
|
||||
msgstr "Строка расчетного листка"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: view:hr.payslip:0
|
||||
msgid "Accounting Vouchers"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: constraint:hr.employee:0
|
||||
msgid ""
|
||||
"Error ! You cannot select a department for which the employee is the manager."
|
||||
msgstr ""
|
||||
"Ошибка! Вы не можете выбрать подразделение, руководителем которого является "
|
||||
"этот сотрудник."
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: help:hr.payroll.register,period_id:0
|
||||
#: help:hr.payslip,period_id:0
|
||||
msgid "Keep empty to use the period of the validation(Payslip) date."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payroll_advice
|
||||
msgid "Bank Advice Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip.account.move,move_id:0
|
||||
msgid "Expense Entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip,move_ids:0
|
||||
msgid "Accounting vouchers"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:270
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:277
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:280
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:297
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:331
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:445
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:452
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:455
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:469
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:492
|
||||
#, python-format
|
||||
msgid "Warning !"
|
||||
msgstr "Warning !"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.employee,employee_account:0
|
||||
msgid "Employee Account"
|
||||
msgstr "Счёт работника"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip.line,account_id:0
|
||||
msgid "General Account"
|
||||
msgstr "Базовый счёт"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.contibution.register,yearly_total_by_emp:0
|
||||
msgid "Total By Employee"
|
||||
msgstr "Всего на сотрудника"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip.account.move,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "Последовательность"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payroll.register,period_id:0
|
||||
#: field:hr.payslip,period_id:0
|
||||
msgid "Force Period"
|
||||
msgstr "Установить период"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_holidays_status
|
||||
msgid "Leave Type"
|
||||
msgstr "Тип отсутствия"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:277
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:452
|
||||
#, python-format
|
||||
msgid "Fiscal Year is not defined for slip date %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.contibution.register,analytic_account_id:0
|
||||
#: field:hr.employee,analytic_account:0
|
||||
#: field:hr.holidays.status,analytic_account_id:0
|
||||
#: field:hr.payroll.structure,account_id:0
|
||||
#: field:hr.payslip.line,analytic_account_id:0
|
||||
msgid "Analytic Account"
|
||||
msgstr "Счёт аналитики"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: help:hr.employee,employee_account:0
|
||||
msgid "Employee Payable Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.contibution.register,yearly_total_by_comp:0
|
||||
msgid "Total By Company"
|
||||
msgstr "Всего по организации"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payroll_structure
|
||||
msgid "Salary Structure"
|
||||
msgstr "Структура зарплаты"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:557
|
||||
#, python-format
|
||||
msgid "Please Configure Partners Receivable Account!!"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: view:hr.contibution.register:0
|
||||
msgid "Year"
|
||||
msgstr "Год"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:280
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:455
|
||||
#, python-format
|
||||
msgid "Period is not defined for slip date %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: view:hr.payslip:0
|
||||
msgid "Accounting Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:540
|
||||
#, python-format
|
||||
msgid "Please Configure Partners Payable Account!!"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:429
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:432
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:533
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:550
|
||||
#, python-format
|
||||
msgid "Integrity Error !"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,23 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2010-2011 BAAMTU SARL (<http://www.baamtu.sn>).
|
||||
# contact: leadsn@baamtu.com
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2010-2011 BAAMTU SARL (<http://www.baamtu.sn>).
|
||||
# contact: leadsn@baamtu.com
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
"name" : "OHADA - The accounting chart ",
|
||||
"version" : "1.0",
|
||||
"author" : "Baamtu Senegal",
|
||||
"category" : "Localisation/Account Charts",
|
||||
"description": """This module implements the accounting chart for OHADA area.
|
||||
It allows any company or association to manage its financial accounting.
|
||||
Countries that use OHADA are the following:
|
||||
Benin, Burkina Faso, Cameroon, Central African Republic, Comoros, Congo,
|
||||
Ivory Coast, Gabon, Guinea, Guinea Bissau,
|
||||
Equatorial Guinea, Mali, Niger, Replica of Democratic Congo, Senegal, Chad, Togo.
|
||||
""",
|
||||
"website": "http://www.baamtu.com",
|
||||
"depends" : ["account", "base_vat"],
|
||||
"demo_xml" : [],
|
||||
"init_xml":[],
|
||||
"update_xml" : ["l10n_syscohada_data.xml","l10n_syscohada_wizard.xml"],
|
||||
"active": False,
|
||||
"installable": True
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,200 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * l10n_syscohada
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-05-09 10:31+0000\n"
|
||||
"PO-Revision-Date: 2011-06-20 13:17+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: 2011-06-21 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:ir.actions.todo,note:l10n_syscohada.config_call_account_template_syscohada
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
|
||||
"the name of the company, the chart template to follow, the no. of digits to "
|
||||
"generate the code for your accounts and Bank account, currency to create "
|
||||
"Journals. Thus,the pure copy of chart Template is generated.\n"
|
||||
"\tThis is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_asset
|
||||
msgid "Asset"
|
||||
msgstr "Actifs"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_income
|
||||
msgid "Income"
|
||||
msgstr "Produits"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_payable
|
||||
msgid "Payable"
|
||||
msgstr "À payer"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_stocks
|
||||
msgid "Actif circulant"
|
||||
msgstr "Actif circulant"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_dettes
|
||||
msgid "Dettes long terme"
|
||||
msgstr "Dettes long terme"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_tax
|
||||
msgid "Tax"
|
||||
msgstr "Taxes"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: constraint:account.account.template:0
|
||||
msgid "Error ! You can not create recursive account templates."
|
||||
msgstr "Erreur ! Vous ne pouvez pas créer des modéles de comptes récursifs"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_provision
|
||||
msgid "Provisions"
|
||||
msgstr "Provisions"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: constraint:account.tax.code.template:0
|
||||
msgid "Error ! You can not create recursive Tax Codes."
|
||||
msgstr "Erreur ! Vous ne pouvez pas créer de codes de taxe récursifs"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_commitment
|
||||
msgid "Engagements"
|
||||
msgstr "Engagements"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:ir.module.module,description:l10n_syscohada.module_meta_information
|
||||
msgid "This module implementes the accounting chart for OHADA area."
|
||||
msgstr ""
|
||||
"Ce module implémente le plan comptable général du système comptable de la "
|
||||
"zone OHAHA"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_expense
|
||||
msgid "Expense"
|
||||
msgstr "Charges"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_receivable
|
||||
msgid "Receivable"
|
||||
msgstr "Recevable"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères "
|
||||
"spéciaux !"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_immobilisations
|
||||
msgid "Immobilisations"
|
||||
msgstr "Immobilisations"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_equity
|
||||
msgid "Equity"
|
||||
msgstr "Capitaux propres"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_stock
|
||||
msgid "Stocks"
|
||||
msgstr "Stocks"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_cash
|
||||
msgid "Cash"
|
||||
msgstr "Liquidités"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_special
|
||||
msgid "Comptes spéciaux"
|
||||
msgstr "Comptes spéciaux"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_view
|
||||
msgid "View"
|
||||
msgstr "Vue"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:ir.module.module,shortdesc:l10n_syscohada.module_meta_information
|
||||
msgid "OHADA - Plan comptable général"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_cloture
|
||||
msgid "Cloture"
|
||||
msgstr "Clôture"
|
||||
|
||||
#~ msgid "The journal must have centralised counterpart"
|
||||
#~ msgstr "Le journal attend une contrepartie centralisée"
|
||||
|
||||
#~ msgid "Opening Entries Period"
|
||||
#~ msgstr "Période des écritures d'ouvertures"
|
||||
|
||||
#~ msgid "Fiscal Year to close"
|
||||
#~ msgstr "Année fiscale à clôturer"
|
||||
|
||||
#~ msgid "Generate Fiscal Year Opening Entries(Corrected)"
|
||||
#~ msgstr "Générer les écritures d'ouvertures d'exercice fiscal(Corrigé)"
|
||||
|
||||
#~ msgid "Generated during fiscal year closing/opening process"
|
||||
#~ msgstr "Ecriture de report"
|
||||
|
||||
#~ msgid "Opening Entries Journal"
|
||||
#~ msgstr "Journal des écritures d'ouverture"
|
||||
|
||||
#~ msgid "The journal must have default credit and debit account"
|
||||
#~ msgstr "Le journal doit posséder un compte de crédit et débit par défaut"
|
||||
|
||||
#~ msgid "Create entries"
|
||||
#~ msgstr "Créer les écritures"
|
||||
|
||||
#~ msgid "Name of new entries"
|
||||
#~ msgstr "Nom des nouvelles entrées"
|
||||
|
||||
#~ msgid "Closing of fiscal year cancelled, please check the box !"
|
||||
#~ msgstr "Clôture de l'exercice fiscal annulée, veuillez cocher la case !"
|
||||
|
||||
#~ msgid "End of Fiscal Year Entry"
|
||||
#~ msgstr "Écriture de fin d'exercice fiscal"
|
||||
|
||||
#~ msgid "The opening journal must not have any entry in the new fiscal year !"
|
||||
#~ msgstr ""
|
||||
#~ "Le journal d'ouverture ne doit pas contenir d'écriture dans le nouvel "
|
||||
#~ "exercice fiscal !"
|
||||
|
||||
#~ msgid "Close Fiscal Year with new entries"
|
||||
#~ msgstr "Clôturer l'exercice fiscal avec de nouvelles écritures"
|
||||
|
||||
#~ msgid "UserError"
|
||||
#~ msgstr "Erreur utilsateur"
|
||||
|
||||
#~ msgid "New Fiscal Year"
|
||||
#~ msgstr "Nouvel exercice fiscal"
|
||||
|
||||
#~ msgid "Check this box"
|
||||
#~ msgstr "Cocher cette case"
|
||||
|
||||
#~ msgid "Are you sure you want to create entries?"
|
||||
#~ msgstr "Etes vous sûr de vouloir enrégistrer des écritures"
|
||||
|
||||
#~ msgid "Cancel"
|
||||
#~ msgstr "Annuler"
|
||||
@@ -0,0 +1,240 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * l10n_syscohada
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-05-09 10:31+0000\n"
|
||||
"PO-Revision-Date: 2010-05-09 10:31+0000\n"
|
||||
"Last-Translator: Baamtu Sarl \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-05-09 10:31+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:ir.actions.todo,note:l10n_syscohada.config_call_account_template_syscohada
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
|
||||
"the name of the company, the chart template to follow, the no. of digits to "
|
||||
"generate the code for your accounts and Bank account, currency to create "
|
||||
"Journals. Thus,the pure copy of chart Template is generated.\n"
|
||||
"\tThis is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_asset
|
||||
msgid "Asset"
|
||||
msgstr "Actifs"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_income
|
||||
msgid "Income"
|
||||
msgstr "Produits"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_payable
|
||||
msgid "Payable"
|
||||
msgstr "À payer"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_stocks
|
||||
msgid "Actif circulant"
|
||||
msgstr "Actif circulant"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_dettes
|
||||
msgid "Dettes long terme"
|
||||
msgstr "Dettes long terme"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_tax
|
||||
msgid "Tax"
|
||||
msgstr "Taxes"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: constraint:account.account.template:0
|
||||
msgid "Error ! You can not create recursive account templates."
|
||||
msgstr "Erreur ! Vous ne pouvez pas créer des modéles de comptes récursifs"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_provision
|
||||
msgid "Provisions"
|
||||
msgstr "Provisions"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: constraint:account.tax.code.template:0
|
||||
msgid "Error ! You can not create recursive Tax Codes."
|
||||
msgstr "Erreur ! Vous ne pouvez pas créer de codes de taxe récursifs"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_commitment
|
||||
msgid "Engagements"
|
||||
msgstr "Engagements"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:ir.module.module,description:l10n_syscohada.module_meta_information
|
||||
msgid "This module implementes the accounting chart for OHADA area."
|
||||
msgstr "Ce module implémente le plan comptable général du système comptable de la zone OHAHA"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_expense
|
||||
msgid "Expense"
|
||||
msgstr "Charges"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_receivable
|
||||
msgid "Receivable"
|
||||
msgstr "Recevable"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères "
|
||||
"spéciaux !"
|
||||
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_immobilisations
|
||||
msgid "Immobilisations"
|
||||
msgstr "Immobilisations"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_equity
|
||||
msgid "Equity"
|
||||
msgstr "Capitaux propres"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_stock
|
||||
msgid "Stocks"
|
||||
msgstr "Stocks"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_cash
|
||||
msgid "Cash"
|
||||
msgstr "Liquidités"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_special
|
||||
msgid "Comptes spéciaux"
|
||||
msgstr "Comptes spéciaux"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_view
|
||||
msgid "View"
|
||||
msgstr "Vue"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:ir.module.module,shortdesc:l10n_syscohada.module_meta_information
|
||||
msgid "OHADA - Plan comptable général"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_cloture
|
||||
msgid "Cloture"
|
||||
msgstr "Clôture"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
|
||||
#, python-format
|
||||
msgid "The journal must have centralised counterpart"
|
||||
msgstr "Le journal attend une contrepartie centralisée"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: wizard_field:account.fiscalyear.close_corrected,init,period_id:0
|
||||
msgid "Opening Entries Period"
|
||||
msgstr "Période des écritures d'ouvertures"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: wizard_field:account.fiscalyear.close_corrected,init,fy_id:0
|
||||
msgid "Fiscal Year to close"
|
||||
msgstr "Année fiscale à clôturer"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:ir.actions.wizard,name:l10n_syscohada.wizard_fiscalyear_close_corrected
|
||||
#: model:ir.ui.menu,name:l10n_syscohada.menu_wizard_fy_close_corrected
|
||||
msgid "Generate Fiscal Year Opening Entries(Corrected)"
|
||||
msgstr "Générer les écritures d'ouvertures d'exercice fiscal(Corrigé)"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: field:account.move.line,fy_opening:0
|
||||
msgid "Generated during fiscal year closing/opening process"
|
||||
msgstr "Ecriture de report"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: wizard_field:account.fiscalyear.close_corrected,init,journal_id:0
|
||||
msgid "Opening Entries Journal"
|
||||
msgstr "Journal des écritures d'ouverture"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
|
||||
#, python-format
|
||||
msgid "The journal must have default credit and debit account"
|
||||
msgstr "Le journal doit posséder un compte de crédit et débit par défaut"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: wizard_button:account.fiscalyear.close_corrected,init,close:0
|
||||
msgid "Create entries"
|
||||
msgstr "Créer les écritures"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: wizard_field:account.fiscalyear.close_corrected,init,report_name:0
|
||||
msgid "Name of new entries"
|
||||
msgstr "Nom des nouvelles entrées"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
|
||||
#, python-format
|
||||
msgid "Closing of fiscal year cancelled, please check the box !"
|
||||
msgstr "Clôture de l'exercice fiscal annulée, veuillez cocher la case !"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
|
||||
#, python-format
|
||||
msgid "End of Fiscal Year Entry"
|
||||
msgstr "Écriture de fin d'exercice fiscal"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
|
||||
#, python-format
|
||||
msgid "The opening journal must not have any entry in the new fiscal year !"
|
||||
msgstr "Le journal d'ouverture ne doit pas contenir d'écriture dans le nouvel exercice fiscal !"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: wizard_view:account.fiscalyear.close_corrected,init:0
|
||||
msgid "Close Fiscal Year with new entries"
|
||||
msgstr "Clôturer l'exercice fiscal avec de nouvelles écritures"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
|
||||
#, python-format
|
||||
msgid "UserError"
|
||||
msgstr "Erreur utilsateur"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: wizard_field:account.fiscalyear.close_corrected,init,fy2_id:0
|
||||
msgid "New Fiscal Year"
|
||||
msgstr "Nouvel exercice fiscal"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: wizard_field:account.fiscalyear.close_corrected,init,sure:0
|
||||
msgid "Check this box"
|
||||
msgstr "Cocher cette case"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: wizard_view:account.fiscalyear.close_corrected,init:0
|
||||
msgid "Are you sure you want to create entries?"
|
||||
msgstr "Etes vous sûr de vouloir enrégistrer des écritures"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: wizard_button:account.fiscalyear.close_corrected,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
@@ -0,0 +1,137 @@
|
||||
#,
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-05-09 10:31+0000\n"
|
||||
"PO-Revision-Date: 2010-05-09 10:31+0000\n"
|
||||
"Last-Translator: <>\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-05-09 10:31+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:ir.actions.todo,note:l10n_syscohada.config_call_account_template_syscohada
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
|
||||
"the name of the company, the chart template to follow, the no. of digits to "
|
||||
"generate the code for your accounts and Bank account, currency to create "
|
||||
"Journals. Thus,the pure copy of chart Template is generated.\n"
|
||||
"\tThis is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_asset
|
||||
msgid "Asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_income
|
||||
msgid "Income"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_payable
|
||||
msgid "Payable"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_stocks
|
||||
msgid "Actif circulant"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_dettes
|
||||
msgid "Dettes long terme"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_tax
|
||||
msgid "Tax"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: constraint:account.account.template:0
|
||||
msgid "Error ! You can not create recursive account templates."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_provision
|
||||
msgid "Provisions"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: constraint:account.tax.code.template:0
|
||||
msgid "Error ! You can not create recursive Tax Codes."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_commitment
|
||||
msgid "Engagements"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:ir.module.module,description:l10n_syscohada.module_meta_information
|
||||
msgid "This module implementes the accounting chart for OHADA area."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_expense
|
||||
msgid "Expense"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_receivable
|
||||
msgid "Receivable"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_immobilisations
|
||||
msgid "Immobilisations"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_equity
|
||||
msgid "Equity"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_stock
|
||||
msgid "Stocks"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_cash
|
||||
msgid "Cash"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_special
|
||||
msgid "Comptes spéciaux"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_view
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:ir.module.module,shortdesc:l10n_syscohada.module_meta_information
|
||||
msgid "OHADA - Plan comptable général"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_cloture
|
||||
msgid "Cloture"
|
||||
msgstr ""
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="config_call_account_template_syscohada" model="ir.actions.todo">
|
||||
<field name="name">Generate Chart of Accounts from a Chart Template</field>
|
||||
<field name="note">Generate Chart of Accounts from a SYSCOHADA Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
|
||||
This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.</field>
|
||||
<field name="action_id" ref="account.action_wizard_multi_chart"/>
|
||||
<field name="state">open</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,360 @@
|
||||
# Finnish 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-06-20 10:00+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2011-06-21 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,res_id:0
|
||||
msgid "Resource ID"
|
||||
msgstr "Resurssi ID"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:68
|
||||
#: code:addons/mail_gateway/mail_gateway.py:71
|
||||
#: code:addons/mail_gateway/mail_gateway.py:89
|
||||
#, python-format
|
||||
msgid "Method is not implemented"
|
||||
msgstr "Metodia ei ole toteutettu"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
#: field:mailgate.message,email_from:0
|
||||
msgid "From"
|
||||
msgstr "Lähettäjä"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Open Attachments"
|
||||
msgstr "Avaa liitteet"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Message Details"
|
||||
msgstr "Viestin yksityiskohdat"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,message_id:0
|
||||
msgid "Message Id"
|
||||
msgstr "Viestin ID"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,ref_id:0
|
||||
msgid "Reference Id"
|
||||
msgstr "Viite id"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.thread:0
|
||||
msgid "Mailgateway History"
|
||||
msgstr "Postiyhteyden historia"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:249
|
||||
#, python-format
|
||||
msgid "Note"
|
||||
msgstr "Huomautus"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Group By..."
|
||||
msgstr "Ryhmittely.."
|
||||
|
||||
#. module: mail_gateway
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error ! You can not create recursive associated members."
|
||||
msgstr "Virhe! Rekursiivisesti rinnastettuja jäseniä ei voi luoda."
|
||||
|
||||
#. module: mail_gateway
|
||||
#: help:mailgate.message,message_id:0
|
||||
msgid "Message Id on Email."
|
||||
msgstr "Viestin id sähköpostissa"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: help:mailgate.message,email_to:0
|
||||
msgid "Email Recipients"
|
||||
msgstr "Sähköpostin vastaanottajat"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Details"
|
||||
msgstr "Yksityiskohdat"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.thread:0
|
||||
msgid "Mailgate History"
|
||||
msgstr "Sähöpostivälittäjän historia"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: model:ir.model,name:mail_gateway.model_email_server_tools
|
||||
msgid "Email Server Tools"
|
||||
msgstr "Sähköpostipalvelimen työkalut"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Email Followers"
|
||||
msgstr "Sähköpostin seuraajat"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: model:ir.model,name:mail_gateway.model_res_partner
|
||||
#: view:mailgate.message:0
|
||||
#: field:mailgate.message,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr "Yhteistyökumppani"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:250
|
||||
#, python-format
|
||||
msgid " wrote on %s:\n"
|
||||
msgstr ""
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
#: field:mailgate.message,description:0
|
||||
#: field:mailgate.message,message:0
|
||||
msgid "Description"
|
||||
msgstr "Kuvaus"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,email_to:0
|
||||
msgid "To"
|
||||
msgstr "Vastaanottaja"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: help:mailgate.message,references:0
|
||||
msgid "References emails."
|
||||
msgstr "Viittaavat sähköpostit"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: help:mailgate.message,email_cc:0
|
||||
msgid "Carbon Copy Email Recipients"
|
||||
msgstr "Kopio viestistä vastaanottajille"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: model:ir.module.module,shortdesc:mail_gateway.module_meta_information
|
||||
msgid "Email Gateway System"
|
||||
msgstr "Sähköpostivälitysjärjstelmä"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,date:0
|
||||
msgid "Date"
|
||||
msgstr "Päiväys"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,model:0
|
||||
msgid "Object Name"
|
||||
msgstr "Objektin nimi"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Partner Name"
|
||||
msgstr "Kumppanin Nimi"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: model:ir.actions.act_window,name:mail_gateway.action_view_mailgate_thread
|
||||
msgid "Mailgateway Threads"
|
||||
msgstr "sähköpostivälittäjän keskustelut"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:247
|
||||
#, python-format
|
||||
msgid "Opportunity"
|
||||
msgstr "Mahdollisuus"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: model:ir.actions.act_window,name:mail_gateway.act_res_partner_emails
|
||||
#: model:ir.actions.act_window,name:mail_gateway.action_view_mailgate_message
|
||||
#: view:mailgate.message:0
|
||||
#: field:res.partner,emails:0
|
||||
msgid "Emails"
|
||||
msgstr "Sähköpostit"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:252
|
||||
#, python-format
|
||||
msgid "Stage"
|
||||
msgstr "Vaihe"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:250
|
||||
#, python-format
|
||||
msgid " added note on "
|
||||
msgstr " lisäsi huomautuksen "
|
||||
|
||||
#. module: mail_gateway
|
||||
#: help:mailgate.message,email_from:0
|
||||
msgid "Email From"
|
||||
msgstr "Sähköposti lähettäjältä"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Thread"
|
||||
msgstr "Keskustelu"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: model:ir.model,name:mail_gateway.model_mailgate_message
|
||||
msgid "Mailgateway Message"
|
||||
msgstr "sähköpostivälittäjän viesti"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: model:ir.actions.act_window,name:mail_gateway.action_view_mail_message
|
||||
#: field:mailgate.thread,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr "Viestit"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,user_id:0
|
||||
msgid "User Responsible"
|
||||
msgstr "Vastuunalainen käyttäjä"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:248
|
||||
#, python-format
|
||||
msgid "Converted to Opportunity"
|
||||
msgstr "Muutettu mahdollisuudeksi"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,email_bcc:0
|
||||
msgid "Bcc"
|
||||
msgstr "Piilokopio"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,history:0
|
||||
msgid "Is History?"
|
||||
msgstr "onko historiaa?"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: help:mailgate.message,email_bcc:0
|
||||
msgid "Blind Carbon Copy Email Recipients"
|
||||
msgstr "Piilokopion vastaanottajat"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "mailgate message"
|
||||
msgstr "Postinvälittäjän viesti"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:148
|
||||
#: view:mailgate.thread:0
|
||||
#: view:res.partner:0
|
||||
#, python-format
|
||||
msgid "History"
|
||||
msgstr "Historia"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,references:0
|
||||
msgid "References"
|
||||
msgstr "Viitteet"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: model:ir.model,name:mail_gateway.model_mailgate_thread
|
||||
#: view:mailgate.thread:0
|
||||
msgid "Mailgateway Thread"
|
||||
msgstr "sähköpostivälittäjän keskustelu"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: model:ir.actions.act_window,name:mail_gateway.act_res_partner_open_email
|
||||
#: view:mailgate.message:0
|
||||
#: field:mailgate.message,attachment_ids:0
|
||||
#: view:mailgate.thread:0
|
||||
msgid "Attachments"
|
||||
msgstr "Liitteet"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Open Document"
|
||||
msgstr "Avaa asiakirja"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.thread:0
|
||||
msgid "Email Details"
|
||||
msgstr "Sähköpostin yksityiskohdat"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,email_cc:0
|
||||
msgid "Cc"
|
||||
msgstr "Kopio"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:254
|
||||
#, python-format
|
||||
msgid " on %s:\n"
|
||||
msgstr ""
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Month"
|
||||
msgstr "Kuukausi"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Email Search"
|
||||
msgstr "Sähköpostin haku"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:561
|
||||
#, python-format
|
||||
msgid "receive"
|
||||
msgstr "vastaanota"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: model:ir.module.module,description:mail_gateway.module_meta_information
|
||||
msgid ""
|
||||
"The generic email gateway system allows to send and receive emails\n"
|
||||
" * History for Emails\n"
|
||||
" * Easy Integration with any Module"
|
||||
msgstr ""
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:255
|
||||
#, python-format
|
||||
msgid "Changed Status to: "
|
||||
msgstr "Tila muutettu : "
|
||||
|
||||
#. module: mail_gateway
|
||||
#: field:mailgate.message,display_text:0
|
||||
msgid "Display Text"
|
||||
msgstr "Näytä teksti"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Owner"
|
||||
msgstr "Omistaja"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: code:addons/mail_gateway/mail_gateway.py:253
|
||||
#, python-format
|
||||
msgid "Changed Stage to: "
|
||||
msgstr "Vaihe muutettu : "
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
msgid "Message"
|
||||
msgstr "Viesti"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: view:mailgate.message:0
|
||||
#: field:mailgate.message,name:0
|
||||
msgid "Subject"
|
||||
msgstr "Aihe"
|
||||
|
||||
#. module: mail_gateway
|
||||
#: help:mailgate.message,ref_id:0
|
||||
msgid "Message Id in Email Server."
|
||||
msgstr "Viestin ID sähköpostipalvelimella."
|
||||
|
||||
#, python-format
|
||||
#~ msgid " wrote on "
|
||||
#~ msgstr " kirjoitti "
|
||||
@@ -116,7 +116,7 @@
|
||||
<page string="Invoicing">
|
||||
<field name="invoice_method" colspan="4"/>
|
||||
<field
|
||||
name="pricelist_id" context="product_id=product_id"
|
||||
name="pricelist_id" context="{'product_id':product_id}"
|
||||
attrs="{'readonly':[('invoice_method','=', 'none')]}"/>
|
||||
<field name="partner_invoice_id" attrs="{'readonly':[('invoice_method','=', 'none')]}"/>
|
||||
<!-- <field name="invoice_id"/> -->
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
# Finnish 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-06-20 09:14+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2011-06-21 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: outlook
|
||||
#: field:outlook.installer,doc_file:0
|
||||
msgid "Installation Manual"
|
||||
msgstr "Asennusohje"
|
||||
|
||||
#. module: outlook
|
||||
#: field:outlook.installer,plugin_file:0
|
||||
msgid "Outlook Plug-in"
|
||||
msgstr "Outlook liitännäinen"
|
||||
|
||||
#. module: outlook
|
||||
#: field:outlook.installer,description:0
|
||||
msgid "Description"
|
||||
msgstr "Kuvaus"
|
||||
|
||||
#. module: outlook
|
||||
#: model:ir.ui.menu,name:outlook.menu_base_config_plugins_outlook
|
||||
#: view:outlook.installer:0
|
||||
msgid "Outlook Plug-In"
|
||||
msgstr "Outlook liitännäinen"
|
||||
|
||||
#. module: outlook
|
||||
#: view:outlook.installer:0
|
||||
msgid "Skip"
|
||||
msgstr "Ohita"
|
||||
|
||||
#. module: outlook
|
||||
#: model:ir.module.module,shortdesc:outlook.module_meta_information
|
||||
msgid "Outlook Interface"
|
||||
msgstr "Outlook liittymä"
|
||||
|
||||
#. module: outlook
|
||||
#: field:outlook.installer,doc_name:0
|
||||
#: field:outlook.installer,name:0
|
||||
msgid "File name"
|
||||
msgstr "Tiedostonimi"
|
||||
|
||||
#. module: outlook
|
||||
#: field:outlook.installer,outlook:0
|
||||
msgid "Outlook Plug-in "
|
||||
msgstr "Outlook liitännäinen "
|
||||
|
||||
#. module: outlook
|
||||
#: model:ir.module.module,description:outlook.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" This module provide the Outlook plug-in. \n"
|
||||
"\n"
|
||||
" Outlook plug-in allows you to select an object that you’d like to add\n"
|
||||
" to your email and its attachments from MS Outlook. You can select a "
|
||||
"partner, a task,\n"
|
||||
" a project, an analytical account, or any other object and Archived "
|
||||
"selected\n"
|
||||
" mail in mailgate.messages with attachments.\n"
|
||||
"\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: outlook
|
||||
#: help:outlook.installer,doc_file:0
|
||||
msgid "The documentation file :- how to install Outlook Plug-in."
|
||||
msgstr "Dokumentointi : -kuinka outlook liitännäinen asennetaan."
|
||||
|
||||
#. module: outlook
|
||||
#: model:ir.model,name:outlook.model_outlook_installer
|
||||
msgid "outlook.installer"
|
||||
msgstr ""
|
||||
|
||||
#. module: outlook
|
||||
#: model:ir.actions.act_window,name:outlook.action_outlook_installer
|
||||
#: model:ir.actions.act_window,name:outlook.action_outlook_wizard
|
||||
#: view:outlook.installer:0
|
||||
msgid "Outlook Plug-In Configuration"
|
||||
msgstr "Outlook liitännäisen konfiguraatio"
|
||||
|
||||
#. module: outlook
|
||||
#: field:outlook.installer,progress:0
|
||||
msgid "Configuration Progress"
|
||||
msgstr "Konfiguraation eteneminen"
|
||||
|
||||
#. module: outlook
|
||||
#: view:outlook.installer:0
|
||||
msgid ""
|
||||
"This plug-in allows you to link your e-mail to OpenERP's documents. You can "
|
||||
"attach it to any existing one in OpenERP or create a new one."
|
||||
msgstr ""
|
||||
"Tämä liitännäien sallii sinun linkittää sähköpostisi OpenERP dokumentteihin. "
|
||||
"Voit liittää sen mihin tahansa OpenERP:iin tai luoda uuden."
|
||||
|
||||
#. module: outlook
|
||||
#: help:outlook.installer,outlook:0
|
||||
msgid ""
|
||||
"Allows you to select an object that you would like to add to your email and "
|
||||
"its attachments."
|
||||
msgstr ""
|
||||
"Voit valita objektin jonka haluat liittää sähköpostiin ja sen liitteisiin."
|
||||
|
||||
#. module: outlook
|
||||
#: view:outlook.installer:0
|
||||
msgid "title"
|
||||
msgstr "otsikko"
|
||||
|
||||
#. module: outlook
|
||||
#: view:outlook.installer:0
|
||||
msgid "_Close"
|
||||
msgstr ""
|
||||
|
||||
#. module: outlook
|
||||
#: view:outlook.installer:0
|
||||
msgid "Installation and Configuration Steps"
|
||||
msgstr "Asennus ja konfigurointivaiheet"
|
||||
|
||||
#. module: outlook
|
||||
#: field:outlook.installer,config_logo:0
|
||||
msgid "Image"
|
||||
msgstr "Kuva"
|
||||
|
||||
#. module: outlook
|
||||
#: help:outlook.installer,plugin_file:0
|
||||
msgid ""
|
||||
"outlook plug-in file. Save as this file and install this plug-in in outlook."
|
||||
msgstr ""
|
||||
"Outlook liitännäistiedosto. Talleta se tiedostona ja asenna outlookissa."
|
||||
|
||||
#. module: outlook
|
||||
#: view:outlook.installer:0
|
||||
msgid "Configure"
|
||||
msgstr "Konfiguroi"
|
||||
@@ -0,0 +1,77 @@
|
||||
# Finnish 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-06-20 09:18+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2011-06-21 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: pad
|
||||
#: code:addons/pad/web/editors.py:32
|
||||
#, python-format
|
||||
msgid "Ok"
|
||||
msgstr "OK"
|
||||
|
||||
#. module: pad
|
||||
#: code:addons/pad/web/editors.py:29
|
||||
#, python-format
|
||||
msgid "Name"
|
||||
msgstr "Nimi"
|
||||
|
||||
#. module: pad
|
||||
#: help:res.company,pad_index:0
|
||||
msgid "The root URL of the company's pad instance"
|
||||
msgstr "Peruspolku yrityksen PAD instassiin"
|
||||
|
||||
#. module: pad
|
||||
#: model:ir.model,name:pad.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "Yritykset"
|
||||
|
||||
#. module: pad
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr "Virhe! Et voi luoda sisäkkäisiä yrityksiä."
|
||||
|
||||
#. module: pad
|
||||
#: code:addons/pad/web/editors.py:17
|
||||
#, python-format
|
||||
msgid "Write"
|
||||
msgstr "Kirjoita"
|
||||
|
||||
#. module: pad
|
||||
#: model:ir.module.module,description:pad.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
"Adds enhanced support for (Ether)Pad attachments in the web client, lets "
|
||||
"the\n"
|
||||
"company customize which Pad installation should be used to link to new pads\n"
|
||||
"(by default, pad.openerp.com)\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: pad
|
||||
#: field:res.company,pad_index:0
|
||||
msgid "Pad root URL"
|
||||
msgstr "Padin peruspolku (URL)"
|
||||
|
||||
#. module: pad
|
||||
#: view:res.company:0
|
||||
msgid "Pad"
|
||||
msgstr ""
|
||||
|
||||
#. module: pad
|
||||
#: model:ir.module.module,shortdesc:pad.module_meta_information
|
||||
msgid "Enhanced support for (Ether)Pad attachments"
|
||||
msgstr "Parannettu tuki (Ether)PAD liitännöille"
|
||||
@@ -0,0 +1,899 @@
|
||||
# Finnish 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-06-20 09:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2011-06-21 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: procurement
|
||||
#: view:make.procurement:0
|
||||
msgid "Ask New Products"
|
||||
msgstr "Kysy uusia tuotteita"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_sched
|
||||
msgid "Schedulers"
|
||||
msgstr "Ajastimet"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_make_procurement
|
||||
msgid "Make Procurements"
|
||||
msgstr "Tee hankinnat"
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order.compute.all,automatic:0
|
||||
msgid ""
|
||||
"Triggers an automatic procurement for all products that have a virtual stock "
|
||||
"under 0. You should probably not use this option, we suggest using a MTO "
|
||||
"configuration on products."
|
||||
msgstr ""
|
||||
"Liipaisee automaattisen hankinnan kaikille tuotteille joiden näennäisvarasto "
|
||||
"on alle 0. Tätä vaihtoehtoa ei yleensä käytetä, vaan tuotteille on parempi "
|
||||
"määrittää varastosäännöt."
|
||||
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Group By..."
|
||||
msgstr "Ryhmittely.."
|
||||
|
||||
#. module: procurement
|
||||
#: help:stock.warehouse.orderpoint,procurement_draft_ids:0
|
||||
msgid "Draft procurement of the product and location of that orderpoint"
|
||||
msgstr "Luonnnos hankinta tuotteelle ja tilauspisteen paikalle"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:288
|
||||
#, python-format
|
||||
msgid "No supplier defined for this product !"
|
||||
msgstr "Tuotteelle ei ole määritelty toimittajaa!"
|
||||
|
||||
#. module: procurement
|
||||
#: field:make.procurement,uom_id:0
|
||||
msgid "Unit of Measure"
|
||||
msgstr "Mittayksikkö"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,procure_method:0
|
||||
msgid "Procurement Method"
|
||||
msgstr "Hankintatapa"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:304
|
||||
#, python-format
|
||||
msgid "No address defined for the supplier"
|
||||
msgstr "Toimittajan osoitetta ei ole määritetty"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,name:procurement.action_procurement_compute
|
||||
msgid "Compute Stock Minimum Rules Only"
|
||||
msgstr "Laske vain varaston minimirajat"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,company_id:0
|
||||
#: field:stock.warehouse.orderpoint,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Yritys"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,product_uos_qty:0
|
||||
msgid "UoS Quantity"
|
||||
msgstr "Myyntiyksikkö määrä"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
#: field:procurement.order,name:0
|
||||
msgid "Reason"
|
||||
msgstr "Syy"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order.compute:0
|
||||
msgid "Compute Procurements"
|
||||
msgstr "Laske hankinnat"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,message:0
|
||||
msgid "Latest error"
|
||||
msgstr "Viimeisin virhe"
|
||||
|
||||
#. module: procurement
|
||||
#: help:mrp.property,composition:0
|
||||
msgid "Not used in computations, for information purpose only."
|
||||
msgstr "Ei käytetä laskutoimituksiin - vain tietoja varten."
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,procurement_id:0
|
||||
msgid "Latest procurement"
|
||||
msgstr "Viimeisin hankinta"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Notes"
|
||||
msgstr "Huomautukset"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,procure_method:0
|
||||
msgid "on order"
|
||||
msgstr "tilauksessa"
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order,message:0
|
||||
msgid "Exception occurred while computing procurement orders."
|
||||
msgstr "Hankintatilausten laskennassa sattui poikkeus."
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order,state:0
|
||||
msgid ""
|
||||
"When a procurement is created the state is set to 'Draft'.\n"
|
||||
" If the procurement is confirmed, the state is set to 'Confirmed'. "
|
||||
" \n"
|
||||
"After confirming the state is set to 'Running'.\n"
|
||||
" If any exception arises in the order then the state is set to 'Exception'.\n"
|
||||
" Once the exception is removed the state becomes 'Ready'.\n"
|
||||
" It is in 'Waiting'. state when the procurement is waiting for another one "
|
||||
"to finish."
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Minimum Stock Rules Search"
|
||||
msgstr "Minimivarasto sääntöjen haku"
|
||||
|
||||
#. module: procurement
|
||||
#: help:stock.warehouse.orderpoint,product_min_qty:0
|
||||
msgid ""
|
||||
"When the virtual stock goes belong the Min Quantity, OpenERP generates a "
|
||||
"procurement to bring the virtual stock to the Max Quantity."
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order.compute.all:0
|
||||
msgid "Scheduler Parameters"
|
||||
msgstr "Aikataulutuksen parametrit"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_stock_move
|
||||
msgid "Stock Move"
|
||||
msgstr "Varastosiirto"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Planification"
|
||||
msgstr "Suunnittelu"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Ready"
|
||||
msgstr "Valmis"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order.compute.all,automatic:0
|
||||
msgid "Automatic orderpoint"
|
||||
msgstr "Automaattinen tilauspiste"
|
||||
|
||||
#. module: procurement
|
||||
#: field:mrp.property,composition:0
|
||||
msgid "Properties composition"
|
||||
msgstr "Ominaisuuksien koostumus"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Confirmed"
|
||||
msgstr "Vahvistettu"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Retry"
|
||||
msgstr "Yritä uudelleen"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order.compute:0
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
msgid "Parameters"
|
||||
msgstr "Parametrit"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Confirm"
|
||||
msgstr "Vahvista"
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order,origin:0
|
||||
msgid ""
|
||||
"Reference of the document that created this Procurement.\n"
|
||||
"This is automatically completed by OpenERP."
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Procurement Orders to Process"
|
||||
msgstr "Prosessoitavat hankintatilaukset"
|
||||
|
||||
#. module: procurement
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr "Virhe! Et voi luoda sisäkkäisiä yrityksiä."
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,priority:0
|
||||
msgid "Priority"
|
||||
msgstr "Prioriteetti"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
#: field:procurement.order,state:0
|
||||
msgid "State"
|
||||
msgstr "Tila"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,location_id:0
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
#: field:stock.warehouse.orderpoint,location_id:0
|
||||
msgid "Location"
|
||||
msgstr "Sijainti"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr "Keräilylista"
|
||||
|
||||
#. module: procurement
|
||||
#: field:make.procurement,warehouse_id:0
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
#: field:stock.warehouse.orderpoint,warehouse_id:0
|
||||
msgid "Warehouse"
|
||||
msgstr "Varasto"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:stock.warehouse.orderpoint,logic:0
|
||||
msgid "Best price (not yet active!)"
|
||||
msgstr "Paras hinta (ei vielä aktiivinen!)"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Product & Location"
|
||||
msgstr "Tuote & Sijainti"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_procurement_order_compute
|
||||
msgid "Compute Procurement"
|
||||
msgstr "Laske hankinta"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.module.module,shortdesc:procurement.module_meta_information
|
||||
#: field:stock.move,procurements:0
|
||||
msgid "Procurements"
|
||||
msgstr "Hankinnat"
|
||||
|
||||
#. module: procurement
|
||||
#: field:res.company,schedule_range:0
|
||||
msgid "Scheduler Range Days"
|
||||
msgstr "Ajastimen jakson päivät"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,help:procurement.procurement_action
|
||||
msgid ""
|
||||
"A procurement order is used to record a need for a specific product at a "
|
||||
"specific location. A procurement order is usually created automatically from "
|
||||
"sales orders, a Pull Logistics rule or Minimum Stock Rules. When the "
|
||||
"procurement order is confirmed, it automatically creates the necessary "
|
||||
"operations to fullfil the need: purchase order proposition, manufacturing "
|
||||
"order, etc."
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: field:make.procurement,date_planned:0
|
||||
msgid "Planned Date"
|
||||
msgstr "Suunniteltu päivämäärä"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Group By"
|
||||
msgstr "Ryhmittelyn peruste"
|
||||
|
||||
#. module: procurement
|
||||
#: field:make.procurement,qty:0
|
||||
#: field:procurement.order,product_qty:0
|
||||
msgid "Quantity"
|
||||
msgstr "Määrä"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:377
|
||||
#, python-format
|
||||
msgid "Not enough stock and no minimum orderpoint rule defined."
|
||||
msgstr "Ei tarpeeksi varastoa eikä minimitilauspistesääntöä määriteltynä"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:137
|
||||
#, python-format
|
||||
msgid "Invalid action !"
|
||||
msgstr "Virheellinen toiminto!"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "References"
|
||||
msgstr "Viitteet"
|
||||
|
||||
#. module: procurement
|
||||
#: view:res.company:0
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguraatio"
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,qty_multiple:0
|
||||
msgid "Qty Multiple"
|
||||
msgstr "Määrän kerroin"
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order,procure_method:0
|
||||
msgid ""
|
||||
"If you encode manually a Procurement, you probably want to use a make to "
|
||||
"order method."
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_procurement
|
||||
msgid "Automatic Procurements"
|
||||
msgstr "Automaattiset hankinnat"
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,product_max_qty:0
|
||||
msgid "Max Quantity"
|
||||
msgstr "Maksimimäärä"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_procurement_order
|
||||
#: model:process.process,name:procurement.process_process_procurementprocess0
|
||||
#: view:procurement.order:0
|
||||
msgid "Procurement"
|
||||
msgstr "Hankinta"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,name:procurement.procurement_action
|
||||
msgid "Procurement Orders"
|
||||
msgstr "Hankintatilaukset"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "To Fix"
|
||||
msgstr "Korjattavaksi"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Exceptions"
|
||||
msgstr "Poikkeukset"
|
||||
|
||||
#. module: procurement
|
||||
#: model:process.node,note:procurement.process_node_serviceonorder0
|
||||
msgid "Assignment from Production or Purchase Order."
|
||||
msgstr "Määritys tuotannosta tai ostotilaukselta."
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_mrp_property
|
||||
msgid "Property"
|
||||
msgstr "Ominaisuus"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,name:procurement.act_make_procurement
|
||||
#: view:make.procurement:0
|
||||
msgid "Procurement Request"
|
||||
msgstr "Hankintapyyntö"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
msgid "Compute Stock"
|
||||
msgstr "Laske varasto"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Late"
|
||||
msgstr "Myöhässä"
|
||||
|
||||
#. module: procurement
|
||||
#: model:process.process,name:procurement.process_process_serviceproductprocess0
|
||||
msgid "Service"
|
||||
msgstr "Palvelu"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.module.module,description:procurement.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" This is the module for computing Procurements.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,procurement_draft_ids:0
|
||||
msgid "Related Procurement Orders"
|
||||
msgstr "Liittyvät hankintatilaukset"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
msgid ""
|
||||
"Wizard checks all the stock minimum rules and generate procurement order."
|
||||
msgstr "Velho tarkistaa kaikki minimivarastosäännöt ja luo hankintatilauksen"
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,product_min_qty:0
|
||||
msgid "Min Quantity"
|
||||
msgstr "Minimimäärä"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,priority:0
|
||||
msgid "Urgent"
|
||||
msgstr "Kiireellinen"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:mrp.property,composition:0
|
||||
msgid "plus"
|
||||
msgstr "plus"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:325
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please check the Quantity in Procurement Order(s), it should not be less "
|
||||
"than 1!"
|
||||
msgstr ""
|
||||
"Ole hyvä ja tarkista määrä hankintatilauksella. Sen ei tulisi olla alle 1 !"
|
||||
|
||||
#. module: procurement
|
||||
#: help:stock.warehouse.orderpoint,active:0
|
||||
msgid ""
|
||||
"If the active field is set to False, it will allow you to hide the "
|
||||
"orderpoint without removing it."
|
||||
msgstr ""
|
||||
"Jos aktiivisen kentän tilaksi asetetaan epätosi (false) se mahdollistaa "
|
||||
"tilauspisteen piilottamisen ilman sen poistamista"
|
||||
|
||||
#. module: procurement
|
||||
#: help:stock.warehouse.orderpoint,product_max_qty:0
|
||||
msgid ""
|
||||
"When the virtual stock goes belong the Max Quantity, OpenERP generates a "
|
||||
"procurement to bring the virtual stock to the Max Quantity."
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.orderpoint.compute,automatic:0
|
||||
msgid "If the stock of a product is under 0, it will act like an orderpoint"
|
||||
msgstr "Jos tuotteen varastosaldo on alle 0, toimii se tilauspisteenä"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Procurement Lines"
|
||||
msgstr "Hankinnan rivit"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order.compute.all:0
|
||||
msgid ""
|
||||
"This wizard allows you to run all procurement, production and/or purchase "
|
||||
"orders that should be processed based on their configuration. By default, "
|
||||
"the scheduler is launched automatically every night by OpenERP. You can use "
|
||||
"this menu to force it to be launched now. Note that it runs in the "
|
||||
"background, you may have to wait for a few minutes until it has finished "
|
||||
"computing."
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
#: field:procurement.order,note:0
|
||||
msgid "Note"
|
||||
msgstr "Huomautus"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Draft"
|
||||
msgstr "Luonnos"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order.compute:0
|
||||
msgid "This wizard will schedule procurements."
|
||||
msgstr "Tämä ohjattu toiminto ajoittaa hankinnat."
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Status"
|
||||
msgstr "Tila"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,priority:0
|
||||
msgid "Normal"
|
||||
msgstr "Tavallinen"
|
||||
|
||||
#. module: procurement
|
||||
#: constraint:stock.move:0
|
||||
msgid "You try to assign a lot which is not from the same product"
|
||||
msgstr "Erä ei ole samaa tuotetta"
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,active:0
|
||||
msgid "Active"
|
||||
msgstr "Aktiivinen"
|
||||
|
||||
#. module: procurement
|
||||
#: model:process.node,name:procurement.process_node_procureproducts0
|
||||
msgid "Procure Products"
|
||||
msgstr "Hanki tuotteita"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,date_planned:0
|
||||
msgid "Scheduled date"
|
||||
msgstr "Arvioitu päivämäärä"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Exception"
|
||||
msgstr "Poikkeus"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/schedulers.py:179
|
||||
#, python-format
|
||||
msgid "Automatic OP: %s"
|
||||
msgstr "Automaattinen tilauspiste: %s"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_procurement_orderpoint_compute
|
||||
msgid "Automatic Order Point"
|
||||
msgstr "Automaattinen tilauspiste"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_stock_warehouse_orderpoint
|
||||
msgid "Minimum Inventory Rule"
|
||||
msgstr "Minimivarastosääntö"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "Yritykset"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Extra Information"
|
||||
msgstr "Lisätiedot"
|
||||
|
||||
#. module: procurement
|
||||
#: help:procurement.order,name:0
|
||||
msgid "Procurement name."
|
||||
msgstr "Hankinnan nimi"
|
||||
|
||||
#. module: procurement
|
||||
#: constraint:stock.move:0
|
||||
msgid "You must assign a production lot for this product"
|
||||
msgstr "Tälle tuotteelle pitää määrittää valmistuserä"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Procurement Reason"
|
||||
msgstr "Hankinnan syy"
|
||||
|
||||
#. module: procurement
|
||||
#: sql_constraint:stock.warehouse.orderpoint:0
|
||||
msgid "Qty Multiple must be greater than zero."
|
||||
msgstr "Määrän kertoimen tulee olla yli 0"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:stock.warehouse.orderpoint,logic:0
|
||||
msgid "Order to Max"
|
||||
msgstr "Tilaa maksimiin"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,date_close:0
|
||||
msgid "Date Closed"
|
||||
msgstr "Sulkemispäivä"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:372
|
||||
#, python-format
|
||||
msgid "Procurement '%s' is in exception: not enough stock."
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:138
|
||||
#, python-format
|
||||
msgid "Cannot delete Procurement Order(s) which are in %s State!"
|
||||
msgstr "Ei voi poistaa hankintatilauksia jotka ovat tilassa %s !"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:324
|
||||
#, python-format
|
||||
msgid "Data Insufficient !"
|
||||
msgstr "Riittämätön data!"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_mrp_property_group
|
||||
#: field:mrp.property,group_id:0
|
||||
#: field:mrp.property.group,name:0
|
||||
msgid "Property Group"
|
||||
msgstr "Ominaisuusryhmä"
|
||||
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Misc"
|
||||
msgstr "Sekalaiset"
|
||||
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Locations"
|
||||
msgstr "Sijainnit"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,procure_method:0
|
||||
msgid "from stock"
|
||||
msgstr "varastosta"
|
||||
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "General Information"
|
||||
msgstr "Yleiset tiedot"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Run Procurement"
|
||||
msgstr "Suorita hankinta"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Done"
|
||||
msgstr "Valmis"
|
||||
|
||||
#. module: procurement
|
||||
#: help:stock.warehouse.orderpoint,qty_multiple:0
|
||||
msgid "The procurement quantity will by rounded up to this multiple."
|
||||
msgstr "Hankinnan määrä pyöristetään ylös tähän moninkertaan."
|
||||
|
||||
#. module: procurement
|
||||
#: view:make.procurement:0
|
||||
#: view:procurement.order:0
|
||||
#: selection:procurement.order,state:0
|
||||
#: view:procurement.order.compute:0
|
||||
#: view:procurement.order.compute.all:0
|
||||
#: view:procurement.orderpoint.compute:0
|
||||
msgid "Cancel"
|
||||
msgstr "Peruuta"
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,logic:0
|
||||
msgid "Reordering Mode"
|
||||
msgstr "Uusintatilauksen tapa"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,origin:0
|
||||
msgid "Source Document"
|
||||
msgstr "Lähdedokumentti"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,priority:0
|
||||
msgid "Not urgent"
|
||||
msgstr "Ei kiireellinen"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.model,name:procurement.model_procurement_order_compute_all
|
||||
msgid "Compute all schedulers"
|
||||
msgstr "Laske kaikki ajastimet"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Current"
|
||||
msgstr "Nykyinen"
|
||||
|
||||
#. module: procurement
|
||||
#: view:board.board:0
|
||||
msgid "Procurements in Exception"
|
||||
msgstr "Poikkeavat hankinnat"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Details"
|
||||
msgstr "Yksityiskohdat"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,name:procurement.procurement_action5
|
||||
#: model:ir.actions.act_window,name:procurement.procurement_action_board
|
||||
#: model:ir.actions.act_window,name:procurement.procurement_exceptions
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_procurement_action
|
||||
msgid "Procurement Exceptions"
|
||||
msgstr "Hankinnan poikkeamat"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,name:procurement.act_procurement_2_stock_warehouse_orderpoint
|
||||
#: model:ir.actions.act_window,name:procurement.act_product_product_2_stock_warehouse_orderpoint
|
||||
#: model:ir.actions.act_window,name:procurement.act_stock_warehouse_2_stock_warehouse_orderpoint
|
||||
#: model:ir.actions.act_window,name:procurement.action_orderpoint_form
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_order_points
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Minimum Stock Rules"
|
||||
msgstr "Varaston minimirajat"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,close_move:0
|
||||
msgid "Close Move at end"
|
||||
msgstr "Sulje siirto lopussa"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Scheduled Date"
|
||||
msgstr "Suunniteltu päivämäärä"
|
||||
|
||||
#. module: procurement
|
||||
#: field:make.procurement,product_id:0
|
||||
#: view:procurement.order:0
|
||||
#: field:procurement.order,product_id:0
|
||||
#: field:stock.warehouse.orderpoint,product_id:0
|
||||
msgid "Product"
|
||||
msgstr "Tuote"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Temporary"
|
||||
msgstr "Väliaikainen"
|
||||
|
||||
#. module: procurement
|
||||
#: field:mrp.property,description:0
|
||||
#: field:mrp.property.group,description:0
|
||||
msgid "Description"
|
||||
msgstr "Kuvaus"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:mrp.property,composition:0
|
||||
msgid "min"
|
||||
msgstr "minimi"
|
||||
|
||||
#. module: procurement
|
||||
#: view:stock.warehouse.orderpoint:0
|
||||
msgid "Quantity Rules"
|
||||
msgstr "Määräsäännöt"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Running"
|
||||
msgstr "Käynnissä olevat"
|
||||
|
||||
#. module: procurement
|
||||
#: field:stock.warehouse.orderpoint,product_uom:0
|
||||
msgid "Product UOM"
|
||||
msgstr "Tuotteen mittayksikkö"
|
||||
|
||||
#. module: procurement
|
||||
#: model:process.node,name:procurement.process_node_serviceonorder0
|
||||
msgid "Make to Order"
|
||||
msgstr "Valmista tilaukselle"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "UOM"
|
||||
msgstr "Mittayksikkö"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,state:0
|
||||
msgid "Waiting"
|
||||
msgstr "Odotetaan"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,help:procurement.action_orderpoint_form
|
||||
msgid ""
|
||||
"You can define your minimum stock rules, so that OpenERP will automatically "
|
||||
"create draft manufacturing orders or purchase quotations according to the "
|
||||
"stock level. Once the virtual stock of a product (= stock on hand minus all "
|
||||
"confirmed orders and reservations) is below the minimum quantity, OpenERP "
|
||||
"will generate a procurement request to increase the stock up to the maximum "
|
||||
"quantity."
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,move_id:0
|
||||
msgid "Reservation"
|
||||
msgstr "Varaus"
|
||||
|
||||
#. module: procurement
|
||||
#: model:process.node,note:procurement.process_node_procureproducts0
|
||||
msgid "The way to procurement depends on the product type."
|
||||
msgstr "Hankintatapa riippuu tuotteen tyypistä"
|
||||
|
||||
#. module: procurement
|
||||
#: view:make.procurement:0
|
||||
msgid ""
|
||||
"This wizard will plan the procurement for this product. This procurement may "
|
||||
"generate task, production orders or purchase orders."
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: view:res.company:0
|
||||
msgid "MRP & Logistics Scheduler"
|
||||
msgstr "MRP ja logistiikka ajastin"
|
||||
|
||||
#. module: procurement
|
||||
#: field:mrp.property,name:0
|
||||
#: field:stock.warehouse.orderpoint,name:0
|
||||
msgid "Name"
|
||||
msgstr "Nimi"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:mrp.property,composition:0
|
||||
msgid "max"
|
||||
msgstr "maksimi"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,product_uos:0
|
||||
msgid "Product UoS"
|
||||
msgstr "Tuotteen myyntiyksikkö"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/procurement.py:353
|
||||
#, python-format
|
||||
msgid "from stock: products assigned."
|
||||
msgstr "varastosta: tuotteet määrätty."
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,name:procurement.action_compute_schedulers
|
||||
#: model:ir.ui.menu,name:procurement.menu_stock_proc_schedulers
|
||||
#: view:procurement.order.compute.all:0
|
||||
msgid "Compute Schedulers"
|
||||
msgstr "Laske ajastimet"
|
||||
|
||||
#. module: procurement
|
||||
#: model:ir.actions.act_window,help:procurement.procurement_exceptions
|
||||
msgid ""
|
||||
"Procurement Orders represent the need for a certain quantity of products, at "
|
||||
"a given time, in a given location. Sales Orders are one typical source of "
|
||||
"Procurement Orders (but these are distinct documents). Depending on the "
|
||||
"procurement parameters and the product configuration, the procurement engine "
|
||||
"will attempt to satisfy the need by reserving products from stock, ordering "
|
||||
"products from a supplier, or passing a manufacturing order, etc. A "
|
||||
"Procurement Exception occurs when the system cannot find a way to fulfill a "
|
||||
"procurement. Some exceptions will resolve themselves automatically, but "
|
||||
"others require manual intervention (those are identified by a specific error "
|
||||
"message)."
|
||||
msgstr ""
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.order,product_uom:0
|
||||
msgid "Product UoM"
|
||||
msgstr "Tuotteen mittayksikkö"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Search Procurement"
|
||||
msgstr "Hae hankinnoista"
|
||||
|
||||
#. module: procurement
|
||||
#: help:res.company,schedule_range:0
|
||||
msgid ""
|
||||
"This is the time frame analysed by the scheduler when computing "
|
||||
"procurements. All procurements that are not between today and today+range "
|
||||
"are skipped for future computation."
|
||||
msgstr ""
|
||||
"Aikaikkuna jonka ajastin analysoi hankintojen laskennassa. Kaikki hankinnat "
|
||||
"jotka eivät ole jakson tänään ja tänään+jakso sisällä ohitetaan tulevia "
|
||||
"laskentoja varten"
|
||||
|
||||
#. module: procurement
|
||||
#: selection:procurement.order,priority:0
|
||||
msgid "Very Urgent"
|
||||
msgstr "Erittäin kiireellinen"
|
||||
|
||||
#. module: procurement
|
||||
#: field:procurement.orderpoint.compute,automatic:0
|
||||
msgid "Automatic Orderpoint"
|
||||
msgstr "Automaattinen tilauspiste"
|
||||
|
||||
#. module: procurement
|
||||
#: view:procurement.order:0
|
||||
msgid "Procurement Details"
|
||||
msgstr "Hankinnan yksityiskohdat"
|
||||
|
||||
#. module: procurement
|
||||
#: code:addons/procurement/schedulers.py:180
|
||||
#, python-format
|
||||
msgid "SCHEDULER"
|
||||
msgstr "AJASTIN"
|
||||
@@ -0,0 +1,87 @@
|
||||
# Finnish 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-06-20 10:09+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2011-06-21 04:36+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: model:ir.module.module,description:product_manufacturer.module_meta_information
|
||||
msgid "A module that add manufacturers and attributes on the product form"
|
||||
msgstr "Moduuli jo lisää valmistajia ja attribuutteja tuotelomakkeelle"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: field:product.product,manufacturer_pref:0
|
||||
msgid "Manufacturer Product Code"
|
||||
msgstr "Valmistajan tuotekoodi"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: model:ir.model,name:product_manufacturer.model_product_product
|
||||
#: field:product.manufacturer.attribute,product_id:0
|
||||
msgid "Product"
|
||||
msgstr "Tuote"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: view:product.manufacturer.attribute:0
|
||||
msgid "Product Template Name"
|
||||
msgstr "Tuotemallipohjan nimi"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: model:ir.model,name:product_manufacturer.model_product_manufacturer_attribute
|
||||
msgid "Product attributes"
|
||||
msgstr "Tuotteen attribuutit"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: view:product.manufacturer.attribute:0
|
||||
#: view:product.product:0
|
||||
msgid "Product Attributes"
|
||||
msgstr "Tuotteen attribuutit"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: field:product.manufacturer.attribute,name:0
|
||||
msgid "Attribute"
|
||||
msgstr "Attribuutti"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: field:product.manufacturer.attribute,value:0
|
||||
msgid "Value"
|
||||
msgstr "Arvo"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: constraint:product.product:0
|
||||
msgid "Error: Invalid ean code"
|
||||
msgstr "Virhe: Väärä EAN-koodi"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: view:product.product:0
|
||||
#: field:product.product,attribute_ids:0
|
||||
msgid "Attributes"
|
||||
msgstr "Attribuutit"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: model:ir.module.module,shortdesc:product_manufacturer.module_meta_information
|
||||
msgid "Products Attributes & Manufacturers"
|
||||
msgstr "Tuotteen attribuutit ja valmistajat"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: field:product.product,manufacturer_pname:0
|
||||
msgid "Manufacturer Product Name"
|
||||
msgstr "Valmistajan tuotenimi"
|
||||
|
||||
#. module: product_manufacturer
|
||||
#: view:product.product:0
|
||||
#: field:product.product,manufacturer:0
|
||||
msgid "Manufacturer"
|
||||
msgstr "Valmistaja"
|
||||
+28
-20
@@ -433,7 +433,7 @@ class task(osv.osv):
|
||||
'date_start': fields.datetime('Starting Date',select=True),
|
||||
'date_end': fields.datetime('Ending Date',select=True),
|
||||
'date_deadline': fields.date('Deadline',select=True),
|
||||
'project_id': fields.many2one('project.project', 'Project', ondelete='set null'),
|
||||
'project_id': fields.many2one('project.project', 'Project', ondelete='set null', select="1"),
|
||||
'parent_ids': fields.many2many('project.task', 'project_task_parent_rel', 'task_id', 'parent_id', 'Parent Tasks'),
|
||||
'child_ids': fields.many2many('project.task', 'project_task_parent_rel', 'parent_id', 'task_id', 'Delegated Tasks'),
|
||||
'notes': fields.text('Notes'),
|
||||
@@ -714,27 +714,35 @@ class task(osv.osv):
|
||||
self.log(cr, uid, id, message)
|
||||
return True
|
||||
|
||||
def next_type(self, cr, uid, ids, *args):
|
||||
def _change_type(self, cr, uid, ids, next, *args):
|
||||
"""
|
||||
go to the next stage
|
||||
if next is False, go to previous stage
|
||||
"""
|
||||
for task in self.browse(cr, uid, ids):
|
||||
typeid = task.type_id.id
|
||||
types = map(lambda x:x.id, task.project_id.type_ids or [])
|
||||
if types:
|
||||
if task.project_id.type_ids:
|
||||
typeid = task.type_id.id
|
||||
types_seq={}
|
||||
for type in task.project_id.type_ids :
|
||||
types_seq[type.id] = type.sequence
|
||||
if next:
|
||||
types = sorted(types_seq.items(), lambda x, y: cmp(x[1], y[1]))
|
||||
else:
|
||||
types = sorted(types_seq.items(), lambda x, y: cmp(y[1], x[1]))
|
||||
sorted_types = [x[0] for x in types]
|
||||
if not typeid:
|
||||
self.write(cr, uid, task.id, {'type_id': types[0]})
|
||||
elif typeid and typeid in types and types.index(typeid) != len(types)-1:
|
||||
index = types.index(typeid)
|
||||
self.write(cr, uid, task.id, {'type_id': types[index+1]})
|
||||
self.write(cr, uid, task.id, {'type_id': sorted_types[0]})
|
||||
elif typeid and typeid in sorted_types and sorted_types.index(typeid) != len(sorted_types)-1:
|
||||
index = sorted_types.index(typeid)
|
||||
self.write(cr, uid, task.id, {'type_id': sorted_types[index+1]})
|
||||
return True
|
||||
|
||||
def next_type(self, cr, uid, ids, *args):
|
||||
return self._change_type(cr, uid, ids, True, *args)
|
||||
|
||||
def prev_type(self, cr, uid, ids, *args):
|
||||
for task in self.browse(cr, uid, ids):
|
||||
typeid = task.type_id.id
|
||||
types = map(lambda x:x.id, task.project_id and task.project_id.type_ids or [])
|
||||
if types:
|
||||
if typeid and typeid in types:
|
||||
index = types.index(typeid)
|
||||
self.write(cr, uid, task.id, {'type_id': index and types[index-1] or False})
|
||||
return True
|
||||
return self._change_type(cr, uid, ids, False, *args)
|
||||
|
||||
|
||||
task()
|
||||
|
||||
@@ -743,10 +751,10 @@ class project_work(osv.osv):
|
||||
_description = "Project Task Work"
|
||||
_columns = {
|
||||
'name': fields.char('Work summary', size=128),
|
||||
'date': fields.datetime('Date'),
|
||||
'task_id': fields.many2one('project.task', 'Task', ondelete='cascade', required=True),
|
||||
'date': fields.datetime('Date', select="1"),
|
||||
'task_id': fields.many2one('project.task', 'Task', ondelete='cascade', required=True, select="1"),
|
||||
'hours': fields.float('Time Spent'),
|
||||
'user_id': fields.many2one('res.users', 'Done by', required=True),
|
||||
'user_id': fields.many2one('res.users', 'Done by', required=True, select="1"),
|
||||
'company_id': fields.related('task_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
# Russian 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-06-10 17:23+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Russian <ru@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-06-11 04:57+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: project_issue_sheet
|
||||
#: model:ir.module.module,description:project_issue_sheet.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" This module adds the Timesheet support for the "
|
||||
"Issues/Bugs Management in Project\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Этот модуль добавляет поддержку табелей для управления "
|
||||
"проблемами и ошибками в проекте\n"
|
||||
" "
|
||||
|
||||
#. module: project_issue_sheet
|
||||
#: model:ir.model,name:project_issue_sheet.model_account_analytic_line
|
||||
msgid "Analytic Line"
|
||||
msgstr "Позиция аналитики"
|
||||
|
||||
#. module: project_issue_sheet
|
||||
#: model:ir.model,name:project_issue_sheet.model_project_issue
|
||||
msgid "Project Issue"
|
||||
msgstr "Проблема проекта"
|
||||
|
||||
#. module: project_issue_sheet
|
||||
#: model:ir.model,name:project_issue_sheet.model_hr_analytic_timesheet
|
||||
msgid "Timesheet Line"
|
||||
msgstr "Строка табеля"
|
||||
|
||||
#. module: project_issue_sheet
|
||||
#: view:project.issue:0
|
||||
msgid "Timesheet"
|
||||
msgstr "Табель"
|
||||
|
||||
#. module: project_issue_sheet
|
||||
#: field:project.issue,analytic_account_id:0
|
||||
msgid "Analytic Account"
|
||||
msgstr "Счет аналитики"
|
||||
|
||||
#. module: project_issue_sheet
|
||||
#: view:project.issue:0
|
||||
msgid "Worklogs"
|
||||
msgstr "Журналы работы"
|
||||
|
||||
#. module: project_issue_sheet
|
||||
#: field:account.analytic.line,create_date:0
|
||||
msgid "Create Date"
|
||||
msgstr "Дата создания"
|
||||
|
||||
#. module: project_issue_sheet
|
||||
#: field:project.issue,timesheet_ids:0
|
||||
msgid "Timesheets"
|
||||
msgstr "Табели"
|
||||
|
||||
#. module: project_issue_sheet
|
||||
#: model:ir.module.module,shortdesc:project_issue_sheet.module_meta_information
|
||||
msgid "Add the Timesheet support for Issue Management in Project Management"
|
||||
msgstr ""
|
||||
"Добавляет поддержку табелей для управления проблемами в рамках управления "
|
||||
"проектом."
|
||||
|
||||
#. module: project_issue_sheet
|
||||
#: field:hr.analytic.timesheet,issue_id:0
|
||||
msgid "Issue"
|
||||
msgstr "Проблема"
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 16:00+0000\n"
|
||||
"Last-Translator: Genie-soft <rawan@genie-soft.com>\n"
|
||||
"PO-Revision-Date: 2011-06-18 11:28+0000\n"
|
||||
"Last-Translator: kifcaliph <kifcaliph@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: 2011-04-29 04:53+0000\n"
|
||||
"X-Generator: Launchpad (build 12758)\n"
|
||||
"X-Launchpad-Export-Date: 2011-06-19 04:36+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: project_scrum
|
||||
#: help:project.scrum.email,scrum_master_email:0
|
||||
@@ -29,12 +29,12 @@ msgstr ""
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.meeting,name:0
|
||||
msgid "Meeting Name"
|
||||
msgstr ""
|
||||
msgstr "اسم الإجتماع"
|
||||
|
||||
#. module: project_scrum
|
||||
#: model:process.transition,note:project_scrum.process_transition_backlogtask0
|
||||
msgid "From backlog create task."
|
||||
msgstr ""
|
||||
msgstr "إنشاء مهمة من السجل التراكمي."
|
||||
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.product.backlog:0
|
||||
@@ -94,17 +94,17 @@ msgstr ""
|
||||
#. module: project_scrum
|
||||
#: model:process.node,note:project_scrum.process_node_productbacklog0
|
||||
msgid "Create task from backlogs"
|
||||
msgstr ""
|
||||
msgstr "إنشاء مهمة من السجل التراكمي."
|
||||
|
||||
#. module: project_scrum
|
||||
#: model:ir.module.module,shortdesc:project_scrum.module_meta_information
|
||||
msgid "Scrum, Agile Development Method"
|
||||
msgstr ""
|
||||
msgstr "إدارة التطوير بطريقة الـ سكرم (Scrum) أو الـ آجيل (Agile)"
|
||||
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.product.backlog,progress:0
|
||||
msgid "Progress"
|
||||
msgstr ""
|
||||
msgstr "مستوي التقدم"
|
||||
|
||||
#. module: project_scrum
|
||||
#: field:project.scrum.meeting,user_id:0
|
||||
@@ -128,12 +128,12 @@ msgstr ""
|
||||
#: view:project.scrum.meeting:0
|
||||
#: view:project.scrum.sprint:0
|
||||
msgid "Are your Sprint Backlog estimate accurate ?"
|
||||
msgstr ""
|
||||
msgstr "هل تقديراتك دقيقة لسجل العدوات السريعة؟"
|
||||
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.sprint:0
|
||||
msgid "Retrospective"
|
||||
msgstr ""
|
||||
msgstr "أثر رجعي"
|
||||
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.meeting:0
|
||||
@@ -148,7 +148,7 @@ msgstr ""
|
||||
#. module: project_scrum
|
||||
#: model:ir.actions.act_window,name:project_scrum.dblc_proj
|
||||
msgid "View project's backlog"
|
||||
msgstr ""
|
||||
msgstr "عرض السجل التراكمي للمشروع"
|
||||
|
||||
#. module: project_scrum
|
||||
#: view:project.scrum.product.backlog:0
|
||||
@@ -248,7 +248,7 @@ msgstr ""
|
||||
#: field:project.task,product_backlog_id:0
|
||||
#, python-format
|
||||
msgid "Product Backlog"
|
||||
msgstr ""
|
||||
msgstr "سجل تراكمي للمنتج"
|
||||
|
||||
#. module: project_scrum
|
||||
#: model:ir.model,name:project_scrum.model_project_project
|
||||
|
||||
@@ -317,12 +317,11 @@ class project_scrum_meeting(osv.osv):
|
||||
return True
|
||||
|
||||
def email_send(self, cr, uid, ids, email, context=None):
|
||||
email_from = tools.config.get('email_from', False)
|
||||
meeting_id = self.browse(cr, uid, ids, context=context)[0]
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
user_email = email_from or user.address_id.email or email_from
|
||||
user_email = user.user_email or tools.config.get('email_from', False)
|
||||
body = _("Hello %s,\n \nI am sending you Daily Meeting Details of date %s for the Sprint %s\n") %(meeting_id.sprint_id.scrum_master_id.name, meeting_id.date, meeting_id.sprint_id.name)
|
||||
body += _('\n*Tasks since yesterday:\n_______________________%s\n*Task for Today:\n_______________________ %s\n\n*Blocks encountered:\n_______________________ %s') %(meeting_id.question_yesterday,meeting_id.question_today, meeting_id.question_blocks or _('No Blocks'))
|
||||
body += _('\n* Tasks since yesterday:\n_______________________\n%s\n\n* Task for Today:\n_______________________ \n%s\n\n* Blocks encountered:\n_______________________ \n\n%s') %(meeting_id.question_yesterday,meeting_id.question_today, meeting_id.question_blocks or _('No Blocks'))
|
||||
body += _("\n\nThank you,\n%s") % user.name
|
||||
sub_name = meeting_id.name or _('Scrum Meeting of %s') % meeting_id.date
|
||||
flag = tools.email_send(user_email , [email], sub_name, body, reply_to=None, openobject_id=str(meeting_id.id))
|
||||
|
||||
@@ -214,9 +214,9 @@
|
||||
<separator string="Purchase Control" colspan="4"/>
|
||||
<field name="validator"/>
|
||||
<field name="date_approve"/>
|
||||
<separator string="Invoices" colspan="4"/>
|
||||
<newline/>
|
||||
<field name="invoice_ids" groups="base.group_extended" nolabel="1" colspan="4" context="{'type':'in_invoice', 'journal_type':'purchase'}"/>
|
||||
<separator string="Invoices" colspan="4"/>
|
||||
<newline/>
|
||||
<field name="invoice_ids" groups="base.group_extended" nolabel="1" colspan="4" context="{'type':'in_invoice', 'journal_type':'purchase'}"/>
|
||||
</page>
|
||||
<page string="Notes">
|
||||
<field colspan="4" name="notes" nolabel="1"/>
|
||||
@@ -316,8 +316,8 @@
|
||||
<form string="Purchase Order Line">
|
||||
<notebook colspan="4">
|
||||
<page string="Order Line">
|
||||
<field name="product_id" colspan="4" context="partner_id=parent.partner_id,quantity=product_qty,pricelist=parent.pricelist_id,uom=product_uom,warehouse=parent.warehouse_id" on_change="product_id_change(parent.pricelist_id,product_id,product_qty,product_uom,parent.partner_id, parent.date_order,parent.fiscal_position,date_planned,name,price_unit,notes)"/>
|
||||
<field name="product_qty" context="partner_id=parent.partner_id,quantity=product_qty,pricelist=parent.pricelist_id,uom=product_uom,warehouse=parent.warehouse_id" on_change="product_id_change(parent.pricelist_id,product_id,product_qty,product_uom,parent.partner_id,parent.date_order,parent.fiscal_position,date_planned,name,price_unit,notes)"/>
|
||||
<field name="product_id" colspan="4" context="{'partner_id':parent.partner_id, 'quantity':product_qty, 'pricelist':parent.pricelist_id, 'uom':product_uom, 'warehouse':parent.warehouse_id}" on_change="product_id_change(parent.pricelist_id,product_id,product_qty,product_uom,parent.partner_id, parent.date_order,parent.fiscal_position,date_planned,name,price_unit,notes)"/>
|
||||
<field name="product_qty" context="{'partner_id':parent.partner_id, 'quantity':product_qty, 'pricelist':parent.pricelist_id, 'uom':product_uom, 'warehouse':parent.warehouse_id}" on_change="product_id_change(parent.pricelist_id,product_id,product_qty,product_uom,parent.partner_id,parent.date_order,parent.fiscal_position,date_planned,name,price_unit,notes)"/>
|
||||
<field name="product_uom" on_change="product_uom_change(parent.pricelist_id,product_id,product_qty,product_uom,parent.partner_id, parent.date_order,parent.fiscal_position,date_planned,name,price_unit,notes)"/>
|
||||
<field colspan="4" name="name"/>
|
||||
<field name="date_planned" widget="date"/>
|
||||
|
||||
@@ -0,0 +1,418 @@
|
||||
# Finnish 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-06-20 09:53+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2011-06-21 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "In Progress"
|
||||
msgstr "Käynnissä"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:44
|
||||
#, python-format
|
||||
msgid "No Product in Tender"
|
||||
msgstr "Ei tarjottua tuotetta"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Confirm"
|
||||
msgstr "Vahvista"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: field:purchase.requisition,user_id:0
|
||||
msgid "Responsible"
|
||||
msgstr "Vastuuhenkilö"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Group By..."
|
||||
msgstr "Ryhmittely.."
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: field:purchase.requisition,state:0
|
||||
msgid "State"
|
||||
msgstr "Tila"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "Draft"
|
||||
msgstr "Luonnos"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Supplier"
|
||||
msgstr "Toimittaja"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,exclusive:0
|
||||
msgid "Requisition Type"
|
||||
msgstr "Pyynnön tyyppi"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Product Detail"
|
||||
msgstr "Tuotteen yksityiskohdat"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
#: field:purchase.requisition,date_start:0
|
||||
msgid "Requisition Date"
|
||||
msgstr "Pyynnön päivä"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition_partner
|
||||
#: model:ir.actions.report.xml,name:purchase_requisition.report_purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_purchase_requisition
|
||||
#: field:product.product,purchase_requisition:0
|
||||
#: field:purchase.order,requisition_id:0
|
||||
#: view:purchase.requisition:0
|
||||
#: field:purchase.requisition.line,requisition_id:0
|
||||
#: view:purchase.requisition.partner:0
|
||||
msgid "Purchase Requisition"
|
||||
msgstr "Ostotilaus pyyntö"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_purchase_requisition_line
|
||||
msgid "Purchase Requisition Line"
|
||||
msgstr "Ostotilauspyynnön rivi"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_product_product
|
||||
#: field:purchase.requisition.line,product_id:0
|
||||
msgid "Product"
|
||||
msgstr "Tuote"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: sql_constraint:purchase.order:0
|
||||
msgid "Order Reference must be unique !"
|
||||
msgstr "Tilauksen viite tulee olla yksilöllinen!"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
#: field:purchase.requisition,description:0
|
||||
msgid "Description"
|
||||
msgstr "Kuvaus"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: help:product.product,purchase_requisition:0
|
||||
msgid ""
|
||||
"Check this box so that requisitions generates purchase requisitions instead "
|
||||
"of directly requests for quotations."
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Type"
|
||||
msgstr "Tyyppi"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,company_id:0
|
||||
#: field:purchase.requisition.line,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Yritys"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Request a Quotation"
|
||||
msgstr "Pyydä tarjousta"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: selection:purchase.requisition,exclusive:0
|
||||
msgid "Multiple Requisitions"
|
||||
msgstr "Useita pyyntöjä"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Approved by Supplier"
|
||||
msgstr "Toimittajan vahvistama"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Reset to Draft"
|
||||
msgstr "Palauta luonnokseksi"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.module.module,description:purchase_requisition.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" This module allows you to manage your Purchase Requisition.\n"
|
||||
" When a purchase order is created, you now have the opportunity to save "
|
||||
"the related requisition.\n"
|
||||
" This new object will regroup and will allow you to easily keep track and "
|
||||
"order all your purchase orders.\n"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition.partner,partner_address_id:0
|
||||
msgid "Address"
|
||||
msgstr "Osoite"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Order Reference"
|
||||
msgstr "Tilauksen viite"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Start Date"
|
||||
msgstr "Alkupäivä"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,help:purchase_requisition.action_purchase_requisition
|
||||
msgid ""
|
||||
"A purchase requisition is the step before a request for quotation. In a "
|
||||
"purchase requisition (or purchase tender), you can record the products you "
|
||||
"need to buy and trigger the creation of RfQs to suppliers. After the "
|
||||
"negotiation, once you have reviewed all the supplier's offers, you can "
|
||||
"validate some and cancel others."
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition.line,product_qty:0
|
||||
msgid "Quantity"
|
||||
msgstr "Määrä"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition
|
||||
#: model:ir.ui.menu,name:purchase_requisition.menu_purchase_requisition_pro_mgt
|
||||
msgid "Purchase Requisitions"
|
||||
msgstr "Hankintapyynnöt"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "End Date"
|
||||
msgstr "Loppupvm"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
#: field:purchase.requisition,name:0
|
||||
msgid "Requisition Reference"
|
||||
msgstr "Pyynnön viite"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,line_ids:0
|
||||
msgid "Products to Purchase"
|
||||
msgstr "Ostettavat tuotteet"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,date_end:0
|
||||
msgid "Requisition Deadline"
|
||||
msgstr "Pyynnön takaraja (päivä)"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Search Purchase Requisition"
|
||||
msgstr "Hae ostotilausehdotusta"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Notes"
|
||||
msgstr "Huomautukset"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Date Ordered"
|
||||
msgstr "Tilauspäivämäärä"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: help:purchase.requisition,exclusive:0
|
||||
msgid ""
|
||||
"Purchase Requisition (exclusive): On the confirmation of a purchase order, "
|
||||
"it cancels the remaining purchase order.\n"
|
||||
"Purchase Requisition(Multiple): It allows to have multiple purchase "
|
||||
"orders.On confirmation of a purchase order it does not cancel the remaining "
|
||||
"orders"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Cancel Purchase Order"
|
||||
msgstr "Peru ostotilaus"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_purchase_order
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Purchase Order"
|
||||
msgstr "Ostotilaus"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:44
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "Virhe!"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
#: field:purchase.requisition.line,product_uom_id:0
|
||||
msgid "Product UoM"
|
||||
msgstr "Tuotteen mittayksikkö"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Products"
|
||||
msgstr "Tuotteet"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Order Date"
|
||||
msgstr "Tilauksen päivämäärä"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr "Peruttu"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "["
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_purchase_requisition_partner
|
||||
msgid "Purchase Requisition Partner"
|
||||
msgstr "Ostotilauspyynnön kumppani"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "]"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Quotation Detail"
|
||||
msgstr "Tarjouspyynnön yksityiskohdat"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Purchase for Requisitions"
|
||||
msgstr "Osta pyynnöille"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,name:purchase_requisition.act_res_partner_2_purchase_order
|
||||
msgid "Purchase orders"
|
||||
msgstr "Ostotilaukset"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
#: view:purchase.requisition:0
|
||||
#: field:purchase.requisition,origin:0
|
||||
msgid "Origin"
|
||||
msgstr "Lähde"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Reference"
|
||||
msgstr "Viite"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_procurement_order
|
||||
msgid "Procurement"
|
||||
msgstr "Hankinta"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,warehouse_id:0
|
||||
msgid "Warehouse"
|
||||
msgstr "Varasto"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:procurement.order,requisition_id:0
|
||||
msgid "Latest Requisition"
|
||||
msgstr "Viimeisin pyyntö"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Quotations"
|
||||
msgstr "Tarjoukset"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
msgid "Qty"
|
||||
msgstr "Määrä"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: selection:purchase.requisition,exclusive:0
|
||||
msgid "Purchase Requisition (exclusive)"
|
||||
msgstr "Ostotilauspyyntö (poissulkeva)"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition.partner:0
|
||||
msgid "Create Quotation"
|
||||
msgstr "Luo tarjous"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: constraint:product.product:0
|
||||
msgid "Error: Invalid ean code"
|
||||
msgstr "Virhe: Väärä EAN-koodi"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "Done"
|
||||
msgstr "Valmis"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition.partner:0
|
||||
msgid "_Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Confirm Purchase Order"
|
||||
msgstr "Vahvista ostotilaus"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Cancel"
|
||||
msgstr "Peruuta"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition.partner,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr "Kumppani"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.module.module,shortdesc:purchase_requisition.module_meta_information
|
||||
msgid "Purchase - Purchase Requisition"
|
||||
msgstr "Osto - hankintapyyntö"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Unassigned"
|
||||
msgstr "Liittämätön"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.order:0
|
||||
msgid "Requisition"
|
||||
msgstr "Pyyntö"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,purchase_ids:0
|
||||
msgid "Purchase Orders"
|
||||
msgstr "Ostotilaukset"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:90
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You have already one %s purchase order for this partner, you must cancel "
|
||||
"this purchase order to create a new quotation."
|
||||
msgstr ""
|
||||
@@ -0,0 +1,100 @@
|
||||
# Finnish 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-06-14 09:45+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2011-06-15 04:40+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: report_designer
|
||||
#: model:ir.actions.act_window,name:report_designer.action_report_designer_installer
|
||||
#: view:report_designer.installer:0
|
||||
msgid "Reporting Tools Configuration"
|
||||
msgstr "Raporttityökalujen konfiguraatio"
|
||||
|
||||
#. module: report_designer
|
||||
#: field:report_designer.installer,base_report_creator:0
|
||||
msgid "Query Builder"
|
||||
msgstr "Kyselyn rakentaja"
|
||||
|
||||
#. module: report_designer
|
||||
#: view:report_designer.installer:0
|
||||
msgid "Configure"
|
||||
msgstr "Konfiguroi"
|
||||
|
||||
#. module: report_designer
|
||||
#: view:report_designer.installer:0
|
||||
msgid "title"
|
||||
msgstr "otsikko"
|
||||
|
||||
#. module: report_designer
|
||||
#: model:ir.model,name:report_designer.model_report_designer_installer
|
||||
msgid "report_designer.installer"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_designer
|
||||
#: field:report_designer.installer,config_logo:0
|
||||
msgid "Image"
|
||||
msgstr "Kuva"
|
||||
|
||||
#. module: report_designer
|
||||
#: field:report_designer.installer,base_report_designer:0
|
||||
msgid "OpenOffice Report Designer"
|
||||
msgstr "OpenOffice raporttisuunnittelija"
|
||||
|
||||
#. module: report_designer
|
||||
#: model:ir.module.module,shortdesc:report_designer.module_meta_information
|
||||
msgid "Reporting Tools"
|
||||
msgstr "Raportointityökalut"
|
||||
|
||||
#. module: report_designer
|
||||
#: view:report_designer.installer:0
|
||||
msgid ""
|
||||
"OpenERP's built-in reporting abilities can be improved even further with "
|
||||
"some of the following applications"
|
||||
msgstr ""
|
||||
"OpenERP:in sisäänrakennettuja raportointimahdollisuuksia voidaan edelleen "
|
||||
"parantaa käyttämällä seuraavia ohjelmia"
|
||||
|
||||
#. module: report_designer
|
||||
#: view:report_designer.installer:0
|
||||
msgid "Configure Reporting Tools"
|
||||
msgstr "Konfiguroi raportointyökalut"
|
||||
|
||||
#. module: report_designer
|
||||
#: help:report_designer.installer,base_report_creator:0
|
||||
msgid ""
|
||||
"Allows you to create any statistic reports on several objects. It's a SQL "
|
||||
"query builder and browser for end users."
|
||||
msgstr ""
|
||||
|
||||
#. module: report_designer
|
||||
#: help:report_designer.installer,base_report_designer:0
|
||||
msgid ""
|
||||
"Adds wizards to Import/Export .SXW report which you can modify in "
|
||||
"OpenOffice.Once you have modified it you can upload the report using the "
|
||||
"same wizard."
|
||||
msgstr ""
|
||||
|
||||
#. module: report_designer
|
||||
#: model:ir.module.module,description:report_designer.module_meta_information
|
||||
msgid ""
|
||||
"Installer for reporting tools selection\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: report_designer
|
||||
#: field:report_designer.installer,progress:0
|
||||
msgid "Configuration Progress"
|
||||
msgstr "Konfiguraation eteneminen"
|
||||
@@ -0,0 +1,348 @@
|
||||
# Finnish 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-06-20 09:46+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2011-06-21 04:36+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: resource
|
||||
#: help:resource.calendar.leaves,resource_id:0
|
||||
msgid ""
|
||||
"If empty, this is a generic holiday for the company. If a resource is set, "
|
||||
"the holiday/leave is only for this resource"
|
||||
msgstr ""
|
||||
"Jos tyhjä, tämä on yrityksen yleinen loma-aika. Jos resurssi asetetaan, loma "
|
||||
"koskee vain sitä resurssia."
|
||||
|
||||
#. module: resource
|
||||
#: selection:resource.calendar.attendance,dayofweek:0
|
||||
msgid "Friday"
|
||||
msgstr "Perjantai"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.resource,resource_type:0
|
||||
msgid "Resource Type"
|
||||
msgstr "Resurssin tyyppi"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.model,name:resource.model_resource_calendar_leaves
|
||||
#: view:resource.calendar.leaves:0
|
||||
msgid "Leave Detail"
|
||||
msgstr "Jätä yksityiskohdat"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.actions.act_window,name:resource.resource_calendar_resources_leaves
|
||||
msgid "Resources Leaves"
|
||||
msgstr "Resurssin vapaat"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.actions.act_window,name:resource.action_resource_calendar_form
|
||||
#: view:resource.calendar:0
|
||||
#: field:resource.calendar,attendance_ids:0
|
||||
#: view:resource.calendar.attendance:0
|
||||
msgid "Working Time"
|
||||
msgstr "Työaika"
|
||||
|
||||
#. module: resource
|
||||
#: selection:resource.calendar.attendance,dayofweek:0
|
||||
msgid "Thursday"
|
||||
msgstr "Torstai"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.calendar.leaves:0
|
||||
#: view:resource.resource:0
|
||||
msgid "Group By..."
|
||||
msgstr "Ryhmittely.."
|
||||
|
||||
#. module: resource
|
||||
#: selection:resource.calendar.attendance,dayofweek:0
|
||||
msgid "Sunday"
|
||||
msgstr "Sunnuntai"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.resource:0
|
||||
msgid "Search Resource"
|
||||
msgstr "Hae resurssia"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.resource:0
|
||||
msgid "Type"
|
||||
msgstr "Tyyppi"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.actions.act_window,name:resource.action_resource_resource_tree
|
||||
#: view:resource.resource:0
|
||||
msgid "Resources"
|
||||
msgstr "Resurssit"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar,manager:0
|
||||
msgid "Workgroup manager"
|
||||
msgstr "Työryhmän johtaja"
|
||||
|
||||
#. module: resource
|
||||
#: help:resource.calendar.attendance,hour_from:0
|
||||
msgid "Working time will start from"
|
||||
msgstr "Työaika alkaa"
|
||||
|
||||
#. module: resource
|
||||
#: constraint:resource.calendar.leaves:0
|
||||
msgid "Error! leave start-date must be lower then leave end-date."
|
||||
msgstr "Virhe! loman alkupäivän tulee olla aikaisempi kuin loman loppupäivä"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.model,name:resource.model_resource_calendar
|
||||
msgid "Resource Calendar"
|
||||
msgstr "Resurssikalenteri"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar,company_id:0
|
||||
#: view:resource.calendar.leaves:0
|
||||
#: field:resource.calendar.leaves,company_id:0
|
||||
#: view:resource.resource:0
|
||||
#: field:resource.resource,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Yritys"
|
||||
|
||||
#. module: resource
|
||||
#: selection:resource.resource,resource_type:0
|
||||
msgid "Material"
|
||||
msgstr "Materiaali"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar.attendance,dayofweek:0
|
||||
msgid "Day of week"
|
||||
msgstr "Viikonpäivä"
|
||||
|
||||
#. module: resource
|
||||
#: help:resource.calendar.attendance,hour_to:0
|
||||
msgid "Working time will end at"
|
||||
msgstr "Työaika loppuu"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar.attendance,date_from:0
|
||||
msgid "Starting date"
|
||||
msgstr "Aloituspäivämäärä"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.calendar:0
|
||||
msgid "Search Working Time"
|
||||
msgstr "Hae työaikaa"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.calendar.leaves:0
|
||||
msgid "Reason"
|
||||
msgstr "Syy"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.resource:0
|
||||
#: field:resource.resource,user_id:0
|
||||
msgid "User"
|
||||
msgstr "Käyttäjä"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.calendar.leaves:0
|
||||
msgid "Date"
|
||||
msgstr "Päiväys"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.calendar.leaves:0
|
||||
msgid "Search Working Period Leaves"
|
||||
msgstr "Hae työjakson lomia"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar.leaves,date_to:0
|
||||
msgid "End Date"
|
||||
msgstr "Loppupvm"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.actions.act_window,name:resource.resource_calendar_closing_days
|
||||
msgid "Closing Days"
|
||||
msgstr "Sulkupäivät"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.module.module,shortdesc:resource.module_meta_information
|
||||
#: model:ir.ui.menu,name:resource.menu_resource_config
|
||||
#: view:resource.calendar.leaves:0
|
||||
#: field:resource.calendar.leaves,resource_id:0
|
||||
#: view:resource.resource:0
|
||||
msgid "Resource"
|
||||
msgstr "Resurssi"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.calendar:0
|
||||
#: field:resource.calendar,name:0
|
||||
#: field:resource.calendar.attendance,name:0
|
||||
#: field:resource.calendar.leaves,name:0
|
||||
#: field:resource.resource,name:0
|
||||
msgid "Name"
|
||||
msgstr "Nimi"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.module.module,description:resource.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" Module for resource management\n"
|
||||
" A resource represent something that can be scheduled\n"
|
||||
" (a developer on a task or a workcenter on manufacturing orders).\n"
|
||||
" This module manages a resource calendar associated to every resource.\n"
|
||||
" It also manages the leaves of every resource.\n"
|
||||
"\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: resource
|
||||
#: selection:resource.calendar.attendance,dayofweek:0
|
||||
msgid "Wednesday"
|
||||
msgstr "Keskiviikko"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.calendar.leaves:0
|
||||
#: view:resource.resource:0
|
||||
#: field:resource.resource,calendar_id:0
|
||||
msgid "Working Period"
|
||||
msgstr "Työjakso"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.model,name:resource.model_resource_resource
|
||||
msgid "Resource Detail"
|
||||
msgstr "Resurssin yksityiskohdat"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.resource,active:0
|
||||
msgid "Active"
|
||||
msgstr "Aktiivinen"
|
||||
|
||||
#. module: resource
|
||||
#: help:resource.resource,active:0
|
||||
msgid ""
|
||||
"If the active field is set to False, it will allow you to hide the resource "
|
||||
"record without removing it."
|
||||
msgstr ""
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar.attendance,calendar_id:0
|
||||
msgid "Resource's Calendar"
|
||||
msgstr "Resurssin kalenteri"
|
||||
|
||||
#. module: resource
|
||||
#: help:resource.resource,user_id:0
|
||||
msgid "Related user name for the resource to manage its access."
|
||||
msgstr "Liittyvä käyttäjätunnus resurssille sen oikeuksien määrittämiseksi"
|
||||
|
||||
#. module: resource
|
||||
#: help:resource.resource,calendar_id:0
|
||||
msgid "Define the schedule of resource"
|
||||
msgstr "Määrittele resurssin aikataulutus"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar.attendance,hour_from:0
|
||||
msgid "Work from"
|
||||
msgstr "Työaika alkaen"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.resource,code:0
|
||||
msgid "Code"
|
||||
msgstr "Koodi"
|
||||
|
||||
#. module: resource
|
||||
#: selection:resource.calendar.attendance,dayofweek:0
|
||||
msgid "Monday"
|
||||
msgstr "Maanantai"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar.attendance,hour_to:0
|
||||
msgid "Work to"
|
||||
msgstr "Työaika päättyy"
|
||||
|
||||
#. module: resource
|
||||
#: help:resource.resource,time_efficiency:0
|
||||
msgid ""
|
||||
"This field depict the efficiency of the resource to complete tasks. e.g "
|
||||
"resource put alone on a phase of 5 days with 5 tasks assigned to him, will "
|
||||
"show a load of 100% for this phase by default, but if we put a efficency of "
|
||||
"200%, then his load will only be 50%."
|
||||
msgstr ""
|
||||
|
||||
#. module: resource
|
||||
#: selection:resource.calendar.attendance,dayofweek:0
|
||||
msgid "Tuesday"
|
||||
msgstr "Tiistai"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar.leaves,calendar_id:0
|
||||
msgid "Working time"
|
||||
msgstr "Työaika"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.actions.act_window,name:resource.action_resource_calendar_leave_tree
|
||||
#: model:ir.ui.menu,name:resource.menu_view_resource_calendar_leaves_search
|
||||
msgid "Resource Leaves"
|
||||
msgstr "Resurssin lomat"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.resource:0
|
||||
msgid "General Information"
|
||||
msgstr "Yleiset tiedot"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.actions.act_window,help:resource.action_resource_resource_tree
|
||||
msgid ""
|
||||
"Resources allow you to create and manage resources that should be involved "
|
||||
"in a specific project phase. You can also set their efficiency level and "
|
||||
"workload based on their weekly working hours."
|
||||
msgstr ""
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.resource:0
|
||||
msgid "Inactive"
|
||||
msgstr "Passiivinen"
|
||||
|
||||
#. module: resource
|
||||
#: code:addons/resource/faces/resource.py:340
|
||||
#, python-format
|
||||
msgid "(vacation)"
|
||||
msgstr "(loma)"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.resource,time_efficiency:0
|
||||
msgid "Efficiency factor"
|
||||
msgstr "Tehokkuuskerroin"
|
||||
|
||||
#. module: resource
|
||||
#: selection:resource.resource,resource_type:0
|
||||
msgid "Human"
|
||||
msgstr "Ihminen"
|
||||
|
||||
#. module: resource
|
||||
#: model:ir.model,name:resource.model_resource_calendar_attendance
|
||||
msgid "Work Detail"
|
||||
msgstr "Työn yksityiskohdat"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar.leaves,date_from:0
|
||||
msgid "Start Date"
|
||||
msgstr "Alkupäivä"
|
||||
|
||||
#. module: resource
|
||||
#: code:addons/resource/resource.py:246
|
||||
#, python-format
|
||||
msgid " (copy)"
|
||||
msgstr " (kopio)"
|
||||
|
||||
#. module: resource
|
||||
#: selection:resource.calendar.attendance,dayofweek:0
|
||||
msgid "Saturday"
|
||||
msgstr "Lauantai"
|
||||
@@ -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: 2011-01-11 11:16+0000\n"
|
||||
"PO-Revision-Date: 2011-06-09 19:05+0000\n"
|
||||
"PO-Revision-Date: 2011-06-10 19:46+0000\n"
|
||||
"Last-Translator: Ayhan KIZILTAN <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: 2011-06-10 04:37+0000\n"
|
||||
"X-Launchpad-Export-Date: 2011-06-11 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: sale
|
||||
@@ -2083,7 +2083,7 @@ msgstr "Mayıs"
|
||||
#. module: sale
|
||||
#: help:sale.installer,sale_order_dates:0
|
||||
msgid "Adds commitment, requested and effective dates on Sales Orders."
|
||||
msgstr ""
|
||||
msgstr "Satış Siparişlerine taahhüt, istenen ve yürürlük tarihlerini ekler."
|
||||
|
||||
#. module: sale
|
||||
#: view:sale.order:0
|
||||
|
||||
@@ -126,12 +126,12 @@
|
||||
<notebook>
|
||||
<page string="Order Line">
|
||||
<field colspan="4"
|
||||
context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
|
||||
context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}"
|
||||
name="product_id"
|
||||
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], True, parent.date_order, product_packaging, parent.fiscal_position, False)"
|
||||
/>
|
||||
<field
|
||||
context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
|
||||
context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}"
|
||||
name="product_uom_qty"
|
||||
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position, True)"
|
||||
/>
|
||||
@@ -141,7 +141,7 @@
|
||||
<field groups="product.group_uos" name="product_uos"/>
|
||||
<field
|
||||
name="product_packaging"
|
||||
context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
|
||||
context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}"
|
||||
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position, False)"
|
||||
domain="[('product_id','=',product_id)]"
|
||||
groups="base.group_extended"/>
|
||||
|
||||
@@ -26,6 +26,8 @@ class sale_order(osv.osv):
|
||||
|
||||
_columns = {
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category', \
|
||||
domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]")
|
||||
}
|
||||
|
||||
sale_order()
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<field name="user_id" position="after">
|
||||
<field name="section_id" widget="selection" groups="base.group_extended"/>
|
||||
<field name="categ_id" widget="selection" groups="base.group_extended"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -91,6 +91,7 @@ class crm_make_sale(osv.osv_memory):
|
||||
vals = {
|
||||
'origin': _('Opportunity: %s') % str(case.id),
|
||||
'section_id': case.section_id and case.section_id.id or False,
|
||||
'categ_id': case.categ_id and case.categ_id.id or False,
|
||||
'shop_id': make.shop_id.id,
|
||||
'partner_id': partner.id,
|
||||
'pricelist_id': pricelist,
|
||||
|
||||
@@ -5,52 +5,52 @@
|
||||
<field name="domain">[('layout_type','=', 'article')]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_order_form_inherit_1">
|
||||
<field name="name">sale.order.form.inherit_1</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||
<record model="ir.ui.view" id="view_order_form_inherit_1">
|
||||
<field name="name">sale.order.form.inherit_1</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||
<field name="priority">30</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/notebook/page/field[@name='order_line']" position="replace">
|
||||
<field name="abstract_line_ids" colspan="4" nolabel="1" widget="one2many_list">
|
||||
<form string="Sale Order Lines">
|
||||
<notebook>
|
||||
<page string="Order Line">
|
||||
<separator colspan="4" string="Automatic Declaration"/>
|
||||
<field colspan="4"
|
||||
context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
|
||||
name="product_id"
|
||||
attrs="{'readonly':[('layout_type','!=','article')]}"
|
||||
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], True, parent.date_order, product_packaging, parent.fiscal_position)"
|
||||
select="1"/>
|
||||
<field
|
||||
context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
|
||||
name="product_uom_qty"
|
||||
attrs="{'readonly':[('layout_type','!=','article')]}"
|
||||
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position)"
|
||||
select="1"/>
|
||||
<field name="product_uom"
|
||||
required="0"
|
||||
attrs="{'readonly':[('layout_type','!=','article')], 'required':[('layout_type','not in',['title','text','subtotal','line','break'])]}"
|
||||
on_change="product_uom_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order)"/>
|
||||
<field
|
||||
name="product_packaging"
|
||||
attrs="{'readonly':[('layout_type','!=','article')]}"
|
||||
context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom"
|
||||
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position)"
|
||||
domain="[('product_id','=',product_id)]"
|
||||
groups="base.group_extended"/>
|
||||
<separator colspan="4" string="Manual Description" />
|
||||
<field name="layout_type" on_change="onchange_sale_order_line_view(layout_type)"/>
|
||||
<field name="sequence" string="Seq."/>
|
||||
<field colspan="4" name="name" select="2" attrs="{'readonly':[('layout_type','in',('line','break'))] }"/>
|
||||
<field name="price_unit" select="2" attrs="{'readonly':[('layout_type','!=','article')],'required':[('layout_type','not in',['title','text','subtotal','line','break'])]}"/>
|
||||
<field name="discount" attrs="{'readonly':[('layout_type','!=','article')]}"/>
|
||||
<field name="type" attrs="{'readonly':[('layout_type','!=','article')]}"/>
|
||||
<field name="delay" select="2" attrs="{'readonly':[('layout_type','!=','article')]}"/>
|
||||
<field colspan="4" name="tax_id" domain="[('parent_id','=',False)]" attrs="{'readonly':[('layout_type','!=','article')]}"/>
|
||||
<separator colspan="4" string="States"/>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/notebook/page/field[@name='order_line']" position="replace">
|
||||
<field name="abstract_line_ids" colspan="4" nolabel="1" widget="one2many_list">
|
||||
<form string="Sale Order Lines">
|
||||
<notebook>
|
||||
<page string="Order Line">
|
||||
<separator colspan="4" string="Automatic Declaration"/>
|
||||
<field colspan="4"
|
||||
context="{'partner_id':parent.partner_id,'quantity':product_uom_qty,'pricelist':parent.pricelist_id,'shop':parent.shop_id,'uom':product_uom}"
|
||||
name="product_id"
|
||||
attrs="{'readonly':[('layout_type','!=','article')]}"
|
||||
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], True, parent.date_order, product_packaging, parent.fiscal_position)"
|
||||
select="1"/>
|
||||
<field
|
||||
context="{'partner_id':parent.partner_id,'quantity':product_uom_qty,'pricelist':parent.pricelist_id,'shop':parent.shop_id,'uom':product_uom}"
|
||||
name="product_uom_qty"
|
||||
attrs="{'readonly':[('layout_type','!=','article')]}"
|
||||
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position)"
|
||||
select="1"/>
|
||||
<field name="product_uom"
|
||||
required="0"
|
||||
attrs="{'readonly':[('layout_type','!=','article')], 'required':[('layout_type','not in',['title','text','subtotal','line','break'])]}"
|
||||
on_change="product_uom_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order)"/>
|
||||
<field
|
||||
name="product_packaging"
|
||||
attrs="{'readonly':[('layout_type','!=','article')]}"
|
||||
context="{'partner_id':parent.partner_id,'quantity':product_uom_qty,'pricelist':parent.pricelist_id,'shop':parent.shop_id,'uom':product_uom}"
|
||||
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position)"
|
||||
domain="[('product_id','=',product_id)]"
|
||||
groups="base.group_extended"/>
|
||||
<separator colspan="4" string="Manual Description" />
|
||||
<field name="layout_type" on_change="onchange_sale_order_line_view(layout_type)"/>
|
||||
<field name="sequence" string="Seq."/>
|
||||
<field colspan="4" name="name" select="2" attrs="{'readonly':[('layout_type','in',('line','break'))] }"/>
|
||||
<field name="price_unit" select="2" attrs="{'readonly':[('layout_type','!=','article')],'required':[('layout_type','not in',['title','text','subtotal','line','break'])]}"/>
|
||||
<field name="discount" attrs="{'readonly':[('layout_type','!=','article')]}"/>
|
||||
<field name="type" attrs="{'readonly':[('layout_type','!=','article')]}"/>
|
||||
<field name="delay" select="2" attrs="{'readonly':[('layout_type','!=','article')]}"/>
|
||||
<field colspan="4" name="tax_id" domain="[('parent_id','=',False)]" attrs="{'readonly':[('layout_type','!=','article')]}"/>
|
||||
<separator colspan="4" string="States"/>
|
||||
<field name="state" select="2"/>
|
||||
<group col="3" colspan="2">
|
||||
<field name="invoiced" select="2"/>
|
||||
@@ -58,11 +58,11 @@
|
||||
</group>
|
||||
</page>
|
||||
<page groups="base.group_extended" string="Extra Info">
|
||||
<field groups="product.group_uos" name="product_uos_qty" on_change="uos_change(product_uos, product_uos_qty, product_id)"/>
|
||||
<field groups="product.group_uos" name="product_uos"/>
|
||||
<field name="address_allotment_id" select="2"/>
|
||||
<separator colspan="4" string="Properties"/>
|
||||
<field colspan="4" name="property_ids" nolabel="1"/>
|
||||
<field groups="product.group_uos" name="product_uos_qty" on_change="uos_change(product_uos, product_uos_qty, product_id)"/>
|
||||
<field groups="product.group_uos" name="product_uos"/>
|
||||
<field name="address_allotment_id" select="2"/>
|
||||
<separator colspan="4" string="Properties"/>
|
||||
<field colspan="4" name="property_ids" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Notes">
|
||||
<field colspan="4" name="notes" nolabel="1"/>
|
||||
@@ -74,8 +74,8 @@
|
||||
<field colspan="4" name="move_ids" nolabel="1" widget="many2many"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
<tree string="Sales order lines">
|
||||
</form>
|
||||
<tree string="Sales order lines">
|
||||
<field colspan="4" name="name"/>
|
||||
<field name="product_uom_qty" string="Qty"/>
|
||||
<field name="product_uom" string="UoM"/>
|
||||
@@ -85,10 +85,10 @@
|
||||
<field name="price_subtotal"/>
|
||||
<field name="sequence"/>
|
||||
</tree>
|
||||
</field>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</field>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -0,0 +1,519 @@
|
||||
# Finnish 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-06-13 06:18+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2011-06-14 04:40+0000\n"
|
||||
"X-Generator: Launchpad (build 13168)\n"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/web/editors.py:15
|
||||
#, python-format
|
||||
msgid "Sharing"
|
||||
msgstr "Jakaminen"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:462
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This additional data has been automatically added to your current access.\n"
|
||||
msgstr "Nämä lisätiedot on automaattisesti lisätty nykyiseen pääsyysi.\n"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Existing External Users"
|
||||
msgstr "Olemassaolevat sisäiset käyttäjät"
|
||||
|
||||
#. module: share
|
||||
#: help:res.groups,share:0
|
||||
msgid "Group created to set access rights for sharing data with some users."
|
||||
msgstr ""
|
||||
"Ryhmä luotu käyttöoikeuksien määrittämiseksi tietojen jakamiseksi joidenkin "
|
||||
"käyttäjien kanssa."
|
||||
|
||||
#. module: share
|
||||
#: model:ir.module.module,shortdesc:share.module_meta_information
|
||||
msgid "Share Management"
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
#: sql_constraint:res.users:0
|
||||
msgid "You can not have two users with the same login !"
|
||||
msgstr "Kahdella eri käyttäjällä ei voi olla samaa käyttäjätunnusta!"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:76
|
||||
#, python-format
|
||||
msgid "Sharing Wizard - Step 1"
|
||||
msgstr "Jako velho - vaihe 1"
|
||||
|
||||
#. module: share
|
||||
#: model:ir.actions.act_window,name:share.action_share_wizard
|
||||
#: model:ir.ui.menu,name:share.menu_action_share_wizard
|
||||
msgid "Share Access Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:453
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Dear,\n"
|
||||
"\n"
|
||||
"%s\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
#: constraint:res.users:0
|
||||
msgid "The chosen company is not in the allowed companies for this user"
|
||||
msgstr "Valittu yritys ei ole sallittu tälle käyttäjälle"
|
||||
|
||||
#. module: share
|
||||
#: model:ir.model,name:share.model_res_users
|
||||
msgid "res.users"
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Next"
|
||||
msgstr "Seuraava"
|
||||
|
||||
#. module: share
|
||||
#: help:share.wizard,action_id:0
|
||||
msgid ""
|
||||
"The action that opens the screen containing the data you wish to share."
|
||||
msgstr "Toiminto avaa ruudun joka sisältää tiedot joita haluat jakaa."
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:68
|
||||
#, python-format
|
||||
msgid "Please specify \"share_root_url\" in context"
|
||||
msgstr ""
|
||||
"Ole hyvä ja määrittele jakamisen perus url (share_root_url) alkupiste."
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Congratulations, you have successfully setup a new shared access!"
|
||||
msgstr "Onnittelut, olet onnistuneesti määritellyt uuden jaetun pääsyn!"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:275
|
||||
#, python-format
|
||||
msgid "(Copy for sharing)"
|
||||
msgstr "(kopioi jaettavaksi)"
|
||||
|
||||
#. module: share
|
||||
#: field:share.wizard.result.line,newly_created:0
|
||||
msgid "Newly created"
|
||||
msgstr "Uusi luotu"
|
||||
|
||||
#. module: share
|
||||
#: field:share.wizard,share_root_url:0
|
||||
msgid "Generic Share Access URL"
|
||||
msgstr "Yleinen jaon URL"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:457
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You may use the following login and password to get access to this protected "
|
||||
"area:\n"
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
#: view:res.groups:0
|
||||
msgid "Regular groups only (no share groups"
|
||||
msgstr "Vain normaalit ryhmät (ei jakoryhmiä)"
|
||||
|
||||
#. module: share
|
||||
#: selection:share.wizard,access_mode:0
|
||||
msgid "Read & Write"
|
||||
msgstr "Luku ja kirjoitus"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Share wizard: step 2"
|
||||
msgstr "Jako velho: vaihe 2"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Share wizard: step 0"
|
||||
msgstr "JJako velho: vaihe 0"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Share wizard: step 1"
|
||||
msgstr "JJako velho: vaihe 1"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:458
|
||||
#: field:share.wizard.result.line,login:0
|
||||
#, python-format
|
||||
msgid "Username"
|
||||
msgstr "Käyttäjätunnus"
|
||||
|
||||
#. module: share
|
||||
#: field:res.users,share:0
|
||||
msgid "Share User"
|
||||
msgstr "Jaettu käyttäjä"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:452
|
||||
#, python-format
|
||||
msgid "%s has shared OpenERP %s information with you"
|
||||
msgstr "%s on jakanut OpenERP %s tietoja kanssasi"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Finish"
|
||||
msgstr "Valmis"
|
||||
|
||||
#. module: share
|
||||
#: field:share.wizard,user_ids:0
|
||||
#: field:share.wizard.user,user_id:0
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:103
|
||||
#, python-format
|
||||
msgid ""
|
||||
"This username (%s) already exists, perhaps data has already been shared with "
|
||||
"this person.\n"
|
||||
"You may want to try selecting existing shared users instead."
|
||||
msgstr ""
|
||||
"Käyttäjätunnus (%s) on jo olemassa, ehkä tiedot on jo jaettu tämän käyttäjän "
|
||||
"kanssa.\n"
|
||||
"Voit ehkä haluta valita olemassaolevia jaettuja käyttäjiä tämän sijasta."
|
||||
|
||||
#. module: share
|
||||
#: field:share.wizard,new_users:0
|
||||
msgid "New users"
|
||||
msgstr "Uudet käyttäjät"
|
||||
|
||||
#. module: share
|
||||
#: model:ir.model,name:share.model_res_groups
|
||||
msgid "res.groups"
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:149
|
||||
#, python-format
|
||||
msgid "%s (Shared)"
|
||||
msgstr "%s (jaettu)"
|
||||
|
||||
#. module: share
|
||||
#: sql_constraint:res.groups:0
|
||||
msgid "The name of the group must be unique !"
|
||||
msgstr "Ryhmän nimen tulee olla uniikki!"
|
||||
|
||||
#. module: share
|
||||
#: selection:share.wizard,user_type:0
|
||||
msgid "New users (emails required)"
|
||||
msgstr "Uudet käyttäjät (sähköpostit vaaditaan)"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:418
|
||||
#, python-format
|
||||
msgid "Sharing filter created by user %s (%s) for group %s"
|
||||
msgstr "Jakosuodatin luotu käyttäjän %s (%s) toimesta ryhmälle %s"
|
||||
|
||||
#. module: share
|
||||
#: view:res.groups:0
|
||||
msgid "Groups"
|
||||
msgstr "Ryhmät"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Select the desired shared access mode:"
|
||||
msgstr "Valitse haluttu jaon tyyppi"
|
||||
|
||||
#. module: share
|
||||
#: field:res.groups,share:0
|
||||
msgid "Share Group"
|
||||
msgstr "Jako ryhmä"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:459
|
||||
#: field:share.wizard.result.line,password:0
|
||||
#, python-format
|
||||
msgid "Password"
|
||||
msgstr "Salasana"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Who would you want to share this data with?"
|
||||
msgstr "Kenen kanssa haluat jakaa nämä tiedot?"
|
||||
|
||||
#. module: share
|
||||
#: model:ir.module.module,description:share.module_meta_information
|
||||
msgid ""
|
||||
"The goal is to implement a generic sharing mechanism, where user of OpenERP\n"
|
||||
"can share data from OpenERP to their colleagues, customers, or friends.\n"
|
||||
"The system will work by creating new users and groups on the fly, and by\n"
|
||||
"combining the appropriate access rights and ir.rules to ensure that the "
|
||||
"/shared\n"
|
||||
"users/ will only have access to the correct data.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:102
|
||||
#, python-format
|
||||
msgid "User already exists"
|
||||
msgstr "Käyttäjä on jo olemassa"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Send Email Notification(s)"
|
||||
msgstr "Lähetä sähköpostitiedote"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:463
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You may use your existing login and password to view it. As a reminder, your "
|
||||
"login is %s.\n"
|
||||
msgstr ""
|
||||
"Voit käyttää nykyistä käyttäjätunnustasi ja salasanaasi katsoaksesi ne. "
|
||||
"Muista että kirjautumisesti on %s.\n"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:460
|
||||
#, python-format
|
||||
msgid "Database"
|
||||
msgstr "Tietokanta"
|
||||
|
||||
#. module: share
|
||||
#: model:ir.model,name:share.model_share_wizard_user
|
||||
msgid "share.wizard.user"
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid ""
|
||||
"Please select the action that opens the screen containing the data you want "
|
||||
"to share."
|
||||
msgstr ""
|
||||
"Ole hyvä ja valitse toiminto joka avaa ruudun jossa on tiedot jotka haluat "
|
||||
"jakaa."
|
||||
|
||||
#. module: share
|
||||
#: selection:share.wizard,user_type:0
|
||||
msgid "Existing external users"
|
||||
msgstr "Olemassaolevat sisäiset käyttäjät"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
#: field:share.wizard,result_line_ids:0
|
||||
msgid "Summary"
|
||||
msgstr "Yhteenveto"
|
||||
|
||||
#. module: share
|
||||
#: field:share.wizard,user_type:0
|
||||
msgid "Users to share with"
|
||||
msgstr "Käyttäjät joiden kanssa jaetaan"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:304
|
||||
#, python-format
|
||||
msgid "Indirect sharing filter created by user %s (%s) for group %s"
|
||||
msgstr "Epäsuora jakosuodin luotu käyttäjän %s (%s) toimesta ryhmälle %s"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:448
|
||||
#, python-format
|
||||
msgid "Email required"
|
||||
msgstr "Sähköposti vaaditaan"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:240
|
||||
#, python-format
|
||||
msgid "Copied access for sharing"
|
||||
msgstr "Kopioitu pääsy jakamista varten"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid ""
|
||||
"Optionally, you may specify an additional domain restriction that will be "
|
||||
"applied to the shared data."
|
||||
msgstr ""
|
||||
"Vaihtoehtoisesti voit määritellä ylimääräisiä toimialuerajoituksia jotka "
|
||||
"asetetaan jaetuille tiedoille."
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "New Users (please provide one e-mail address per line below)"
|
||||
msgstr "Uudet käyttäjät (syötä alapuolelle yksi sähköpostiosoite per rivi)"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:448
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The current user must have an email address configured in User Preferences "
|
||||
"to be able to send outgoing emails."
|
||||
msgstr ""
|
||||
"Nykyisellä käyttäjällä tulee olle sähköpostiosoite määriteltynä "
|
||||
"käyttäjäasetuksissa voidakseen lähettää sähköposteja."
|
||||
|
||||
#. module: share
|
||||
#: view:res.users:0
|
||||
msgid "Regular users only (no share user)"
|
||||
msgstr "Vain tavalliset käyttäjät (ei jaettuja käyttäjiä)"
|
||||
|
||||
#. module: share
|
||||
#: field:share.wizard.result.line,share_url:0
|
||||
msgid "Share URL"
|
||||
msgstr "Jaon URL"
|
||||
|
||||
#. module: share
|
||||
#: field:share.wizard,domain:0
|
||||
msgid "Domain"
|
||||
msgstr "Toimialue"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:314
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Sorry, the current screen and filter you are trying to share are not "
|
||||
"supported at the moment.\n"
|
||||
"You may want to try a simpler filter."
|
||||
msgstr ""
|
||||
"Anteeksi, nykyistä ruutua ja suodinta jota yrität jakaa ei tueta "
|
||||
"tällähetkellä.\n"
|
||||
"Voit yrittää yksinkertaisempaa suodinta."
|
||||
|
||||
#. module: share
|
||||
#: field:share.wizard,access_mode:0
|
||||
msgid "Access Mode"
|
||||
msgstr "Pääsyn tyyppi"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Access info"
|
||||
msgstr "Pääsyn tiedot"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:454
|
||||
#, python-format
|
||||
msgid ""
|
||||
"To access it, you can go to the following URL:\n"
|
||||
" %s"
|
||||
msgstr ""
|
||||
"Päästäksesi tietoihin, mene seuraavaan osoitteeseen (url):\n"
|
||||
" %s"
|
||||
|
||||
#. module: share
|
||||
#: field:share.wizard,action_id:0
|
||||
msgid "Action to share"
|
||||
msgstr "Jaettava toiminto"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/web/editors.py:18
|
||||
#, python-format
|
||||
msgid "Share"
|
||||
msgstr "Jaa"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:434
|
||||
#, python-format
|
||||
msgid "Sharing Wizard - Step 2"
|
||||
msgstr "Jakovelho - vaihe 2"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Here is a summary of the access points you have just created:"
|
||||
msgstr "Tässä on yhteenveto pääsypisteistä jotka juuri teit."
|
||||
|
||||
#. module: share
|
||||
#: model:ir.model,name:share.model_share_wizard_result_line
|
||||
msgid "share.wizard.result.line"
|
||||
msgstr ""
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:313
|
||||
#, python-format
|
||||
msgid "Sharing access could not be setup"
|
||||
msgstr "Jaon pääsyn tyyppi ei voi olla asennus"
|
||||
|
||||
#. module: share
|
||||
#: model:ir.actions.act_window,name:share.action_share_wizard
|
||||
#: model:ir.actions.act_window,name:share.action_share_wizard_step1
|
||||
#: model:ir.model,name:share.model_share_wizard
|
||||
#: model:ir.ui.menu,name:share.menu_action_share_wizard
|
||||
#: field:share.wizard.result.line,share_wizard_id:0
|
||||
msgid "Share Wizard"
|
||||
msgstr "Jakovelho"
|
||||
|
||||
#. module: share
|
||||
#: help:share.wizard,user_type:0
|
||||
msgid "Select the type of user(s) you would like to share data with."
|
||||
msgstr "Valitse käyttäjien tyyppi joiden kanssa haluat jakaa tietoja."
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Cancel"
|
||||
msgstr "Peruuta"
|
||||
|
||||
#. module: share
|
||||
#: view:share.wizard:0
|
||||
msgid "Close"
|
||||
msgstr "Sulje"
|
||||
|
||||
#. module: share
|
||||
#: help:res.users,share:0
|
||||
msgid ""
|
||||
"External user with limited access, created only for the purpose of sharing "
|
||||
"data."
|
||||
msgstr ""
|
||||
"Ulkoinen käyttäjä jolla on rajoitettu pääsy, luotu vain tietojen jakamista "
|
||||
"varten."
|
||||
|
||||
#. module: share
|
||||
#: help:share.wizard,domain:0
|
||||
msgid "Optional domain for further data filtering"
|
||||
msgstr "Vaihtoehtoinen toimialue tarkempaa tietojen suodatusta varten"
|
||||
|
||||
#. module: share
|
||||
#: selection:share.wizard,access_mode:0
|
||||
msgid "Read-only"
|
||||
msgstr "Vain luku"
|
||||
|
||||
#. module: share
|
||||
#: code:addons/share/wizard/share_wizard.py:323
|
||||
#, python-format
|
||||
msgid "*usual password*"
|
||||
msgstr "*normaali salasana*"
|
||||
|
||||
#, python-format
|
||||
#~ msgid ""
|
||||
#~ "Dear,\n"
|
||||
#~ "\n"
|
||||
#~ msgstr ""
|
||||
#~ "Hyvä,\n"
|
||||
#~ "\n"
|
||||
|
||||
#, python-format
|
||||
#~ msgid ""
|
||||
#~ "You may use the following login and password to get access to this protected "
|
||||
#~ "area:"
|
||||
#~ msgstr ""
|
||||
#~ "Voit käyttää seuraavaa käyttäjätunnusta ja salasanaa päästäksesi tälle "
|
||||
#~ "suojatulle alueelle"
|
||||
|
||||
#~ msgid "Sharing Tools"
|
||||
#~ msgstr "Jakotyökalut"
|
||||
|
||||
#~ msgid "Access Groups"
|
||||
#~ msgstr "Pääsyryhmät"
|
||||
@@ -57,7 +57,7 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Stock Inventory Lines">
|
||||
<field context="location=location_id,uom=product_uom,to_date=parent.date" name="product_id" on_change="on_change_product_id(location_id,product_id,product_uom,parent.date)" select="1" domain="[('type','<>','service')]"/>
|
||||
<field context="{'location':location_id, 'uom':product_uom, 'to_date':parent.date}" name="product_id" on_change="on_change_product_id(location_id,product_id,product_uom,parent.date)" select="1" domain="[('type','<>','service')]"/>
|
||||
<field name="product_qty"/>
|
||||
<field name="product_uom"/>
|
||||
<field name="prod_lot_id" groups="base.group_extended"/>
|
||||
@@ -117,7 +117,7 @@
|
||||
<field colspan="4" name="inventory_line_id" nolabel="1" widget="one2many_list">
|
||||
<tree string="Products" editable="bottom">
|
||||
<field colspan="4" domain="[('usage','=','internal')]" name="location_id"/>
|
||||
<field context="location=location_id,uom=product_uom,to_date=parent.date" name="product_id" on_change="on_change_product_id(location_id,product_id,product_uom,parent.date)" domain="[('type','<>','service')]"/>
|
||||
<field context="{'location':location_id, 'uom':product_uom, 'to_date':parent.date}" name="product_id" on_change="on_change_product_id(location_id,product_id,product_uom,parent.date)" domain="[('type','<>','service')]"/>
|
||||
<field name="product_qty"/>
|
||||
<field name="product_uom"/>
|
||||
<field name="prod_lot_id" groups="base.group_extended"/>
|
||||
@@ -129,7 +129,7 @@
|
||||
<form string="Products ">
|
||||
<field domain="[('usage','=','internal')]" name="location_id"/>
|
||||
<newline/>
|
||||
<field context="location=location_id,uom=product_uom,to_date=parent.date" name="product_id" on_change="on_change_product_id(location_id,product_id,product_uom,parent.date)" domain="[('type','<>','service')]"/>
|
||||
<field context="{'location':location_id, 'uom':product_uom, 'to_date':parent.date}" name="product_id" on_change="on_change_product_id(location_id,product_id,product_uom,parent.date)" domain="[('type','<>','service')]"/>
|
||||
<field name="product_qty"/>
|
||||
<field name="product_uom"/>
|
||||
<group colspan="2" col="4">
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -98,6 +98,7 @@ class survey(osv.osv):
|
||||
current_rec = self.read(cr, uid, ids, context=context)
|
||||
title = current_rec.get('title') + ' (Copy)'
|
||||
vals.update({'title':title})
|
||||
vals.update({'history':[],'tot_start_survey':0,'tot_comp_survey':0})
|
||||
return super(survey, self).copy(cr, uid, ids, vals, context=context)
|
||||
|
||||
def action_print_survey(self, cr, uid, ids, context=None):
|
||||
|
||||
@@ -167,6 +167,10 @@ class survey_send_invitation(osv.osv_memory):
|
||||
res_user+= "- %s (Login: %s, Password: %s)\n" % \
|
||||
(user_email.name, user_email.login, user_email.password)
|
||||
continue
|
||||
else:
|
||||
error += "- No User found linked to email address '%s'.\n Impossible to send a reminder to a partner never invited before \n"%(addr.email)
|
||||
continue
|
||||
|
||||
passwd= self.genpasswd()
|
||||
out+= addr.email + ',' + passwd + '\n'
|
||||
mail= record['mail'] % {'login' : addr.email, 'passwd' : passwd, 'name' : addr.name}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<data>
|
||||
|
||||
<!-- Survey send invitation Form View -->
|
||||
|
||||
|
||||
<record id="view_survey_send_invitation" model="ir.ui.view">
|
||||
<field name="name">Send Invitation</field>
|
||||
<field name="model">survey.send.invitation</field>
|
||||
@@ -11,21 +11,21 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Send Invitation">
|
||||
<separator string="Select Partner" colspan="4"/>
|
||||
<field name="partner_ids" nolabel="1" colspan="4"/>
|
||||
<field name="partner_ids" nolabel="1" colspan="4"/>
|
||||
<separator colspan="4" string="Send mail for new user"/>
|
||||
<field name="send_mail" nolabel="1"/>
|
||||
<field name="mail_subject" colspan="3"/>
|
||||
<separator colspan="4" string="Send reminder for existing user"/>
|
||||
<field name="send_mail_existing" nolabel="1"/>
|
||||
<field name="mail_subject_existing" colspan="3"/>
|
||||
<field name="mail_subject_existing" colspan="3"/>
|
||||
<separator colspan="4"/>
|
||||
<field name="mail_from" colspan="4"/>
|
||||
<separator string="Message" colspan="4"/>
|
||||
<field name="mail" nolabel="1" colspan="4"/>
|
||||
<separator colspan="4" />
|
||||
<label align="0.0" colspan="2" string="" />
|
||||
<button colspan="1" icon="gtk-cancel" special="cancel" string="Cancel"/>
|
||||
<button colspan="1" icon="gtk-go-forward" name="action_send" string="Send" type="object"/>
|
||||
<button colspan="1" icon="gtk-cancel" special="cancel" string="_Cancel"/>
|
||||
<button colspan="1" icon="gtk-go-forward" name="action_send" string="_Send" type="object"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -46,7 +46,7 @@
|
||||
view_mode="form" target="new" view_type="form" />
|
||||
|
||||
<!-- Survey send invitation Display Log Form View -->
|
||||
|
||||
|
||||
<record id="view_survey_send_invitation_log" model="ir.ui.view">
|
||||
<field name="name">survey send invitation log</field>
|
||||
<field name="model">survey.send.invitation.log</field>
|
||||
@@ -58,7 +58,7 @@
|
||||
<separator string="" colspan="4"/>
|
||||
<group col="4" colspan="4">
|
||||
<label align="0.0" colspan="3" string="" />
|
||||
<button colspan="1" icon="gtk-ok" special="cancel" string="Ok"/>
|
||||
<button colspan="1" icon="gtk-ok" special="cancel" string="_Ok"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
@@ -24,6 +24,7 @@ import base64
|
||||
import email
|
||||
import tools
|
||||
import binascii
|
||||
import dateutil.parser
|
||||
class email_server_tools(osv.osv_memory):
|
||||
_inherit = "email.server.tools"
|
||||
def history_message(self, cr, uid, model, res_id, message, context=None):
|
||||
@@ -73,7 +74,8 @@ class email_server_tools(osv.osv_memory):
|
||||
msg['reply'] = self._decode_header(msg_txt.get('Reply-To'))
|
||||
|
||||
if 'Date' in fields:
|
||||
msg['date'] = self._decode_header(msg_txt.get('Date'))
|
||||
date = self._decode_header(msg_txt.get('Date'))
|
||||
msg['date'] = dateutil.parser.parse(date).strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
if 'Content-Transfer-Encoding' in fields:
|
||||
msg['encoding'] = msg_txt.get('Content-Transfer-Encoding')
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+4
-11
@@ -148,17 +148,10 @@ function getPredefinedFolder(type) {
|
||||
// type 2 = selected messages
|
||||
|
||||
var use_dir = "mboximport.exportMSG.use_dir";
|
||||
|
||||
var dir_path="";
|
||||
if(navigator.userAgent.indexOf('Linux')!= -1){
|
||||
dir_path ="/tmp"
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Win')!= -1){
|
||||
dir_path ="C:\\"
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
|
||||
dir_path ="/tmp"
|
||||
}
|
||||
var dirService = Components.classes["@mozilla.org/file/directory_service;1"].
|
||||
getService(Components.interfaces.nsIProperties).get("Home", Components.interfaces.nsIFile);
|
||||
var homeDir = dirService.path;
|
||||
var dir_path = ((homeDir.search(/\\/) != -1) ? homeDir + "\\" : homeDir + "/")
|
||||
try {
|
||||
var localFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
||||
localFile.initWithPath(dir_path);
|
||||
|
||||
@@ -38,6 +38,10 @@ function searchmail()
|
||||
return true
|
||||
}
|
||||
var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
|
||||
var dirService = Components.classes["@mozilla.org/file/directory_service;1"].
|
||||
getService(Components.interfaces.nsIProperties).get("Home", Components.interfaces.nsIFile);
|
||||
var homeDir = dirService.path;
|
||||
var path = ((homeDir.search(/\\/) != -1) ? homeDir + "\\" : homeDir + "/")
|
||||
var version_obj = prefService.getBranch("extensions.");
|
||||
version_obj.QueryInterface(Components.interfaces.nsIPrefBranch2);
|
||||
version = version_obj.getCharPref("lastAppVersion");
|
||||
@@ -148,19 +152,7 @@ function searchmail()
|
||||
url[i] = currentAttachments[i].url;
|
||||
name[i] = currentAttachments[i].displayName;
|
||||
var obj = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
||||
if(navigator.userAgent.indexOf('Linux')!= -1){
|
||||
obj.initWithPath("/tmp/");
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Win')!= -1){
|
||||
obj.initWithPath("c:\\");
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
|
||||
obj.initWithPath("/tmp/");
|
||||
}
|
||||
else{
|
||||
alert("Not Compatible for this Operating System");
|
||||
false();
|
||||
}
|
||||
obj.initWithPath(path)
|
||||
//saving the attachment files in system's temp folder
|
||||
test[i] = messenger.saveAttachmentToFolder(contentType[i],url[i],name[i],uri,obj);
|
||||
}
|
||||
@@ -335,15 +327,10 @@ var listDocumentHandler = {
|
||||
//function to archive the mail content through xmlrpc request
|
||||
function parse_eml(){
|
||||
var fpath =""
|
||||
if(navigator.userAgent.indexOf('Linux')!= -1){
|
||||
fpath ="/tmp/"
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Win')!= -1){
|
||||
fpath ="C:\\"
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
|
||||
fpath ="/tmp/"
|
||||
}
|
||||
var dirService = Components.classes["@mozilla.org/file/directory_service;1"].
|
||||
getService(Components.interfaces.nsIProperties).get("Home", Components.interfaces.nsIFile);
|
||||
var homeDir = dirService.path;
|
||||
fpath = ((homeDir.search(/\\/) != -1) ? homeDir + "\\" : homeDir + "/")
|
||||
name = fpath + getPref().getCharPref('fname') +".eml"
|
||||
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
||||
file.initWithPath( name );
|
||||
|
||||
+1
-29
@@ -1434,34 +1434,6 @@ var listArchiveHandler = {
|
||||
}
|
||||
|
||||
//function to archive the mail content through xmlrpc request
|
||||
|
||||
function parse_eml(){
|
||||
var fpath =""
|
||||
if(navigator.userAgent.indexOf('Linux')!= -1){
|
||||
fpath ="/tmp/"
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Win')!= -1){
|
||||
fpath ="C:\\"
|
||||
}
|
||||
else if(navigator.userAgent.indexOf('Mac OS X')!= -1){
|
||||
fpath ="/tmp/"
|
||||
}
|
||||
|
||||
name = fpath + getFileName() +".eml"
|
||||
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
|
||||
file.initWithPath( name );
|
||||
if ( file.exists() == false ) {
|
||||
return null;
|
||||
} else {
|
||||
var is = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance( Components.interfaces.nsIFileInputStream );
|
||||
is.init( file,0x01, 00004, null);
|
||||
var sis = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance( Components.interfaces.nsIScriptableInputStream );
|
||||
sis.init( is );
|
||||
var output = sis.read( sis.available() );
|
||||
return output
|
||||
}
|
||||
|
||||
}
|
||||
function upload_archivemail()
|
||||
{
|
||||
list_documents = document.getElementById('listSearchBox')
|
||||
@@ -1484,6 +1456,7 @@ function upload_archivemail()
|
||||
strobj.data = 'thunderbird.partner';
|
||||
var resobj = xmlRpcClient.createType(xmlRpcClient.STRING,{});
|
||||
|
||||
|
||||
for(i=0;i<cnt;i++)
|
||||
{
|
||||
var object = list_documents.getSelectedItem(i);
|
||||
@@ -1497,7 +1470,6 @@ function upload_archivemail()
|
||||
var a = ['ref_ids','message'];
|
||||
var b = [ref_ids, eml_string];
|
||||
var arrofarr = dictcontact(a,b);
|
||||
|
||||
xmlRpcClient.asyncCall(listArchiveHandler,null,'execute',[strDbName,struids,strpass,strobj,strmethod,arrofarr],6);
|
||||
|
||||
}
|
||||
|
||||
@@ -20,25 +20,93 @@
|
||||
|
||||
{
|
||||
"name" : "Authenticate users with LDAP server",
|
||||
"version" : "0.1",
|
||||
"version" : "1.0",
|
||||
"depends" : ["base"],
|
||||
"images" : ["images/ldap_configuration.jpeg"],
|
||||
"author" : "OpenERP SA",
|
||||
"description": """
|
||||
Adds support for authentication by LDAP server.
|
||||
===============================================
|
||||
This module allows users to login with their LDAP username and
|
||||
password, and will automatically create OpenERP users for them
|
||||
on the fly.
|
||||
|
||||
**Note**: This module only work on servers who have Python's
|
||||
``ldap`` module installed.
|
||||
|
||||
Configuration
|
||||
+++++++++++++
|
||||
After installing this module, you need to configure the LDAP
|
||||
parameters in the Configuration tab of the Company details.
|
||||
Different companies may have different LDAP servers, as long
|
||||
as they have unique usernames (usernames need to be unique in
|
||||
OpenERP, even across multiple companies).
|
||||
|
||||
Anonymous LDAP binding is also supported (for LDAP servers
|
||||
that allow it), by simpling keeping the LDAP user and password
|
||||
empty in the LDAP configuration. This does **not** allow
|
||||
anonymous authentication for users, it is only for the master
|
||||
LDAP account that is used to verify if a user exists before
|
||||
attempting to authenticate it.
|
||||
|
||||
Security Considerations
|
||||
+++++++++++++++++++++++
|
||||
Users' LDAP passwords are never stored in the OpenERP database,
|
||||
the LDAP server is queried whenever a user needs to be
|
||||
authenticated. No duplication of the password occurs, and
|
||||
passwords are managed in one place only.
|
||||
|
||||
OpenERP does not manage password changes in the LDAP, so
|
||||
any change of password should be conducted by other means
|
||||
in the LDAP directory directly (for LDAP users).
|
||||
|
||||
It is also possible to have local OpenERP users in the
|
||||
database along with LDAP-authenticated users (the Administrator
|
||||
account is one obvious example).
|
||||
|
||||
Here is how it works:
|
||||
|
||||
* The system first attempts to authenticate users against
|
||||
the local OpenERP database ;
|
||||
* if this authentication fails (for example because the
|
||||
user has no local password), the system then attempts
|
||||
to authenticate against LDAP ;
|
||||
|
||||
As LDAP users have blank passwords by default in the local
|
||||
OpenERP database (which means no access), the first step
|
||||
always fails and the LDAP server is queried to do the
|
||||
authentication.
|
||||
|
||||
User Template
|
||||
+++++++++++++
|
||||
In the LDAP configuration on the Company form, it is possible to
|
||||
select a *User Template*. If set, this user will be used as
|
||||
template to create the local users whenever someone authenticates
|
||||
for the first time via LDAP authentication.
|
||||
This allows pre-setting the default groups and menus of the
|
||||
first-time users.
|
||||
|
||||
**Warning**: if you set a password for the user template,
|
||||
this password will be assigned as local password for each new
|
||||
LDAP user, effectively setting a *master password* for these
|
||||
users (until manually changed). You usually do not want this.
|
||||
One easy way to setup a template user is to login once with
|
||||
a valid LDAP user, let OpenERP create a blank local user with the
|
||||
same login (and a blank password), then rename this new user
|
||||
to a username that does not exist in LDAP, and setup its
|
||||
groups the way you want.
|
||||
|
||||
Interaction with base_crypt
|
||||
+++++++++++++++++++++++++++
|
||||
The base_crypt module is not compatible with this module, and
|
||||
will disable LDAP authentication if installed at the same time.
|
||||
|
||||
This module only works with Unix/Linux.
|
||||
""",
|
||||
|
||||
|
||||
"website" : "http://www.openerp.com",
|
||||
"category" : "Tools",
|
||||
"init_xml" : [
|
||||
],
|
||||
"demo_xml" : [
|
||||
],
|
||||
"update_xml" : [
|
||||
"data" : [
|
||||
"users_ldap_view.xml",
|
||||
],
|
||||
"active": False,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user