commit
d4af842b35
|
@ -2572,12 +2572,10 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
|||
data_id = data_pool.search(cr, uid, [('model','=','account.journal.view'), ('name','=','account_journal_bank_view')])
|
||||
data = data_pool.browse(cr, uid, data_id[0])
|
||||
view_id_cash = data.res_id
|
||||
#view_id_cash = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Bank/Cash Journal View')])[0] #TOFIX: why put fix name
|
||||
|
||||
|
||||
data_id = data_pool.search(cr, uid, [('model','=','account.journal.view'), ('name','=','account_journal_bank_view_multi')])
|
||||
data = data_pool.browse(cr, uid, data_id[0])
|
||||
ref_acc_bank = data.res_id
|
||||
#ref_acc_bank = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Bank/Cash Journal (Multi-Currency) View')])[0] #TOFIX: why put fix name
|
||||
ref_acc_bank = obj_multi.chart_template_id.bank_account_view_id
|
||||
|
||||
current_num = 1
|
||||
|
@ -2604,8 +2602,8 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
|||
|
||||
if obj_multi.seq_journal:
|
||||
vals_seq={
|
||||
'name': _('Bank Journal ') + vals['name'],
|
||||
'code': 'account.journal',
|
||||
'name': _('Bank Journal ') + vals['name'],
|
||||
'code': 'account.journal',
|
||||
}
|
||||
seq_id = obj_sequence.create(cr,uid,vals_seq)
|
||||
|
||||
|
@ -2661,9 +2659,9 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
|||
for position in obj_fiscal_position_template.browse(cr, uid, fp_ids):
|
||||
|
||||
vals_fp = {
|
||||
'company_id' : company_id,
|
||||
'name' : position.name,
|
||||
}
|
||||
'company_id' : company_id,
|
||||
'name' : position.name,
|
||||
}
|
||||
new_fp = obj_fiscal_position.create(cr, uid, vals_fp)
|
||||
|
||||
obj_tax_fp = self.pool.get('account.fiscal.position.tax')
|
||||
|
@ -2671,18 +2669,18 @@ class wizard_multi_charts_accounts(osv.osv_memory):
|
|||
|
||||
for tax in position.tax_ids:
|
||||
vals_tax = {
|
||||
'tax_src_id' : tax_template_ref[tax.tax_src_id.id],
|
||||
'tax_dest_id' : tax.tax_dest_id and tax_template_ref[tax.tax_dest_id.id] or False,
|
||||
'position_id' : new_fp,
|
||||
}
|
||||
'tax_src_id' : tax_template_ref[tax.tax_src_id.id],
|
||||
'tax_dest_id' : tax.tax_dest_id and tax_template_ref[tax.tax_dest_id.id] or False,
|
||||
'position_id' : new_fp,
|
||||
}
|
||||
obj_tax_fp.create(cr, uid, vals_tax)
|
||||
|
||||
for acc in position.account_ids:
|
||||
vals_acc = {
|
||||
'account_src_id' : acc_template_ref[acc.account_src_id.id],
|
||||
'account_dest_id' : acc_template_ref[acc.account_dest_id.id],
|
||||
'position_id' : new_fp,
|
||||
}
|
||||
'account_src_id' : acc_template_ref[acc.account_src_id.id],
|
||||
'account_dest_id' : acc_template_ref[acc.account_dest_id.id],
|
||||
'position_id' : new_fp,
|
||||
}
|
||||
obj_ac_fp.create(cr, uid, vals_acc)
|
||||
|
||||
#fially inactive the demo chart of accounts
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
<!--
|
||||
Invoices
|
||||
-->
|
||||
|
||||
<record id="view_invoice_line_calendar" model="ir.ui.view">
|
||||
<field name="name">account.invoice.calendar</field>
|
||||
<field name="model">account.invoice</field>
|
||||
|
@ -17,6 +16,7 @@
|
|||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_invoice_graph">
|
||||
<field name="name">account.invoice.graph</field>
|
||||
<field name="model">account.invoice</field>
|
||||
|
@ -28,6 +28,7 @@
|
|||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_invoice_line_tree" model="ir.ui.view">
|
||||
<field name="name">account.invoice.line.tree</field>
|
||||
<field name="model">account.invoice.line</field>
|
||||
|
@ -44,6 +45,7 @@
|
|||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_invoice_line_form" model="ir.ui.view">
|
||||
<field name="name">account.invoice.line.form</field>
|
||||
<field name="model">account.invoice.line</field>
|
||||
|
@ -74,6 +76,7 @@
|
|||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_invoice_tax_tree" model="ir.ui.view">
|
||||
<field name="name">account.invoice.tax.tree</field>
|
||||
<field name="model">account.invoice.tax</field>
|
||||
|
@ -89,6 +92,7 @@
|
|||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_invoice_tax_form" model="ir.ui.view">
|
||||
<field name="name">account.invoice.tax.form</field>
|
||||
<field name="model">account.invoice.tax</field>
|
||||
|
@ -115,7 +119,7 @@
|
|||
<field name="model">account.invoice</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="blue:state in ('draft');black:state not in ('draft')" string="Invoice">
|
||||
<tree colors="blue:state in ('draft');black:state in ('proforma','proforma2','open');gray:state in ('paid','cancel')" string="Invoice">
|
||||
<field name="date_invoice"/>
|
||||
<field name="number"/>
|
||||
<field name="partner_id" groups="base.group_user"/>
|
||||
|
@ -149,7 +153,7 @@
|
|||
<field name="currency_id" domain="[('company_id','=', company_id)]" on_change="onchange_currency_id(currency_id, company_id)" width="50"/>
|
||||
<button name="%(action_account_change_currency)d" type="action" icon="terp-stock_effects-object-colorize" string="Change"/>
|
||||
<newline/>
|
||||
<field name="partner_id" domain="[('supplier','=', 1)]" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank,company_id)" context="{'default_customer': 0}"/>
|
||||
<field name="partner_id" domain="[('supplier','=', 1)]" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" context="{'default_customer': 0}"/>
|
||||
<field domain="[('partner_id','=',partner_id)]" name="address_invoice_id"/>
|
||||
<field name="fiscal_position" groups="base.group_extended" widget="selection"/>
|
||||
<newline/>
|
||||
|
@ -212,7 +216,7 @@
|
|||
</group>
|
||||
</page>
|
||||
<page string="Other Info">
|
||||
<field domain="[('partner_id', '=', partner_id)]" name="partner_bank" on_change="onchange_partner_bank(partner_bank)"/>
|
||||
<field domain="[('partner_id', '=', partner_id)]" name="partner_bank_id" on_change="onchange_partner_bank(partner_bank_id)"/>
|
||||
|
||||
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line,currency_id)" widget="selection" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
|
@ -245,7 +249,6 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="invoice_form" model="ir.ui.view">
|
||||
<field name="name">account.invoice.form</field>
|
||||
<field name="model">account.invoice</field>
|
||||
|
@ -259,7 +262,7 @@
|
|||
<field name="currency_id" domain="[('company_id','=', company_id)]" on_change="onchange_currency_id(currency_id, company_id)" width="50"/>
|
||||
<button name="%(action_account_change_currency)d" type="action" icon="terp-stock_effects-object-colorize" string="Change"/>
|
||||
<newline/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank,company_id)" groups="base.group_user"/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" groups="base.group_user"/>
|
||||
<field domain="[('partner_id','=',partner_id)]" name="address_invoice_id"/>
|
||||
<field name="fiscal_position" groups="base.group_extended" widget="selection"/>
|
||||
<newline/>
|
||||
|
@ -312,7 +315,7 @@
|
|||
<field name="date_due"/>
|
||||
<field name="user_id"/>
|
||||
<newline/>
|
||||
<field domain="[('partner_id.ref_companies', 'in', [company_id])]" name="partner_bank"
|
||||
<field domain="[('partner_id.ref_companies', 'in', [company_id])]" name="partner_bank_id"
|
||||
groups="base.group_extended"/>
|
||||
<field name="origin"/>
|
||||
<field colspan="4" domain="[('partner_id','=',partner_id)]" name="address_contact_id"
|
||||
|
@ -403,6 +406,7 @@
|
|||
<field name="view_mode">tree</field>
|
||||
<field name="act_window_id" ref="action_invoice_tree"/>
|
||||
</record>
|
||||
|
||||
<record id="action_invoice_tree_view2" model="ir.actions.act_window.view">
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="view_mode">form</field>
|
||||
|
@ -421,11 +425,13 @@
|
|||
<field name="context">{'type':'out_invoice'}</field>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
|
||||
<record id="action_invoice_tree1_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="act_window_id" ref="action_invoice_tree1"/>
|
||||
</record>
|
||||
|
||||
<record id="action_invoice_tree1_view2" model="ir.actions.act_window.view">
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="view_mode">form</field>
|
||||
|
@ -469,7 +475,6 @@
|
|||
<field name="view_id" ref="invoice_form"/>
|
||||
<field name="act_window_id" ref="action_invoice_tree3"/>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_invoice_tree3" id="menu_action_invoice_tree3" parent="menu_finance_receivables"/>
|
||||
|
||||
<record id="action_invoice_tree4" model="ir.actions.act_window">
|
||||
|
|
|
@ -484,7 +484,7 @@
|
|||
<group col="6" colspan="4">
|
||||
<field name="name" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="journal_id" on_change="onchange_journal_id(journal_id)" select="1"/>
|
||||
<field name="journal_id" domain="[('type', '=', 'bank')]" on_change="onchange_journal_id(journal_id)" select="1"/>
|
||||
<field name="period_id"/>
|
||||
<field name="balance_start"/>
|
||||
<field name="balance_end_real"/>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -299,7 +299,7 @@ class account_invoice(osv.osv):
|
|||
'account.move.line': (_get_invoice_from_line, None, 50),
|
||||
'account.move.reconcile': (_get_invoice_from_reconcile, None, 50),
|
||||
}, help="The Ledger Postings of the invoice have been reconciled with Ledger Postings of the payment(s)."),
|
||||
'partner_bank': fields.many2one('res.partner.bank', 'Bank Account',
|
||||
'partner_bank_id': fields.many2one('res.partner.bank', 'Bank Account',
|
||||
help='Bank Account Number, Company bank account if Invoice is customer or supplier refund, otherwise Parner bank account number.', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'move_lines':fields.function(_get_lines , method=True, type='many2many', relation='account.move.line', string='Entry Lines'),
|
||||
'residual': fields.function(_amount_residual, method=True, digits_compute=dp.get_precision('Account'), string='Residual',
|
||||
|
@ -373,8 +373,8 @@ class account_invoice(osv.osv):
|
|||
# def get_invoice_address(self, cr, uid, ids):
|
||||
# res = self.pool.get('res.partner').address_get(cr, uid, [part], ['invoice'])
|
||||
# return [{}]
|
||||
def onchange_partner_id(self, cr, uid, ids, type, partner_id,
|
||||
date_invoice=False, payment_term=False, partner_bank=False, company_id=False):
|
||||
def onchange_partner_id(self, cr, uid, ids, type, partner_id,\
|
||||
date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):
|
||||
invoice_addr_id = False
|
||||
contact_addr_id = False
|
||||
partner_payment_term = False
|
||||
|
@ -429,7 +429,7 @@ class account_invoice(osv.osv):
|
|||
}
|
||||
|
||||
if type in ('in_invoice', 'in_refund'):
|
||||
result['value']['partner_bank'] = bank_id
|
||||
result['value']['partner_bank_id'] = bank_id
|
||||
|
||||
if payment_term != partner_payment_term:
|
||||
if partner_payment_term:
|
||||
|
@ -439,7 +439,7 @@ class account_invoice(osv.osv):
|
|||
else:
|
||||
result['value']['date_due'] = False
|
||||
|
||||
if partner_bank != bank_id:
|
||||
if partner_bank_id != bank_id:
|
||||
to_update = self.onchange_partner_bank(cr, uid, ids, bank_id)
|
||||
result['value'].update(to_update['value'])
|
||||
return result
|
||||
|
@ -474,7 +474,7 @@ class account_invoice(osv.osv):
|
|||
def onchange_invoice_line(self, cr, uid, ids, lines):
|
||||
return {}
|
||||
|
||||
def onchange_partner_bank(self, cursor, user, ids, partner_bank):
|
||||
def onchange_partner_bank(self, cursor, user, ids, partner_bank_id=False):
|
||||
return {'value': {}}
|
||||
|
||||
def onchange_company_id(self, cr, uid, ids, company_id, part_id, type, invoice_line, currency_id):
|
||||
|
|
|
@ -68,7 +68,7 @@ class account_invoice_report(osv.osv):
|
|||
'address_contact_id': fields.many2one('res.partner.address', 'Contact Address Name', readonly=True),
|
||||
'address_invoice_id': fields.many2one('res.partner.address', 'Invoice Address Name', readonly=True),
|
||||
'account_id': fields.many2one('account.account', 'Account',readonly=True),
|
||||
'partner_bank': fields.many2one('res.partner.bank', 'Bank Account',readonly=True),
|
||||
'partner_bank_id': fields.many2one('res.partner.bank', 'Bank Account',readonly=True),
|
||||
'residual':fields.float('Total Residual', readonly=True),
|
||||
'delay_to_pay':fields.float('Avg. Delay To Pay', readonly=True, group_operator="avg"),
|
||||
}
|
||||
|
@ -101,7 +101,7 @@ class account_invoice_report(osv.osv):
|
|||
ai.address_contact_id as address_contact_id,
|
||||
ai.address_invoice_id as address_invoice_id,
|
||||
ai.account_id as account_id,
|
||||
ai.partner_bank as partner_bank,
|
||||
ai.partner_bank_id as partner_bank_id,
|
||||
sum(case when ai.type in ('out_refund','in_invoice') then
|
||||
ail.quantity * u.factor * -1
|
||||
else
|
||||
|
@ -152,7 +152,7 @@ class account_invoice_report(osv.osv):
|
|||
ai.address_contact_id,
|
||||
ai.address_invoice_id,
|
||||
ai.account_id,
|
||||
ai.partner_bank,
|
||||
ai.partner_bank_id,
|
||||
ai.residual
|
||||
)
|
||||
""")
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<field name="date_due" invisible="1"/>
|
||||
<field name="address_contact_id" invisible="1"/>
|
||||
<field name="address_invoice_id" invisible="1"/>
|
||||
<field name="partner_bank" invisible="1"/>
|
||||
<field name="partner_bank_id" invisible="1"/>
|
||||
<field name="account_id" invisible="1"/>
|
||||
<field name="nbr" sum="# of Lines"/>
|
||||
<field name="product_qty" sum="Qty"/>
|
||||
|
|
|
@ -93,8 +93,8 @@ class account_move_line(osv.osv):
|
|||
context=context)
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
line2bank[line.id] = False
|
||||
if line.invoice and line.invoice.partner_bank:
|
||||
line2bank[line.id] = line.invoice.partner_bank.id
|
||||
if line.invoice and line.invoice.partner_bank_id:
|
||||
line2bank[line.id] = line.invoice.partner_bank_id.id
|
||||
elif line.partner_id:
|
||||
if not line.partner_id.bank_ids:
|
||||
#raise osv.except_osv(_('Error !'), _('Partner '+ line.partner_id.name+ ' has no bank account defined'))
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Setup">
|
||||
<group colspan="4" col="8">
|
||||
<group colspan="3" width="200">
|
||||
<field name="config_logo" widget="image" width="150" height="100" nolabel="1" colspan="1"/>
|
||||
<group colspan="3" width="220">
|
||||
<field name="config_logo" widget="image" width="220" height="130" nolabel="1" colspan="1"/>
|
||||
<newline/>
|
||||
<label align="0.0" string="You can start configuring the system or connect directly to the database as an administrator." width="200" colspan="2"/>
|
||||
</group>
|
||||
|
|
|
@ -23,18 +23,18 @@
|
|||
<attribute name="string">Install Generic Modules</attribute>
|
||||
</separator>
|
||||
<group colspan="8">
|
||||
<field name="crm" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="sale" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
|
||||
<field name="project" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="knowledge" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
|
||||
<field name="stock" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="mrp" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
|
||||
<field name="account" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="purchase" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
|
||||
<field name="hr" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="point_of_sale" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
|
||||
<field name="marketing" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="misc_tools" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
|
||||
<field name="report_designer" groups="base.group_extended" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
|
||||
<field name="crm" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/> <field name="sale" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/>
|
||||
<field name="project" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/> <field name="knowledge" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/>
|
||||
<field name="stock" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/> <field name="mrp" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/>
|
||||
<field name="account" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/> <field name="purchase" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/>
|
||||
<field name="hr" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/> <field name="point_of_sale" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/>
|
||||
<field name="marketing" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/> <field name="misc_tools" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/>
|
||||
<field name="report_designer" groups="base.group_extended" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/>
|
||||
<separator string="Install Specific Business Modules" colspan="4"/>
|
||||
<field name="association" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
|
||||
<field name="profile_auction" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
|
||||
<field name="profile_bookstore" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
|
||||
<field name="product_expiry" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
|
||||
<field name="association" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/>
|
||||
<field name="profile_auction" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/>
|
||||
<field name="profile_bookstore" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/>
|
||||
<field name="product_expiry" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,association,profile_auction,profile_bookstore)"/>
|
||||
</group>
|
||||
</data>
|
||||
</field>
|
||||
|
|
|
@ -115,9 +115,7 @@ class crm_lead(osv.osv, crm_case):
|
|||
'section_id': fields.many2one('crm.case.section', 'Sales Team', \
|
||||
select=True, help='Sales team to which this case belongs to. Defines responsible user and e-mail address for the mail gateway.'),
|
||||
'create_date': fields.datetime('Creation Date' , readonly=True),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These \
|
||||
addresses(Comma-separated) will receive a copy of the future e-mail communication between partner \
|
||||
and users"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'description': fields.text('Notes'),
|
||||
'write_date': fields.datetime('Update Date' , readonly=True),
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
<field name="context">{"search_default_user_id":uid,'search_default_current':1}</field>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_leads_filter"/>
|
||||
<field name="context">{'search_default_current':1, 'default_type': 'lead'}</field>
|
||||
<field name="help">A lead is a first, unqualified, contact with a new prospect. Use leads when you import a database of prospects or integrate your website's contact form with OpenERP. After having been qualified, the lead can be converted to a partner and a business opportunity for a further detailed tracking of the related activities.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_leads_all">
|
||||
|
|
|
@ -165,7 +165,7 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.lead', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
<form string="Communication history">
|
||||
<group col="4" colspan="4">
|
||||
|
@ -187,16 +187,16 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.lead', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</form>
|
||||
</field>
|
||||
<button colspan="2" string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.lead'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
<button colspan="2" string="Forward"
|
||||
name="%(crm_lead_forward_to_partner_act)d"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
icon="terp-mail-forward" type="action" />
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
<field name="view_id" ref="crm_case_calendar_view_meet"/>
|
||||
<field name="context">{"search_default_user_id":uid}</field>
|
||||
<field name="search_view_id" ref="view_crm_case_meetings_filter"/>
|
||||
<field name="help">The calendar of meetings is shared between sales teams and fully integrated with the others applications like the employee holidays. You can also synchronize meetings with your mobile phone using the caldav interface.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_calendar_meet">
|
||||
|
|
|
@ -150,6 +150,19 @@ class crm_opportunity(osv.osv):
|
|||
return {'value':{}}
|
||||
return {'value':{'probability': stage.probability}}
|
||||
|
||||
def onchange_assign_id(self, cr, uid, ids, partner_assigned_id, context={}):
|
||||
"""This function updates the "assignation date" automatically, when manually assign a partner in the geo assign tab
|
||||
@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 stage’s IDs
|
||||
@stage_id: change state id on run time """
|
||||
|
||||
if not partner_assigned_id:
|
||||
return {'value':{'date_assign': False}}
|
||||
else:
|
||||
return {'value':{'date_assign': time.strftime('%Y-%m-%d')}}
|
||||
|
||||
_defaults = {
|
||||
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c),
|
||||
'priority': crm.AVAILABLE_PRIORITIES[2][0],
|
||||
|
|
|
@ -30,6 +30,8 @@
|
|||
<field name="context">{'search_default_user_id':uid,'search_default_current':1, 'default_type': 'opportunity'}</field>
|
||||
<field name="view_id" ref="crm_case_tree_view_oppor"/>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
|
||||
<field name="help">Opportunities allows you to track your best deals pipeline: history of the communication, expected revenues, stage of each opportunity, excepted closings, etc. Opportunities are usually connected with the email gateway: new emails may create opportunities and each opportunity automatically gets the history of the conversation with the customer.
|
||||
Your teams will be able to plan meeting and phonecalls from opportunities, to convert opportunities into quotations, to manage documents related to the opportunity, to track all activities related to this customer, etc.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_oppor11">
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
<field name="planned_revenue"/>
|
||||
<field name="probability"/>
|
||||
<field name="date_deadline" string="Expected Closing"/>
|
||||
<button string="Schedule Call"
|
||||
name="%(opportunity2phonecall_act)d" icon="gtk-redo" type="action" />
|
||||
<button string="Schedule/Log Call"
|
||||
name="%(opportunity2phonecall_act)d" icon="terp-call-start" type="action" />
|
||||
<newline/>
|
||||
<field name="date_action"/>
|
||||
<field name="title_action"/>
|
||||
|
@ -127,7 +127,7 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.lead', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
<form string="Communication history">
|
||||
<group col="4" colspan="4">
|
||||
|
@ -149,16 +149,16 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.lead', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</form>
|
||||
</field>
|
||||
<button colspan="2" string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.lead'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
<button colspan="2" string="Forward to Partner"
|
||||
name="%(crm_lead_forward_to_partner_act)d"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
icon="terp-mail-forward" type="action" />
|
||||
</page>
|
||||
<page string="Extra Info" groups="base.group_extended">
|
||||
<group col="2" colspan="2">
|
||||
|
@ -182,13 +182,13 @@
|
|||
<page string="Assignation" groups="base.group_extended">
|
||||
<group name="partner_assign_group" col="5" colspan="4">
|
||||
<separator string="Partner Assignation" colspan="5"/>
|
||||
<field name="partner_assigned_id"/>
|
||||
<field name="partner_assigned_id" on_change="onchange_assign_id(partner_assigned_id)"/>
|
||||
<field name="date_assign"/>
|
||||
<group colspan="1" col="1">
|
||||
<button string="Forward"
|
||||
attrs="{'invisible':[('partner_assigned_id','=',False)]}"
|
||||
name="%(crm_lead_forward_to_partner_act)d"
|
||||
icon="gtk-go-forward" type="action"
|
||||
icon="terp-mail-forward" type="action"
|
||||
context="{'default_name': 'partner', 'default_partner_id': partner_assigned_id}"
|
||||
/>
|
||||
</group>
|
||||
|
@ -214,6 +214,7 @@
|
|||
<field name="country_id" invisible="context.get('invisible_country', True)" />
|
||||
<field name="date_action"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="partner_assigned_id" invisible="1"/>
|
||||
<button name="stage_previous" string="Previous Stage"
|
||||
states="open,pending" type="object" icon="gtk-go-back" />
|
||||
<button name="stage_next" string="Next Stage"
|
||||
|
@ -328,11 +329,12 @@
|
|||
context="{'group_by':'priority'}" />
|
||||
<filter string="Category" icon="terp-stock_symbol-selection"
|
||||
domain="[]" context="{'group_by':'categ_id'}" />
|
||||
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Salesman" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
<filter string="Team" help="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}"/>
|
||||
<filter string="Assigned Partner" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'partner_assigned_id'}" />
|
||||
<separator orientation="vertical" />
|
||||
<filter string="Creation" icon="terp-go-month"
|
||||
domain="[]" context="{'group_by':'create_date'}" />
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
domain="[('partner_id', '=', active_id)]"
|
||||
groups="base.group_extended"
|
||||
/>
|
||||
|
||||
|
||||
<act_window
|
||||
id="act_crm_phonecall_crm_meeting_new"
|
||||
name="Meetings"
|
||||
|
@ -69,6 +69,8 @@
|
|||
<field name="domain" eval="'[(\'categ_id\',\'=\','+str(ref('categ_phone1'))+')]'"/>
|
||||
<field name="context" eval="'{\'set_editable\':True,\'default_state\':\'open\', \'search_default_current\':1,\'search_default_today\':1, \'default_categ_id\': ' + str(ref('categ_phone1')) +'}'"/>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
|
||||
<field name="help">Trace easily all your Inbound calls. The Inbound menu open a search view in editable mode, so you can easily modify or add a new call record. With the actions buttons convert a lead into an opportunity or plan a meeting.</field>
|
||||
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_phone_incoming0">
|
||||
|
@ -105,6 +107,7 @@
|
|||
<field name="domain" eval="'[(\'categ_id\',\'=\','+str(ref('categ_phone2'))+')]'"/>
|
||||
<field name="context" eval="'{\'default_state\':\'open\', \'search_default_current\':1, \'default_categ_id\': ' + str(ref('categ_phone2')) +'}'"/>
|
||||
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
|
||||
<field name="help">The Outbound menu open a search view in editable mode, so you can easily modify or plan a new call. Actions buttons allows you to to make you call status evolved for a better follow up of your planned calls. During calls, convert your lead into an opportunity, plan a meeting or canceled it.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_phone_outgoing0">
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
<field name="partner_contact"/>
|
||||
<field name="partner_phone"/>
|
||||
<field name="user_id"/>
|
||||
<field name="categ_id" string="Type"/>
|
||||
<button string="Opportunity"
|
||||
name="%(phonecall2opportunity_act)d"
|
||||
states="draft,open,pending"
|
||||
|
@ -107,6 +108,9 @@
|
|||
</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>
|
||||
|
@ -182,6 +186,9 @@
|
|||
</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>
|
||||
|
@ -209,6 +216,9 @@
|
|||
on_change="onchange_partner_address_id(partner_address_id, email_from)" />
|
||||
<field name="partner_phone"/>
|
||||
<field name="user_id"/>
|
||||
<field name="categ_id" widget="selection"
|
||||
domain="[('object_id.model', '=', 'crm.phonecall')]"
|
||||
string="Type" />
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="create_date" invisible="1"/>
|
||||
<button string="Opportunity"
|
||||
|
|
|
@ -556,7 +556,7 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.case.custom', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
<form string="Communication history">
|
||||
<group col="4" colspan="4">
|
||||
|
@ -578,16 +578,16 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.case.custom', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</form>
|
||||
</field>
|
||||
<button colspan="2" string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.case.custom'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
<button colspan="2" string="Forward to Partner"
|
||||
name="%(crm_lead_forward_to_partner_act)d"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
icon="terp-mail-forward" type="action" />
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
|
|
|
@ -7,13 +7,14 @@ msgstr ""
|
|||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
|
||||
"PO-Revision-Date: 2010-06-28 22:26+0000\n"
|
||||
"Last-Translator: Borja López Soilán (Pexego) <borjals@pexego.es>\n"
|
||||
"PO-Revision-Date: 2010-07-18 17:30+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-30 03:34+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-07-19 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm
|
||||
|
@ -94,9 +95,7 @@ msgstr "Nombre de fase"
|
|||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: view:crm.case.history:0
|
||||
#: model:ir.actions.act_window,name:crm.crm_case_categ0-act
|
||||
#: model:ir.actions.act_window,name:crm.crm_case_section_open_act
|
||||
#: model:ir.ui.menu,name:crm.menu_crm_case_categ0-act
|
||||
#: model:ir.ui.menu,name:crm.next_id_51
|
||||
msgid "Cases"
|
||||
msgstr "Casos"
|
||||
|
@ -147,9 +146,6 @@ msgstr "Reparado"
|
|||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
#: code:addons/crm/wizard/crm_job_wizard.py:0
|
||||
#: code:addons/crm/wizard/crm_lead_wizard.py:0
|
||||
#: code:addons/crm/wizard/crm_phonecall_wizard.py:0
|
||||
#, python-format
|
||||
msgid "Warning !"
|
||||
msgstr "Advertencia !"
|
||||
|
@ -206,30 +202,16 @@ msgstr ""
|
|||
"correo para correo de salida."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: field:crm.case,partner_id:0
|
||||
#: model:crm.case.categ,name:crm.categ_lead4
|
||||
#: model:crm.case.categ,name:crm.categ_oppor4
|
||||
#: wizard_field:crm.case.opportunity.partner_opportunity,init,partner_id:0
|
||||
#: field:crm.case.rule,trg_partner_id:0
|
||||
#: selection:crm.email.add.cc,name:0
|
||||
#: field:crm.email.add.cc,partner_id:0
|
||||
#: wizard_field:crm.lead.opportunity_set,create_partner,partner_id:0
|
||||
#: wizard_field:crm.lead.opportunity_set,opportunity,partner_id:0
|
||||
#: view:crm.opportunity:0
|
||||
#: view:crm.phonecall:0
|
||||
#: wizard_field:crm.phonecall.opportunity_set,create_partner,partner_id:0
|
||||
#: wizard_field:crm.phonecall.opportunity_set,opportunity,partner_id:0
|
||||
#: model:process.node,name:crm.process_node_partner0
|
||||
msgid "Partner"
|
||||
msgstr "Empresa"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.categ,section_id:0
|
||||
#: field:crm.case.category2,section_id:0
|
||||
#: view:crm.case.section:0
|
||||
#: field:crm.case.section,name:0
|
||||
#: field:crm.case.stage,section_id:0
|
||||
#: wizard_field:crm.case.section.menu,init,section_id:0
|
||||
#: model:ir.model,name:crm.model_crm_case_section
|
||||
msgid "Case Section"
|
||||
msgstr "Sección del caso"
|
||||
|
@ -284,7 +266,8 @@ msgid "Send New Email"
|
|||
msgstr "Enviar nuevo correo eléctronico"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.history:0
|
||||
#: model:ir.actions.act_window,name:crm.crm_case_history_my-act
|
||||
#: model:ir.ui.menu,name:crm.menu_crm_case_history_my-act
|
||||
msgid "My Histories"
|
||||
msgstr "Mis historias"
|
||||
|
||||
|
@ -340,15 +323,10 @@ msgstr "Categorías"
|
|||
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr "Advertencia!"
|
||||
msgstr "¡Aviso!"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: view:crm.claim:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.job:0
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Dates"
|
||||
msgstr "Fechas"
|
||||
|
||||
|
@ -430,7 +408,6 @@ msgid "Exception Rules"
|
|||
msgstr "Reglas de Excepción"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.menu.config_wizard,opportunity:0
|
||||
#: model:ir.actions.report.xml,name:crm.crm_business_opportunities_report
|
||||
msgid "Business Opportunities"
|
||||
msgstr "Oportunidades de negocio"
|
||||
|
@ -484,12 +461,6 @@ msgstr "Particular"
|
|||
#. module: crm
|
||||
#: field:crm.case,categ_id:0
|
||||
#: field:crm.case.rule,trg_categ_id:0
|
||||
#: wizard_field:crm.job.reschedule_phone_call,init,category_id:0
|
||||
#: view:crm.opportunity:0
|
||||
#: wizard_field:crm.opportunity.reschedule_phone_call,init,category_id:0
|
||||
#: field:report.crm.case.section.categ.categ2,categ_id:0
|
||||
#: field:report.crm.case.section.categ.stage,categ_id:0
|
||||
#: field:report.crm.case.section.stage,categ_id:0
|
||||
msgid "Category"
|
||||
msgstr "Categoría"
|
||||
|
||||
|
@ -521,11 +492,6 @@ msgstr "%(partner)s = Nombre empresa"
|
|||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: view:crm.claim:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.job:0
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Action Information"
|
||||
msgstr "Información de la acción"
|
||||
|
||||
|
@ -554,15 +520,14 @@ msgstr "Condiciones"
|
|||
|
||||
#. module: crm
|
||||
#: model:ir.actions.act_window,name:crm.crm_case_categ0-act_open
|
||||
#: model:ir.ui.menu,name:crm.menu_crm_case_categ0-act_open
|
||||
msgid "Open Cases"
|
||||
msgstr "Casos abiertos"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.log,name:0
|
||||
#: view:crm.claim:0
|
||||
#: view:crm.job:0
|
||||
#: field:crm.case,state:0
|
||||
msgid "Status"
|
||||
msgstr "Posición"
|
||||
msgstr "Estado"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_view:crm.case.opportunity.partner_opportunity,init:0
|
||||
|
@ -592,9 +557,6 @@ msgstr "Árbol de reuniones"
|
|||
#: view:crm.case:0
|
||||
#: selection:crm.case.rule,trg_state_from:0
|
||||
#: selection:crm.case.rule,trg_state_to:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
#, python-format
|
||||
msgid "Escalate"
|
||||
msgstr "Escalado"
|
||||
|
@ -712,8 +674,6 @@ msgstr "Política de reclamaciones"
|
|||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
|
||||
#: code:addons/crm/wizard/wizard_crm_send_email.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You must define a responsible user for this case in order to use this action!"
|
||||
|
@ -759,11 +719,6 @@ msgstr "Setiembre"
|
|||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: view:crm.claim:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.job:0
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Communication history"
|
||||
msgstr "Historial de comunicación"
|
||||
|
||||
|
@ -1191,10 +1146,8 @@ msgid "Next Action"
|
|||
msgstr "Próxima acción"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: field:crm.case,date_deadline:0
|
||||
#: selection:crm.case.rule,trg_date_type:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Deadline"
|
||||
msgstr "Fecha límite"
|
||||
|
||||
|
@ -1371,12 +1324,6 @@ msgstr "%(partner_email)s = Email empresa"
|
|||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: view:crm.claim:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.job:0
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
#: view:crm.phonecall:0
|
||||
msgid "Reset to Draft"
|
||||
msgstr "Cambiar a borrador"
|
||||
|
||||
|
@ -1589,8 +1536,6 @@ msgstr "Esperando respuesta"
|
|||
#: field:crm.case,date:0
|
||||
#: field:crm.case.log,date:0
|
||||
#: selection:crm.case.rule,trg_date_type:0
|
||||
#: view:crm.claim:0
|
||||
#: view:crm.phonecall:0
|
||||
msgid "Date"
|
||||
msgstr "Fecha"
|
||||
|
||||
|
@ -1637,11 +1582,6 @@ msgstr "Dando la ubicacion de la reunion"
|
|||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: view:crm.claim:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.job:0
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "History"
|
||||
msgstr "Historial"
|
||||
|
||||
|
@ -1676,40 +1616,18 @@ msgstr "Enviar recordatorio"
|
|||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.job:0
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "References"
|
||||
msgstr "Referencias"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
#: view:crm.case:0
|
||||
#: wizard_button:crm.case.opportunity.partner_opportunity,init,end:0
|
||||
#: view:crm.claim:0
|
||||
#: view:crm.claim.assign_wizard:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.helpdesk.assign_wizard:0
|
||||
#: wizard_button:crm.job.meeting_set,init,end:0
|
||||
#: wizard_button:crm.job.partner_create,init,end:0
|
||||
#: wizard_button:crm.job.reschedule_phone_call,init,end:0
|
||||
#: view:crm.lead:0
|
||||
#: wizard_button:crm.lead.opportunity_set,create_partner,end:0
|
||||
#: wizard_button:crm.lead.opportunity_set,opportunity,end:0
|
||||
#: wizard_button:crm.lead.partner_create,init,end:0
|
||||
#: view:crm.meeting.generic_wizard:0
|
||||
#: wizard_button:crm.new.send.mail,init,end:0
|
||||
#: view:crm.opportunity:0
|
||||
#: view:crm.opportunity.assign_wizard:0
|
||||
#: wizard_button:crm.opportunity.reschedule_phone_call,init,end:0
|
||||
#: view:crm.phonecall:0
|
||||
#: view:crm.phonecall.assign_wizard:0
|
||||
#: wizard_button:crm.phonecall.meeting_set,init,end:0
|
||||
#: wizard_button:crm.phonecall.opportunity_set,create_partner,end:0
|
||||
#: wizard_button:crm.phonecall.opportunity_set,opportunity,end:0
|
||||
#: wizard_button:crm.phonecall.partner_create,init,end:0
|
||||
#: wizard_button:crm.send.mail,init,end:0
|
||||
#: selection:crm.case,state:0
|
||||
#: selection:crm.case.rule,act_state:0
|
||||
#: selection:crm.case.rule,trg_state_from:0
|
||||
#: selection:crm.case.rule,trg_state_to:0
|
||||
#: wizard_button:crm.case.section.menu,design_menu,end:0
|
||||
#: wizard_button:crm.case.section.menu,init,end:0
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
@ -1824,9 +1742,6 @@ msgid "="
|
|||
msgstr "="
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.job:0
|
||||
#: field:crm.menu.config_wizard,name:0
|
||||
#: field:crm.segmentation,name:0
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
@ -1880,11 +1795,6 @@ msgstr "Seguimiento de errores"
|
|||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: view:crm.case.rule:0
|
||||
#: view:crm.claim:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.job:0
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Actions"
|
||||
msgstr "Acciones"
|
||||
|
||||
|
@ -2151,17 +2061,12 @@ msgstr "Estado del caso"
|
|||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
|
||||
#: code:addons/crm/wizard/wizard_crm_send_email.py:0
|
||||
#, python-format
|
||||
msgid "Send"
|
||||
msgstr "Enviar"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case,priority:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Priority"
|
||||
msgstr "Prioridad"
|
||||
|
||||
|
@ -2207,11 +2112,6 @@ msgstr "Programar una reunión normal o telefónica"
|
|||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
#: code:addons/crm/crm_claim.py:0
|
||||
#: code:addons/crm/crm_helpdesk.py:0
|
||||
#: code:addons/crm/crm_meeting.py:0
|
||||
#: code:addons/crm/crm_opportunity.py:0
|
||||
#: code:addons/crm/crm_phonecall.py:0
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr "¡Error!"
|
||||
|
@ -2461,14 +2361,6 @@ msgstr "Bajo"
|
|||
|
||||
#. module: crm
|
||||
#: field:crm.case,date_closed:0
|
||||
#: selection:crm.case,state:0
|
||||
#: selection:crm.case.rule,act_state:0
|
||||
#: selection:crm.case.rule,trg_state_from:0
|
||||
#: selection:crm.case.rule,trg_state_to:0
|
||||
#: selection:report.crm.case.section.categ.categ2,state:0
|
||||
#: selection:report.crm.case.section.categ.stage,state:0
|
||||
#: selection:report.crm.case.section.categ2,state:0
|
||||
#: selection:report.crm.case.section.stage,state:0
|
||||
msgid "Closed"
|
||||
msgstr "Cerrado"
|
||||
|
||||
|
@ -2655,8 +2547,7 @@ msgstr ""
|
|||
"Está seguro de que desea crear una empresa basada en esta solicitud laboral ?"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_field:crm.lead.opportunity_set,create_partner,action:0
|
||||
#: wizard_field:crm.phonecall.opportunity_set,create_partner,action:0
|
||||
#: field:crm.case.log,name:0
|
||||
msgid "Action"
|
||||
msgstr "Acción"
|
||||
|
||||
|
@ -2704,7 +2595,6 @@ msgstr "Ventas"
|
|||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: view:crm.phonecall:0
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
|
@ -2751,16 +2641,6 @@ msgstr "Todas las oportunidades"
|
|||
#: selection:crm.case.rule,act_state:0
|
||||
#: selection:crm.case.rule,trg_state_from:0
|
||||
#: selection:crm.case.rule,trg_state_to:0
|
||||
#: view:crm.claim:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.job:0
|
||||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
#: view:crm.phonecall:0
|
||||
#: selection:report.crm.case.section.categ.categ2,state:0
|
||||
#: selection:report.crm.case.section.categ.stage,state:0
|
||||
#: selection:report.crm.case.section.categ2,state:0
|
||||
#: selection:report.crm.case.section.stage,state:0
|
||||
#, python-format
|
||||
msgid "Open"
|
||||
msgstr "Abierto"
|
||||
|
@ -2798,16 +2678,6 @@ msgstr "Asistencia/Ayuda"
|
|||
#. module: crm
|
||||
#: field:crm.case,user_id:0
|
||||
#: field:crm.case.rule,trg_user_id:0
|
||||
#: view:crm.claim:0
|
||||
#: field:crm.claim.assign_wizard,user_id:0
|
||||
#: view:crm.fundraising:0
|
||||
#: field:crm.helpdesk.assign_wizard,user_id:0
|
||||
#: view:crm.job:0
|
||||
#: view:crm.meeting:0
|
||||
#: field:crm.meeting.generic_wizard,user_id:0
|
||||
#: view:crm.opportunity:0
|
||||
#: field:crm.opportunity.assign_wizard,user_id:0
|
||||
#: field:crm.phonecall.assign_wizard,user_id:0
|
||||
msgid "Responsible"
|
||||
msgstr "Responsable"
|
||||
|
||||
|
@ -3050,6 +2920,8 @@ msgid "Jobs Hiring Process"
|
|||
msgstr "Proceso de selección de personal"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.actions.act_window,name:crm.crm_case_categ0-act
|
||||
#: model:ir.ui.menu,name:crm.menu_crm_case_categ0-act
|
||||
#: model:ir.ui.menu,name:crm.next_id_52
|
||||
msgid "All Cases"
|
||||
msgstr "Todos los casos"
|
||||
|
@ -3171,7 +3043,6 @@ msgstr ""
|
|||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
#: code:addons/crm/wizard/wizard_cal_subscribe.py:0
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "¡Error!"
|
||||
|
@ -3262,17 +3133,6 @@ msgstr "%(case_subject)s = Asunto del caso"
|
|||
#: field:crm.case,section_id:0
|
||||
#: field:crm.case.log,section_id:0
|
||||
#: field:crm.case.rule,trg_section_id:0
|
||||
#: field:crm.claim.assign_wizard,section_id:0
|
||||
#: field:crm.helpdesk.assign_wizard,section_id:0
|
||||
#: wizard_field:crm.job.reschedule_phone_call,init,section_id:0
|
||||
#: field:crm.meeting.generic_wizard,section_id:0
|
||||
#: field:crm.opportunity.assign_wizard,section_id:0
|
||||
#: wizard_field:crm.opportunity.reschedule_phone_call,init,section_id:0
|
||||
#: field:crm.phonecall.assign_wizard,section_id:0
|
||||
#: field:report.crm.case.section.categ.categ2,section_id:0
|
||||
#: field:report.crm.case.section.categ.stage,section_id:0
|
||||
#: field:report.crm.case.section.categ2,section_id:0
|
||||
#: field:report.crm.case.section.stage,section_id:0
|
||||
msgid "Section"
|
||||
msgstr "Sección"
|
||||
|
||||
|
@ -3303,10 +3163,7 @@ msgid "Your action"
|
|||
msgstr "Su acción"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.category2,name:crm.category_lead3
|
||||
#: field:crm.case.history,email:0
|
||||
#: field:crm.email.add.cc,email:0
|
||||
#: view:crm.job:0
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
|
@ -3363,16 +3220,6 @@ msgstr "Informes"
|
|||
#: selection:crm.case.rule,act_state:0
|
||||
#: selection:crm.case.rule,trg_state_from:0
|
||||
#: selection:crm.case.rule,trg_state_to:0
|
||||
#: view:crm.claim:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.job:0
|
||||
#: view:crm.lead:0
|
||||
#: selection:crm.new.send.mail,init,state:0
|
||||
#: view:crm.opportunity:0
|
||||
#: selection:report.crm.case.section.categ.categ2,state:0
|
||||
#: selection:report.crm.case.section.categ.stage,state:0
|
||||
#: selection:report.crm.case.section.categ2,state:0
|
||||
#: selection:report.crm.case.section.stage,state:0
|
||||
#, python-format
|
||||
msgid "Pending"
|
||||
msgstr "Pendiente"
|
||||
|
@ -3519,9 +3366,23 @@ msgid "All Funds"
|
|||
msgstr "Todos los fondos"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.section,calendar:0
|
||||
#: view:crm.meeting:0
|
||||
#: model:ir.ui.menu,name:crm.menu_crm_case_category_act_meetings
|
||||
#: selection:crm.case.section.menu,design_menu,menu10_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu11_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu12_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu13_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu14_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu15_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu16_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu17_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu1_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu2_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu3_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu4_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu5_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu6_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu7_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu8_option:0
|
||||
#: selection:crm.case.section.menu,design_menu,menu9_option:0
|
||||
msgid "Calendar"
|
||||
msgstr "Calendario"
|
||||
|
||||
|
@ -3567,6 +3428,7 @@ msgstr "Saliente"
|
|||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
#: view:crm.case:0
|
||||
#, python-format
|
||||
msgid "Historize"
|
||||
msgstr "Añadir al historial"
|
||||
|
@ -3594,11 +3456,6 @@ msgstr "Probabilidad de éxito"
|
|||
#: selection:crm.case.rule,act_state:0
|
||||
#: selection:crm.case.rule,trg_state_from:0
|
||||
#: selection:crm.case.rule,trg_state_to:0
|
||||
#: view:crm.meeting:0
|
||||
#: selection:report.crm.case.section.categ.categ2,state:0
|
||||
#: selection:report.crm.case.section.categ.stage,state:0
|
||||
#: selection:report.crm.case.section.categ2,state:0
|
||||
#: selection:report.crm.case.section.stage,state:0
|
||||
#, python-format
|
||||
msgid "Draft"
|
||||
msgstr "Borrador"
|
||||
|
@ -3628,8 +3485,6 @@ msgstr "Normal"
|
|||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
|
||||
#: code:addons/crm/wizard/wizard_crm_send_email.py:0
|
||||
#, python-format
|
||||
msgid "You must put a Partner eMail to use this action!"
|
||||
msgstr "¡Debe indicar un Email de empresa para usar esta acción!"
|
||||
|
@ -3772,8 +3627,6 @@ msgstr "Fase del caso"
|
|||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: view:crm.fundraising:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Estimates"
|
||||
msgstr "Estimaciones"
|
||||
|
||||
|
@ -3785,6 +3638,10 @@ msgstr "Usuario responsable"
|
|||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
#: view:crm.case:0
|
||||
#: selection:crm.case,state:0
|
||||
#: selection:crm.case.rule,act_state:0
|
||||
#: selection:crm.case.rule,trg_state_from:0
|
||||
#: selection:crm.case.rule,trg_state_to:0
|
||||
#, python-format
|
||||
msgid "Close"
|
||||
msgstr "Cerrado"
|
||||
|
@ -3842,14 +3699,9 @@ msgid "% = The '%' Character"
|
|||
msgstr "% = EL '%' caracter"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
#: field:crm.case,name:0
|
||||
#: field:crm.case.history,description:0
|
||||
#: field:crm.case.history,note:0
|
||||
#: view:crm.job:0
|
||||
#: view:crm.meeting:0
|
||||
#: view:crm.opportunity:0
|
||||
#: view:crm.phonecall:0
|
||||
#: field:crm.segmentation,description:0
|
||||
msgid "Description"
|
||||
msgstr "Descripción"
|
||||
|
@ -3900,14 +3752,6 @@ msgstr "_Importar"
|
|||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
#: field:crm.case.log,case_id:0
|
||||
#: field:crm.claim,inherit_case_id:0
|
||||
#: field:crm.fundraising,inherit_case_id:0
|
||||
#: field:crm.helpdesk,inherit_case_id:0
|
||||
#: field:crm.job,inherit_case_id:0
|
||||
#: field:crm.lead,inherit_case_id:0
|
||||
#: field:crm.meeting,inherit_case_id:0
|
||||
#: field:crm.opportunity,inherit_case_id:0
|
||||
#: field:crm.phonecall,inherit_case_id:0
|
||||
#: model:ir.model,name:crm.model_crm_case
|
||||
#: model:res.request.link,name:crm.req_link_case
|
||||
#, python-format
|
||||
|
@ -4031,7 +3875,6 @@ msgstr "Exportar archivo ICS"
|
|||
#. module: crm
|
||||
#: field:crm.case.rule,sequence:0
|
||||
#: field:crm.case.section,sequence:0
|
||||
#: field:crm.case.stage,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "Secuencia"
|
||||
|
||||
|
@ -4202,9 +4045,6 @@ msgstr "Boletín de noticias"
|
|||
#~ msgid "List"
|
||||
#~ msgstr "Lista"
|
||||
|
||||
#~ msgid "Send Partner & Historize"
|
||||
#~ msgstr "Enviar empresa & Añadir historial"
|
||||
|
||||
#~ msgid "All Histories"
|
||||
#~ msgstr "Todos los historiales"
|
||||
|
||||
|
@ -4217,9 +4057,6 @@ msgstr "Boletín de noticias"
|
|||
#~ msgid "Mail to watchers (Cc)"
|
||||
#~ msgstr "Enviar correo a observadores (CC)"
|
||||
|
||||
#~ msgid "crm.case.section.open"
|
||||
#~ msgstr "crm.case.section.open"
|
||||
|
||||
#~ msgid "Deadline Date is automatically computed from Start Date + Duration"
|
||||
#~ msgstr ""
|
||||
#~ "La fecha límite se calcula automáticamente a partir de Fecha de inicio + "
|
||||
|
@ -4233,3 +4070,6 @@ msgstr "Boletín de noticias"
|
|||
#~ msgstr ""
|
||||
#~ "Es posible que desee crear un nuevo menú padre para poner todos los menús "
|
||||
#~ "creados en él."
|
||||
|
||||
#~ msgid "Send Partner & Historize"
|
||||
#~ msgstr "Enviar a empresa y añadir al historial"
|
||||
|
|
|
@ -7,13 +7,13 @@ msgstr ""
|
|||
"Project-Id-Version: OpenERP Server 5.0.6\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
|
||||
"PO-Revision-Date: 2010-07-18 03:06+0000\n"
|
||||
"PO-Revision-Date: 2010-07-19 03:12+0000\n"
|
||||
"Last-Translator: Black Jack <onetimespeed@hotmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-07-18 03:38+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-07-19 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: crm
|
||||
|
@ -32,7 +32,7 @@ msgstr "这属性定义了一个循环的日历组件的例外日期/ 时间列
|
|||
#: help:crm.case.rule,act_mail_to_user:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to send an email to the responsible person."
|
||||
msgstr "如果你想定规则发送电子邮件给负责人选这个"
|
||||
msgstr "选这个, 如果你想规定发送Email给负责人"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
|
@ -42,12 +42,12 @@ msgstr "标题"
|
|||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_report_crm_case_section_categ2
|
||||
msgid "Cases by section and category2"
|
||||
msgstr "分类2和部分业务个案"
|
||||
msgstr "分类2和业务个案细项"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_field:crm.lead.partner_create,init,close:0
|
||||
msgid "Close Lead"
|
||||
msgstr "关闭线索"
|
||||
msgstr "关闭营销线索"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.job:0
|
||||
|
@ -60,27 +60,27 @@ msgstr " 7天 "
|
|||
#. module: crm
|
||||
#: help:crm.menu.config_wizard,helpdesk:0
|
||||
msgid "Manages an Helpdesk service."
|
||||
msgstr "管理求助服务"
|
||||
msgstr "管理求助台服务"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.job:0
|
||||
msgid "Pending Jobs"
|
||||
msgstr "等待的工作"
|
||||
msgstr "悬而未决的工作"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.rule,trg_state_to:0
|
||||
msgid "Button Pressed"
|
||||
msgstr "按下按钮"
|
||||
msgstr "按下的按钮"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
msgid "Planned costs"
|
||||
msgstr "已计划成本"
|
||||
msgstr "计划成本"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_field:crm.job.partner_create,init,close:0
|
||||
msgid "Close job request"
|
||||
msgstr "关闭工作需求"
|
||||
msgstr "关闭工作请求"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.stage,name:0
|
||||
|
@ -100,7 +100,7 @@ msgstr "业务个案"
|
|||
msgid ""
|
||||
"The partner category that will be added to partners that match the "
|
||||
"segmentation criterions after computation."
|
||||
msgstr "业务伙伴分类将加入到与业务伙伴匹配细分标准后处理"
|
||||
msgstr "这业务伙伴分类将加入到符合的业务伙伴细分准则"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.menu_hr
|
||||
|
@ -110,14 +110,14 @@ msgstr "人力资源"
|
|||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_categ_categ2
|
||||
msgid "Cases by Opportunities, Category and Type"
|
||||
msgstr "按商机,分类和进程排列案例"
|
||||
msgstr "业务个案的商机, 分类和类型"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.menu.config_wizard,claims:0
|
||||
msgid ""
|
||||
"Manages the supplier and customers claims, including your corrective or "
|
||||
"preventive actions."
|
||||
msgstr "管理客户和供应商的索求,包括您的纠正或预防措施"
|
||||
msgstr "管理客户和供应商的索赔, 包括您的纠正或预防措施"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.fundraising:0
|
||||
|
@ -145,12 +145,12 @@ msgstr "警告!"
|
|||
#: code:addons/crm/wizard/wizard_crm_new_send_email.py:0
|
||||
#, python-format
|
||||
msgid "Please specify user's email address !"
|
||||
msgstr "请指定用户的电子邮件地址"
|
||||
msgstr "请指定用户的Email地址"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.categ,name:crm.categ_oppor5
|
||||
msgid "Campaign"
|
||||
msgstr "商业活动"
|
||||
msgstr "营销活动"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.opportunity:0
|
||||
|
@ -161,7 +161,7 @@ msgstr "搜索商机"
|
|||
#: model:ir.ui.menu,name:crm.menu_crm_case_section_stage_tree
|
||||
#: view:report.crm.case.section.stage:0
|
||||
msgid "Cases by Section and Stage"
|
||||
msgstr "部分业务个案和阶段"
|
||||
msgstr "业务个案细项和阶段"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_field:crm.job.meeting_set,init,duration:0
|
||||
|
@ -172,7 +172,7 @@ msgstr "持续时间(小时数)"
|
|||
#. module: crm
|
||||
#: selection:crm.meeting,transparent:0
|
||||
msgid "TRANSPARENT"
|
||||
msgstr ""
|
||||
msgstr "显然的"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case.rule,server_action_id:0
|
||||
|
@ -186,7 +186,7 @@ msgstr "动作描述, 例如: 根据哪些条件哪些对象的哪些动作要
|
|||
msgid ""
|
||||
"Section to which Case belongs to. Define Responsible user and Email account "
|
||||
"for mail gateway."
|
||||
msgstr "业务个案属于哪些部分. 定义责任用户和电子邮件帐号的邮件网关."
|
||||
msgstr "属于哪个业务个案细项. 定义责任用户和电子邮件帐号的邮件网关."
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case,partner_id:0
|
||||
|
@ -201,7 +201,7 @@ msgstr "业务伙伴"
|
|||
#: wizard_field:crm.case.section.menu,init,section_id:0
|
||||
#: model:ir.model,name:crm.model_crm_case_section
|
||||
msgid "Case Section"
|
||||
msgstr "业务个案项"
|
||||
msgstr "业务个案细项"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.job:0
|
||||
|
@ -211,7 +211,7 @@ msgstr "建议薪资"
|
|||
#. module: crm
|
||||
#: help:crm.case.section,sequence:0
|
||||
msgid "Gives the sequence order when displaying a list of case sections."
|
||||
msgstr ""
|
||||
msgstr "在显示业务个案细项列表时提供序列顺序"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/wizard/crm_job_wizard.py:0
|
||||
|
@ -224,7 +224,7 @@ msgstr "电话呼叫"
|
|||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_report_crm_case_section_stage
|
||||
msgid "Cases by section and stage"
|
||||
msgstr "业务个案项和阶段"
|
||||
msgstr "业务个案细项和阶段"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.rule,act_mail_to_email:0
|
||||
|
@ -249,7 +249,7 @@ msgstr "内容使用的特别关键字"
|
|||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Send New Email"
|
||||
msgstr "发送新电子邮件"
|
||||
msgstr "发送新Email"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.actions.act_window,name:crm.crm_case_history_my-act
|
||||
|
@ -266,7 +266,7 @@ msgstr "标准"
|
|||
#: model:ir.actions.act_window,name:crm.crm_case_section_act
|
||||
#: model:ir.ui.menu,name:crm.menu_crm_case_section_act
|
||||
msgid "Sections"
|
||||
msgstr "项"
|
||||
msgstr "细项"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.menu.config_wizard,opportunity:0
|
||||
|
@ -291,7 +291,7 @@ msgstr "鉴识"
|
|||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_job3
|
||||
msgid "Second Interview"
|
||||
msgstr "复试"
|
||||
msgstr "第二次面谈"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.actions.wizard,name:crm.wizard_crm_cal_subscribe
|
||||
|
@ -355,7 +355,7 @@ msgstr "耽搁类型"
|
|||
#: view:crm.opportunity:0
|
||||
#: view:crm.phonecall:0
|
||||
msgid "Contact"
|
||||
msgstr "联系"
|
||||
msgstr "联系方式"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.job:0
|
||||
|
@ -365,12 +365,12 @@ msgstr "下次会面"
|
|||
#. module: crm
|
||||
#: field:crm.case.rule,regex_history:0
|
||||
msgid "Regular Expression on Case History"
|
||||
msgstr ""
|
||||
msgstr "业务个案日志的正则表达式"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_crm_email_add_cc
|
||||
msgid "Email Add CC"
|
||||
msgstr ""
|
||||
msgstr "Email地址"
|
||||
|
||||
#. module: crm
|
||||
#: model:process.transition,name:crm.process_transition_opportunitymeeting0
|
||||
|
@ -383,12 +383,12 @@ msgid ""
|
|||
"The channels represent the different communication modes available with the "
|
||||
"customer. With each commercial opportunity, you can indicate the canall "
|
||||
"which is this opportunity source."
|
||||
msgstr ""
|
||||
msgstr "渠道代表与客户不同的沟通, 在每一个商机你能标记出哪个是这机会的来源."
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
msgid "Exception Rules"
|
||||
msgstr ""
|
||||
msgstr "例外规则"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.actions.report.xml,name:crm.crm_business_opportunities_report
|
||||
|
@ -398,14 +398,14 @@ msgstr "商机"
|
|||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_claim1
|
||||
msgid "Accepted as Claim"
|
||||
msgstr ""
|
||||
msgstr "接受作为索赔"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
msgid ""
|
||||
"The rule use a AND operator. The case must match all non empty fields so "
|
||||
"that the rule execute the action described in the 'Actions' tab."
|
||||
msgstr "该规则使用AND操作符.这业务个案必须是非空字段,而且该规则的执行动作描述在动作标签."
|
||||
msgstr "该规则使用AND操作符. 这业务个案必须是非空字段而且该规则的执行动作描述在动作标签."
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case,history_line:0
|
||||
|
@ -415,12 +415,12 @@ msgstr "沟通"
|
|||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
msgid "%(email_from)s = Partner email"
|
||||
msgstr "%(email_from)s = 业务伙伴电子邮箱"
|
||||
msgstr "%(email_from)s = 业务伙伴的Email"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_lead6
|
||||
msgid "Dead"
|
||||
msgstr ""
|
||||
msgstr "死寂的"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
|
@ -449,19 +449,19 @@ msgstr "分类"
|
|||
#: model:ir.ui.menu,name:crm.menu_crm_case_section_categ_stage_tree
|
||||
#: view:report.crm.case.section.categ.stage:0
|
||||
msgid "Cases by Section, Category and Stage"
|
||||
msgstr "按组,分类和阶段排列案例"
|
||||
msgstr "业务个案细项, 分类和阶段"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case.rule,act_mail_to_watchers:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to mark CC(mail to any other person defined "
|
||||
"in actions)."
|
||||
msgstr ""
|
||||
msgstr "选这个, 如果你想这规则标记为cc(在行动定义中发邮件到任何人)"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.meeting,class:0
|
||||
msgid "Privacy"
|
||||
msgstr ""
|
||||
msgstr "隐私"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
|
@ -503,7 +503,7 @@ msgstr "待处理业务个案"
|
|||
#. module: crm
|
||||
#: field:crm.case,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
msgstr "状态"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_view:crm.case.opportunity.partner_opportunity,init:0
|
||||
|
@ -513,7 +513,7 @@ msgstr ""
|
|||
#: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity
|
||||
#: model:ir.actions.wizard,name:crm.wizard_partner_create_opportunity1
|
||||
msgid "Create Opportunity"
|
||||
msgstr "创造商机"
|
||||
msgstr "建立商机"
|
||||
|
||||
#. module: crm
|
||||
#: selection:report.crm.case.section.categ.categ2,month:0
|
||||
|
@ -521,7 +521,7 @@ msgstr "创造商机"
|
|||
#: selection:report.crm.case.section.categ2,month:0
|
||||
#: selection:report.crm.case.section.stage,month:0
|
||||
msgid "August"
|
||||
msgstr "八月"
|
||||
msgstr "8月"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
|
@ -545,13 +545,13 @@ msgstr "所有会议"
|
|||
#. module: crm
|
||||
#: model:ir.module.module,shortdesc:crm.module_meta_information
|
||||
msgid "Customer & Supplier Relationship Management"
|
||||
msgstr "业务关系管理"
|
||||
msgstr "客户&供应商关系管理"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.email.add.cc:0
|
||||
#: model:ir.actions.act_window,name:crm.action_view_crm_email_add_cc_wizard
|
||||
msgid "Add CC"
|
||||
msgstr ""
|
||||
msgstr "加入cc"
|
||||
|
||||
#. module: crm
|
||||
#: selection:report.crm.case.section.categ.categ2,month:0
|
||||
|
@ -559,7 +559,7 @@ msgstr ""
|
|||
#: selection:report.crm.case.section.categ2,month:0
|
||||
#: selection:report.crm.case.section.stage,month:0
|
||||
msgid "June"
|
||||
msgstr "六月"
|
||||
msgstr "6月"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.segmentation,som_interval_default:0
|
||||
|
@ -569,7 +569,7 @@ msgstr "默认(0=无)"
|
|||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_job7
|
||||
msgid "Refused by Company"
|
||||
msgstr ""
|
||||
msgstr "公司拒绝"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case,planned_revenue:0
|
||||
|
@ -587,12 +587,12 @@ msgstr "允许删除"
|
|||
#: selection:report.crm.case.section.categ2,month:0
|
||||
#: selection:report.crm.case.section.stage,month:0
|
||||
msgid "October"
|
||||
msgstr "十月"
|
||||
msgstr "10月"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_oppor3
|
||||
msgid "Value Proposition"
|
||||
msgstr ""
|
||||
msgstr "价格建议"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
|
@ -620,7 +620,7 @@ msgstr "允许显示日程表。"
|
|||
#: view:crm.opportunity:0
|
||||
#: view:crm.phonecall:0
|
||||
msgid " Today "
|
||||
msgstr ""
|
||||
msgstr " 今天 "
|
||||
|
||||
#. module: crm
|
||||
#: wizard_view:crm.job.reschedule_phone_call,init:0
|
||||
|
@ -638,12 +638,12 @@ msgstr "业务个案分类"
|
|||
msgid ""
|
||||
"Default state of mind for period preceeding the 'Max Interval' computation. "
|
||||
"This is the starting state of mind by default if the partner has no event."
|
||||
msgstr "默认满意度在周期前以最大间隔计算.如果这业务伙伴没有事件这是默认开始满意度"
|
||||
msgstr "前期的默认满意度以'最大间隔'计算. 如果业务伙伴没有事件这是默认的开始满意度"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.categ,name:crm.categ_claim3
|
||||
msgid "Policy Claims"
|
||||
msgstr ""
|
||||
msgstr "保险索赔"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:0
|
||||
|
@ -678,7 +678,7 @@ msgstr "职位招聘流程"
|
|||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Related Cases"
|
||||
msgstr ""
|
||||
msgstr "相关的业务个案"
|
||||
|
||||
#. module: crm
|
||||
#: selection:report.crm.case.section.categ.categ2,month:0
|
||||
|
@ -686,22 +686,22 @@ msgstr ""
|
|||
#: selection:report.crm.case.section.categ2,month:0
|
||||
#: selection:report.crm.case.section.stage,month:0
|
||||
msgid "September"
|
||||
msgstr "九月"
|
||||
msgstr "9月"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case:0
|
||||
msgid "Communication history"
|
||||
msgstr "交流记录"
|
||||
msgstr "沟通日志"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.claim:0
|
||||
msgid "New Claims"
|
||||
msgstr ""
|
||||
msgstr "新的索赔"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
msgid "Meetings Form"
|
||||
msgstr "会议表"
|
||||
msgstr "会议"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.stage,name:crm.stage_oppor5
|
||||
|
@ -712,17 +712,17 @@ msgstr "协商/审查"
|
|||
#: code:addons/crm/wizard/crm_phonecall_wizard.py:0
|
||||
#, python-format
|
||||
msgid "A partner is already defined on this phonecall."
|
||||
msgstr ""
|
||||
msgstr "在这电话呼叫中一个业务伙伴已定义"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.menu_action_report_crm_case_oppor_stage
|
||||
msgid "Cases by Opportunities and Stage"
|
||||
msgstr "按商机和阶段排列案例"
|
||||
msgstr "商机和阶段"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.claim:0
|
||||
msgid "Date of Claim"
|
||||
msgstr ""
|
||||
msgstr "索赔日期"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.segmentation.line:0
|
||||
|
@ -732,12 +732,12 @@ msgstr "业务伙伴细分明细"
|
|||
#. module: crm
|
||||
#: model:ir.actions.act_window,name:crm.crm_case_category_act_leads_all
|
||||
msgid "All Leads"
|
||||
msgstr "所有线索"
|
||||
msgstr "所有营销线索"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead:0
|
||||
msgid "Leads Form"
|
||||
msgstr "线索单"
|
||||
msgstr "营销线索表"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.segmentation:0
|
||||
|
@ -753,12 +753,12 @@ msgstr "已签订合同"
|
|||
#. module: crm
|
||||
#: wizard_view:caldav.crm.subscribe,init:0
|
||||
msgid "Subscribe to Remote ICS"
|
||||
msgstr ""
|
||||
msgstr "预约远程ICS"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.category2,name:crm.category_oppor1
|
||||
msgid "Existing Business"
|
||||
msgstr ""
|
||||
msgstr "现有生意"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case,probability:0
|
||||
|
@ -769,14 +769,14 @@ msgstr "概率(%)"
|
|||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_crm_lead
|
||||
msgid "Leads Cases"
|
||||
msgstr ""
|
||||
msgstr "营销线索业务个案"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case.section,reply_to:0
|
||||
msgid ""
|
||||
"The email address put in the 'Reply-To' of all emails sent by Open ERP about "
|
||||
"cases in this section"
|
||||
msgstr "这电子邮件地址设定在这业务个案项所有'回复'的电子邮件"
|
||||
msgstr "这电子邮件地址设定在这业务个案细项所有'回复'的电子邮件"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
|
@ -804,7 +804,7 @@ msgstr "商机"
|
|||
#: view:crm.lead:0
|
||||
#: view:crm.opportunity:0
|
||||
msgid "Emails"
|
||||
msgstr "电子邮件"
|
||||
msgstr "Emails"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.category2,name:crm.category_lead7
|
||||
|
@ -819,12 +819,12 @@ msgstr "停止处理"
|
|||
#. module: crm
|
||||
#: model:crm.case.categ,name:crm.categ_claim1
|
||||
msgid "Factual Claims"
|
||||
msgstr ""
|
||||
msgstr "实际索赔"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.phonecall:0
|
||||
msgid "Search Phonecalls"
|
||||
msgstr ""
|
||||
msgstr "查询电话呼叫"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_button:crm.lead.opportunity_set,create_partner,create:0
|
||||
|
@ -835,7 +835,7 @@ msgstr "继续"
|
|||
#. module: crm
|
||||
#: field:crm.segmentation,som_interval:0
|
||||
msgid "Days per Periode"
|
||||
msgstr "周期天数"
|
||||
msgstr "每个期间的天数"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.segmentation.line,expr_value:0
|
||||
|
@ -845,7 +845,7 @@ msgstr "值"
|
|||
#. module: crm
|
||||
#: help:caldav.crm.export,init,name:0
|
||||
msgid "Save in .ics format"
|
||||
msgstr ""
|
||||
msgstr "保持为.ics格式"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_field:crm.new.send.mail,init,text:0
|
||||
|
@ -859,7 +859,7 @@ msgid ""
|
|||
"Check if the category is limited to partners that match the segmentation "
|
||||
"criterions. If checked, remove the category from partners that doesn't match "
|
||||
"segmentation criterions"
|
||||
msgstr "检查如果分类是仅限于业务伙伴匹配的细分标准.如果选中,将在分类中移去不匹配的业务伙伴"
|
||||
msgstr "检查如果这分类是在与业务伙伴匹配的细分标准. 如果选中, 将在分类中移去不匹配的业务伙伴"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.segmentation,exclusif:0
|
||||
|
@ -871,7 +871,7 @@ msgstr "唯一的"
|
|||
msgid ""
|
||||
"Category related to the section.Subdivide the CRM cases independently or "
|
||||
"section-wise."
|
||||
msgstr ""
|
||||
msgstr "这细项有关的分类, 把这CRM的业务个案独立细分或分为细项"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.rule,act_state:0
|
||||
|
@ -907,12 +907,12 @@ msgstr "触发日期"
|
|||
#. module: crm
|
||||
#: view:crm.case.history:0
|
||||
msgid "Search Histories"
|
||||
msgstr "搜索历史记录"
|
||||
msgstr "搜索日志"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case.stage,sequence:0
|
||||
msgid "Gives the sequence order when displaying a list of case stages."
|
||||
msgstr ""
|
||||
msgstr "在显示业务个案阶段列表时提供序列顺序"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.section,name:crm.section_support3
|
||||
|
@ -920,12 +920,12 @@ msgstr ""
|
|||
#: model:ir.ui.menu,name:crm.menu_crm_case_opp
|
||||
#: model:process.node,name:crm.process_node_opportunities0
|
||||
msgid "Opportunities"
|
||||
msgstr "商机列表"
|
||||
msgstr "商机"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.segmentation,name:0
|
||||
msgid "The name of the segmentation."
|
||||
msgstr "细分名称"
|
||||
msgstr "细分的名称"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.rule,trg_partner_categ_id:0
|
||||
|
@ -936,7 +936,7 @@ msgstr "业务伙伴分类"
|
|||
#. module: crm
|
||||
#: field:crm.segmentation,sales_purchase_active:0
|
||||
msgid "Use The Sales Purchase Rules"
|
||||
msgstr "使用的销售采购规则"
|
||||
msgstr "使用这销售采购规则"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.segmentation.line,expr_name:0
|
||||
|
@ -954,7 +954,7 @@ msgstr ""
|
|||
msgid ""
|
||||
"These people will receive a copy of the future communication between partner "
|
||||
"and users by email"
|
||||
msgstr ""
|
||||
msgstr "这些人将收到业务伙伴和用户未来通信的邮件副本"
|
||||
|
||||
#. module: crm
|
||||
#: selection:report.crm.case.section.categ.categ2,month:0
|
||||
|
@ -962,12 +962,12 @@ msgstr ""
|
|||
#: selection:report.crm.case.section.categ2,month:0
|
||||
#: selection:report.crm.case.section.stage,month:0
|
||||
msgid "March"
|
||||
msgstr "三月"
|
||||
msgstr "3月"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
msgid "Server Action to be Triggered"
|
||||
msgstr ""
|
||||
msgstr "服务器动作被触发"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.actions.act_window,name:crm.crm_case_rule-act
|
||||
|
@ -979,7 +979,7 @@ msgstr "规则"
|
|||
#: wizard_view:crm.job.meeting_set,init:0
|
||||
#: wizard_view:crm.phonecall.meeting_set,init:0
|
||||
msgid "Plan Meeting"
|
||||
msgstr ""
|
||||
msgstr "计划会议"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_field:crm.new.send.mail,init,state:0
|
||||
|
@ -1010,12 +1010,12 @@ msgstr "<"
|
|||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
msgid "%(case_description)s = Case description"
|
||||
msgstr "%(case_description)s = 案例描述"
|
||||
msgstr "%(case_description)s = 业务个案描述"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.fundraising:0
|
||||
msgid "My Funds"
|
||||
msgstr ""
|
||||
msgstr "我的款项"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case,partner_mobile:0
|
||||
|
@ -1046,7 +1046,7 @@ msgstr "初级软件开发人员"
|
|||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
msgid "My Meetings"
|
||||
msgstr "我的会议列表"
|
||||
msgstr "我的会议"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.case.categ,name:0
|
||||
|
@ -1061,12 +1061,12 @@ msgstr "预防"
|
|||
#. module: crm
|
||||
#: field:crm.case.rule,act_email_cc:0
|
||||
msgid "Add watchers (Cc)"
|
||||
msgstr "新增关注者"
|
||||
msgstr "新增关注者(Cc)"
|
||||
|
||||
#. module: crm
|
||||
#: wizard_view:caldav.crm.export,init:0
|
||||
msgid "Export ICS"
|
||||
msgstr ""
|
||||
msgstr "输出ICS"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm_claim.py:0
|
||||
|
@ -1076,13 +1076,13 @@ msgstr ""
|
|||
#: code:addons/crm/crm_phonecall.py:0
|
||||
#, python-format
|
||||
msgid "You can not assign Closed Case."
|
||||
msgstr ""
|
||||
msgstr "你不能指定结束的业务个案"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case.rule,act_remind_partner:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to send a reminder by email to the partner."
|
||||
msgstr "如果你想发提醒电子邮件给业务伙伴勾选此项"
|
||||
msgstr "勾选此项, 如果你想发提醒电子邮件给业务伙伴"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm_meeting.py:0
|
||||
|
@ -1092,7 +1092,7 @@ msgstr "如果你想发提醒电子邮件给业务伙伴勾选此项"
|
|||
#: view:crm.meeting:0
|
||||
#, python-format
|
||||
msgid "Meetings"
|
||||
msgstr ""
|
||||
msgstr "会议"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.case.rule:0
|
||||
|
|
|
@ -97,6 +97,7 @@ class crm_lead_report(osv.osv):
|
|||
'delay_expected': fields.float('Overpassed Deadline',digits=(16,2),readonly=True, group_operator="avg"),
|
||||
'probability': fields.float('Probability',digits=(16,2),readonly=True, group_operator="avg"),
|
||||
'planned_revenue': fields.float('Planned Revenue',digits=(16,2),readonly=True),
|
||||
'probable_revenue': fields.float('Probable Revenue', digits=(16,2),readonly=True),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category',\
|
||||
domain="[('section_id','=',section_id),\
|
||||
('object_id.model', '=', 'crm.lead')]" , readonly=True),
|
||||
|
@ -144,6 +145,7 @@ class crm_lead_report(osv.osv):
|
|||
c.partner_id,
|
||||
c.country_id,
|
||||
c.planned_revenue,
|
||||
c.planned_revenue*(c.probability/100) as probable_revenue,
|
||||
1 as nbr,
|
||||
0 as avg_answers,
|
||||
0.0 as perc_done,
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Leads by user and section Search View -->
|
||||
|
||||
<record id="view_report_crm_lead_filter" model="ir.ui.view">
|
||||
|
@ -175,6 +175,7 @@
|
|||
<field name="delay_close" sum='Delay to close'/>
|
||||
<field name="delay_expected"/>
|
||||
<field name="probability" widget="progressbar"/>
|
||||
<field name="probable_revenue"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -188,6 +189,7 @@
|
|||
<field name="context">{'search_default_lead':1, "search_default_user":1,"search_default_this_month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="domain">[('type', '=', 'lead')]</field>
|
||||
<field name="help">Leads Analysis allows you to consult different informations relative to CRM. Check for treatments delays, number of responses given and emails send. You can sort out your leads analysis on different groups to get fine grained analysis.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_lead_tree">
|
||||
|
@ -211,6 +213,7 @@
|
|||
<field name="context">{"search_default_opportunity": 1, "search_default_user":1,"search_default_this_month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="domain">[('type', '=', 'opportunity')]</field>
|
||||
<field name="help">Opportunities Analysis menu gives you an instant access to your opportunities like expected revenue, planned cost, overpassed deadline or the number of exchanges by opportunity.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_opportunity_tree">
|
||||
|
|
|
@ -171,6 +171,7 @@
|
|||
<field name="context">{"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="view_id" ref="view_report_crm_phonecall_tree"/>
|
||||
<field name="search_view_id" ref="view_report_crm_phonecall_filter"/>
|
||||
<field name="help">Get an anlysis of Phone Calls number and delay to close, stage, user suits to different groups for a global or a fine grained analysis.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_phonecall_tree">
|
||||
|
|
|
@ -186,13 +186,15 @@ class crm_lead_forward_to_partner(osv.osv_memory):
|
|||
to_write.update({'user_id' : this.user_id.id})
|
||||
email_re = r'([^ ,<@]+@[^> ,]+)'
|
||||
email_cc = re.findall(email_re, case.email_cc or '')
|
||||
new_cc = ''
|
||||
new_cc = []
|
||||
if case.email_cc:
|
||||
new_cc.append(case.email_cc)
|
||||
for to in this.email_to.split(','):
|
||||
email_to = re.findall(email_re, to)
|
||||
email_to = email_to and email_to[0] or ''
|
||||
if email_to not in email_cc:
|
||||
new_cc += ', ' + to
|
||||
to_write.update({'email_cc' : case.email_cc and case.email_cc + new_cc})
|
||||
new_cc.append(to)
|
||||
to_write.update({'email_cc' : ', '.join(new_cc) })
|
||||
case_pool.write(cr, uid, case.id, to_write, context=context)
|
||||
|
||||
return {}
|
||||
|
|
|
@ -79,6 +79,7 @@ class crm_lead2opportunity(osv.osv_memory):
|
|||
'probability': this.probability,
|
||||
'name': this.name,
|
||||
'partner_id': this.partner_id.id,
|
||||
'user_id': (this.partner_id.user_id and this.partner_id.user_id.id) or (lead.user_id and lead.user_id.id),
|
||||
'type': 'opportunity'
|
||||
}
|
||||
lead_obj.write(cr, uid, lead.id, vals, context=context)
|
||||
|
|
|
@ -33,6 +33,9 @@ class crm_opportunity2phonecall(osv.osv_memory):
|
|||
'user_id' : fields.many2one('res.users', "Assign To"),
|
||||
'date': fields.datetime('Date' , required=True),
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category', required=True, \
|
||||
domain="[('section_id','=',section_id),\
|
||||
('object_id.model', '=', 'crm.phonecall')]"),
|
||||
}
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
|
@ -47,6 +50,12 @@ class crm_opportunity2phonecall(osv.osv_memory):
|
|||
@return : default values of fields.
|
||||
"""
|
||||
opp_obj = self.pool.get('crm.lead')
|
||||
categ_id = False
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
res_id = data_obj._get_id(cr, uid, 'crm', 'categ_phone2')
|
||||
if res_id:
|
||||
categ_id = data_obj.browse(cr, uid, res_id, context=context).res_id
|
||||
|
||||
record_ids = context and context.get('active_ids', []) or []
|
||||
res = super(crm_opportunity2phonecall, self).default_get(cr, uid, fields, context=context)
|
||||
for opp in opp_obj.browse(cr, uid, record_ids, context=context):
|
||||
|
@ -56,6 +65,8 @@ class crm_opportunity2phonecall(osv.osv_memory):
|
|||
res.update({'user_id': opp.user_id and opp.user_id.id or False})
|
||||
if 'section_id' in fields:
|
||||
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})
|
||||
return res
|
||||
|
||||
def action_cancel(self, cr, uid, ids, context=None):
|
||||
|
@ -90,8 +101,6 @@ class crm_opportunity2phonecall(osv.osv_memory):
|
|||
res = mod_obj.read(cr, uid, result, ['res_id'])
|
||||
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
categ_id = mod_obj._get_id(cr, uid, 'crm', 'categ_phone1')
|
||||
categ_id = data_obj.browse(cr, uid, categ_id, context=context).res_id
|
||||
|
||||
# Select the view
|
||||
id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_phone_tree_view')
|
||||
|
@ -107,10 +116,10 @@ class crm_opportunity2phonecall(osv.osv_memory):
|
|||
'name' : opp.name,
|
||||
'case_id' : opp.id ,
|
||||
'user_id' : this.user_id and this.user_id.id or False,
|
||||
'categ_id' : categ_id,
|
||||
'categ_id' : this.categ_id.id,
|
||||
'description' : opp.description or False,
|
||||
'date' : this.date,
|
||||
'section_id' : opp.section_id and opp.section_id.id or False,
|
||||
'section_id' : this.section_id.id or opp.section_id.id or False,
|
||||
'partner_id': opp.partner_id and opp.partner_id.id or False,
|
||||
'partner_address_id': opp.partner_address_id and opp.partner_address_id.id or False,
|
||||
'partner_phone' : opp.phone or (opp.partner_address_id and opp.partner_address_id.phone or False),
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
<newline/>
|
||||
<field name="user_id" />
|
||||
<field name="section_id"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/>
|
||||
<separator string="" colspan="4"/>
|
||||
<label string ="" colspan="2"/>
|
||||
<button name="action_cancel" string="_Cancel"
|
||||
|
|
|
@ -48,7 +48,7 @@ class crm_send_new_email(osv.osv_memory):
|
|||
'email_to' : fields.char('To', size=512, required=True),
|
||||
'email_from' : fields.char('From', size=128, required=True),
|
||||
'reply_to' : fields.char('Reply To', size=128, required=True, help="Reply-to of the Sales team defined on this case"),
|
||||
'email_cc' : fields.char('CC', size=512, help="Carbon Copy: list of recipients that will receive a copy of this mail"),
|
||||
'email_cc' : fields.char('CC', size=512, help="These addresses will receive a copy of this email. To modify the permanent CC list, edit the global CC field of this case"),
|
||||
'subject': fields.char('Subject', size=512, required=True),
|
||||
'body': fields.text('Message Body', required=True),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, string='Set New State To', required=True),
|
||||
|
|
|
@ -75,7 +75,7 @@ class crm_claim(osv.osv, crm.crm_case):
|
|||
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
|
||||
# domain="[('partner_id','=',partner_id)]"
|
||||
),
|
||||
'email_cc': fields.text('Watchers Emails', size=252, help="These addresses(Comma-separated) will receive a copy of the future communication between partner and users"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'partner_name': fields.char("Employee's Name", size=64),
|
||||
'partner_mobile': fields.char('Mobile', size=32),
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
<field name="view_id" ref="crm_case_claims_tree_view"/>
|
||||
<field name="context">{"search_default_section_id":section_id,"search_default_current":1,"search_default_user_id":uid}</field>
|
||||
<field name="search_view_id" ref="crm_claim.view_crm_case_claims_filter"/>
|
||||
<field name="help">Record and trace your customers' claims here. A claim is defined by a client name, several types, a status and a priority level. A claim can also be a preventive or repairing action. A claim can be linked to a reference like a sales order, or a lot. You can send emails with attachments and get the history of the claim treatment (emails send, interventions type, etc.). </field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_claim0">
|
||||
|
|
|
@ -175,7 +175,7 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.claim', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
<form string="Communication history">
|
||||
<group col="4" colspan="4">
|
||||
|
@ -197,7 +197,7 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.claim', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</form>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
|
|
|
@ -46,7 +46,7 @@ class crm_fundraising(osv.osv, crm.crm_case):
|
|||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
|
||||
domain="[('partner_id','=',partner_id)]"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These addresses(Comma-separated) will receive a copy of the future communication between partner and users"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'date': fields.datetime('Date'),
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
<field name="view_id" ref="crm_fundraising.crm_case_tree_view_fund"/>
|
||||
<field name="context">{"search_default_user_id":uid,"search_default_current":1}</field>
|
||||
<field name="search_view_id" ref="crm_fundraising.view_crm_case_fund_filter"/>
|
||||
<field name="help">When you wish to support your organization or a campaign, trace here all your activities for collecting money. The menu open a search list where you can find funds description, email, history, probability of success. Several actions buttons allows you to easily modify your different fund status.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_fund_all1">
|
||||
|
|
|
@ -165,7 +165,7 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.fundraising', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
<form string="Communication history">
|
||||
<group col="4" colspan="4">
|
||||
|
@ -187,13 +187,13 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.fundraising', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</form>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.fundraising'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
</page>
|
||||
<page string="Extra Info" groups="base.group_extended">
|
||||
<group col="2" colspan="2">
|
||||
|
|
|
@ -181,10 +181,10 @@
|
|||
<field name="context">{"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="view_id" ref="view_report_crm_fundraising_tree"/>
|
||||
<field name="search_view_id" ref="view_report_crm_fundraising_filter"/>
|
||||
<field name="help">With Fund Raising get at a glance a view to your fund raising campaigns with the estimated revenue, average probability and delay to close.</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_fundrising_tree">
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_fundrising_tree">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_report_crm_fundraising_tree"/>
|
||||
|
|
|
@ -49,7 +49,7 @@ class crm_helpdesk(osv.osv, crm.crm_case):
|
|||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
|
||||
domain="[('partner_id','=',partner_id)]"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These addresses(Comma-separated) will receive a copy of the future communication between partner and users"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'date': fields.datetime('Date'),
|
||||
'ref' : fields.reference('Reference', selection=crm._links_get, size=128),
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
<field name="view_id" ref="crm_case_tree_view_helpdesk"/>
|
||||
<field name="context">{"search_default_user_id":uid}</field>
|
||||
<field name="search_view_id" ref="view_crm_case_helpdesk_filter"/>
|
||||
<field name="help">Alike records and processing of claims, Helpdesk and Support is a good tool to trace your interventions. This menu is more adapted to an oral communication, which is not necessarily related to a claim. Select a customer, add notes and categorize your interventions with a channel and a priority level.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_crm_sec_tree_view_act111">
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.helpdesk', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
<form string="Communication history">
|
||||
<group col="4" colspan="4">
|
||||
|
@ -125,13 +125,13 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'crm.helpdesk', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</form>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.helpdesk'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
</page>
|
||||
<page string="Extra Info" groups="base.group_extended">
|
||||
<group colspan="2" col="2">
|
||||
|
|
|
@ -163,6 +163,7 @@
|
|||
<field name="view_mode">tree,graph</field>
|
||||
<field name="view_id" ref="view_report_crm_helpdesk_tree"/>
|
||||
<field name="search_view_id" ref="view_report_crm_helpdesk_filter"/>
|
||||
<field name="help">Helpdesk allows you to consult different informations relative to support demands. Check for treatments delays, number of responses given and emails send and costs. You can sort out your analysis on different groups to get fine grained analysis.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_report_crm_helpdesk_tree">
|
||||
|
|
|
@ -114,7 +114,7 @@
|
|||
<blockTable colWidths="287.0,254.0" repeatRows="1" style="Tableau1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">Invoiced to</para>
|
||||
<para style="terp_default_Bold_9">[[ o.sale_id and o.sale_id.partner_invoice_id and 'Invoiced to' or '' ]]</para>
|
||||
<para style="terp_default_9">[[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.partner_id.name or '']]</para>
|
||||
<para style="terp_default_9">[[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.name or '']]</para>
|
||||
<para style="terp_default_9">[[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.street or '']]</para>
|
||||
|
|
|
@ -317,6 +317,8 @@
|
|||
<field name="res_model">ir.attachment</field>
|
||||
<field name="name">Document</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="search_view_id" ref="view_attach_filter"/>
|
||||
<field name="help">Documents give your access to all attached documents; it's a repository of all attached documents (mails, documents attached to a project, etc.)</field>
|
||||
</record>
|
||||
<menuitem name="Documents" id="menu_document_doc" parent="knowledge.menu_document" sequence="0"/>
|
||||
<menuitem
|
||||
|
|
|
@ -222,11 +222,11 @@ class event_event(osv.osv):
|
|||
'mail_auto_confirm': fields.boolean('Mail Auto Confirm', readonly=False, states={'done': [('readonly', True)]}, help='Check this box if you want ot use the automatic confirmation emailing or the reminder'),
|
||||
'mail_registr': fields.text('Registration Email', readonly=False, states={'done': [('readonly', True)]}, help='This email will be sent when someone subscribes to the event.'),
|
||||
'mail_confirm': fields.text('Confirmation Email', readonly=False, states={'done': [('readonly', True)]}, help="This email will be sent when the event gets confimed or when someone subscribes to a confirmed event. This is also the email sent to remind someone about the event."),
|
||||
'product_id': fields.many2one('product.product', 'Product', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="Product which is provided cost of event. Invoice of event will be created with this Product."),
|
||||
'product_id': fields.many2one('product.product', 'Product', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="The invoices of this event registration will be created with this Product. Thus it allows you to set the default label and the accounting info you want by default on these invoices."),
|
||||
'note': fields.text('Notes', help="Description or Summary of Event", readonly=False, states={'done': [('readonly', True)]}),
|
||||
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', readonly=True, states={'draft': [('readonly', False)]}, help="Pricelist version for current event."),
|
||||
'unit_price': fields.related('product_id', 'list_price', type='float', string='Registration Cost', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'main_speaker_id': fields.many2one('res.partner','Main Speaker', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'unit_price': fields.related('product_id', 'list_price', type='float', string='Registration Cost', readonly=True, states={'draft':[('readonly',False)]}, help="This will be the default price used as registration cost when invoicing this event. Note that you can specify for each registration a specific amount if you want to"),
|
||||
'main_speaker_id': fields.many2one('res.partner','Main Speaker', readonly=False, states={'done': [('readonly', True)]}, help="Speaker who are giving speech on event."),
|
||||
'speaker_ids':fields.many2many('res.partner', 'event_speaker_rel', 'speaker_id', 'partner_id', 'Other Speakers', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'address_id': fields.many2one('res.partner.address','Location Address', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'speaker_confirmed': fields.boolean('Speaker Confirmed', readonly=False, states={'done': [('readonly', True)]}),
|
||||
|
@ -285,7 +285,7 @@ class event_registration(osv.osv):
|
|||
"""Event Registration"""
|
||||
_name= 'event.registration'
|
||||
_description = __doc__
|
||||
_inherit = 'crm.meeting'
|
||||
_inherit = 'mailgate.thread'
|
||||
|
||||
def _amount_line(self, cr, uid, ids, field_name, arg, context=None):
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
|
@ -300,9 +300,10 @@ class event_registration(osv.osv):
|
|||
|
||||
_columns = {
|
||||
'name': fields.char('Summary', size=124, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'email_cc': fields.text('CC', size=252 , readonly=False, states={'done': [('readonly', True)]}, help="These people will receive a copy of the future communication between partner and users by email"),
|
||||
'email_cc': fields.text('CC', size=252 , readonly=False, states={'done': [('readonly', True)]}, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'nb_register': fields.integer('Quantity', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="Number of Registrations or Tickets"),
|
||||
'event_id': fields.many2one('event.event', 'Event Related', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}),
|
||||
"partner_invoice_id": fields.many2one('res.partner', 'Partner Invoiced', readonly=True, states={'draft': [('readonly', False)]}),
|
||||
"contact_id": fields.many2one('res.partner.contact', 'Partner Contact', readonly=False, states={'done': [('readonly', True)]}), #TODO: filter only the contacts that have a function into the selected partner_id
|
||||
"unit_price": fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Event Price'), readonly=True, states={'draft': [('readonly', False)]}),
|
||||
|
@ -314,16 +315,30 @@ class event_registration(osv.osv):
|
|||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'ref': fields.reference('Reference', selection=crm._links_get, size=128),
|
||||
'ref2': fields.reference('Reference 2', selection=crm._links_get, size=128),
|
||||
'email_from': fields.char('Email', size=128, states={'done': [('readonly', True)]}, help="These people will receive email."),
|
||||
'create_date': fields.datetime('Creation Date' , readonly=True),
|
||||
'write_date': fields.datetime('Write Date' , readonly=True),
|
||||
'description': fields.text('Description', states={'done': [('readonly', True)]}),
|
||||
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
|
||||
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('model','=',_name)]),
|
||||
'date_deadline': fields.related('event_id','date_end', type='datetime', string="End Date", readonly=True, store=True),
|
||||
'date': fields.related('event_id', 'date_begin', type='datetime', string="Start Date", readonly=True, store=True),
|
||||
'section_id': fields.related('event_id', 'section_id', type='many2one', relation='crm.case.section', string='Sale Team', store=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'date_deadline': fields.related('event_id','date_end', type='datetime', string="End Date", readonly=True),
|
||||
'date': fields.related('event_id', 'date_begin', type='datetime', string="Start Date", readonly=True),
|
||||
'user_id': fields.many2one('res.users', 'Responsible', states={'done': [('readonly', True)]}),
|
||||
'active': fields.boolean('Active'),
|
||||
'section_id': fields.related('event_id', 'section_id', type='many2one', relation='crm.case.section', string='Sale Team', store=True, readonly=True),
|
||||
'company_id': fields.related('event_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'state': fields.selection([('open', 'Confirmed'),
|
||||
('draft', 'Unconfirmed'),
|
||||
('cancel', 'Cancelled'),
|
||||
('done', 'Done')], 'State', \
|
||||
size=16, readonly=True)
|
||||
}
|
||||
_defaults = {
|
||||
'nb_register': 1,
|
||||
'tobe_invoiced': True,
|
||||
'state': lambda *a: 'draft',
|
||||
'active': lambda *a: 1,
|
||||
'user_id': lambda self, cr, uid, ctx: uid,
|
||||
}
|
||||
|
||||
def _make_invoice(self, cr, uid, reg, lines, context=None):
|
||||
|
@ -353,7 +368,7 @@ class event_registration(osv.osv):
|
|||
})
|
||||
inv_id = inv_pool.create(cr, uid, val_invoice['value'])
|
||||
inv_pool.button_compute(cr, uid, [inv_id])
|
||||
self._history(cr, uid, [reg], _('Invoiced'))
|
||||
self.history(cr, uid, [reg], _('Invoiced'))
|
||||
return inv_id
|
||||
|
||||
def action_invoice_create(self, cr, uid, ids, grouped=False, date_inv = False, context=None):
|
||||
|
@ -422,7 +437,7 @@ class event_registration(osv.osv):
|
|||
"""
|
||||
res = self.write(cr, uid, ids, {'state': 'open'}, context=context)
|
||||
self.mail_user(cr, uid, ids)
|
||||
self._history(cr, uid, ids, _('Open'))
|
||||
self.history(cr, uid, ids, _('Open'))
|
||||
return res
|
||||
|
||||
def do_close(self, cr, uid, ids, context=None):
|
||||
|
@ -436,7 +451,7 @@ class event_registration(osv.osv):
|
|||
if invoice_id:
|
||||
values['invoice_id'] = invoice_id
|
||||
res = self.write(cr, uid, ids, values)
|
||||
self._history(cr, uid, ids, msg)
|
||||
self.history(cr, uid, ids, msg)
|
||||
return res
|
||||
|
||||
def check_confirm(self, cr, uid, ids, context=None):
|
||||
|
@ -509,7 +524,7 @@ class event_registration(osv.osv):
|
|||
"""This Function Cancel Event Registration.
|
||||
"""
|
||||
registrations = self.browse(cr, uid, ids)
|
||||
self._history(cr, uid, registrations, _('Cancel'))
|
||||
self.history(cr, uid, registrations, _('Cancel'))
|
||||
self.write(cr, uid, ids, {'state': 'cancel'})
|
||||
return True
|
||||
|
||||
|
@ -606,7 +621,9 @@ class event_registration(osv.osv):
|
|||
|
||||
data_event = event_obj.browse(cr, uid, event_id)
|
||||
res = {'value': {'unit_price': False, 'event_product': False, 'user_id': False,
|
||||
'date': data_event.date_begin, 'date_deadline': data_event.date_end, 'description': data_event.note, 'name': data_event.name}}
|
||||
'date': data_event.date_begin, 'date_deadline': data_event.date_end, 'description': data_event.note, 'name': data_event.name,
|
||||
'section_id': data_event.section_id and data_event.section_id.id or False,
|
||||
}}
|
||||
if data_event.user_id.id:
|
||||
res['value'].update({'user_id':data_event.user_id.id})
|
||||
if data_event.product_id:
|
||||
|
@ -615,6 +632,8 @@ class event_registration(osv.osv):
|
|||
partner = res_obj.browse(cr, uid, partner_invoice_id, context=context)
|
||||
pricelist_id = pricelist_id or partner.property_product_pricelist.id
|
||||
unit_price = prod_obj._product_price(cr, uid, [data_event.product_id.id], False, False, {'pricelist': pricelist_id})[data_event.product_id.id]
|
||||
if not unit_price:
|
||||
unit_price = data_event.unit_price
|
||||
res['value'].update({'unit_price': unit_price, 'event_product': data_event.product_id.name})
|
||||
return res
|
||||
|
||||
|
@ -675,7 +694,10 @@ class event_registration(osv.osv):
|
|||
if partner_invoice_id:
|
||||
partner = res_obj.browse(cr, uid, partner_invoice_id, context=context)
|
||||
pricelist_id = pricelist_id or partner.property_product_pricelist.id
|
||||
data['unit_price'] = prod_obj._product_price(cr, uid, [data_event.product_id.id], False, False, {'pricelist': pricelist_id})[data_event.product_id.id]
|
||||
unit_price = prod_obj._product_price(cr, uid, [data_event.product_id.id], False, False, {'pricelist': pricelist_id})[data_event.product_id.id]
|
||||
if not unit_price:
|
||||
unit_price = data_event.unit_price
|
||||
data['unit_price'] = unit_price
|
||||
return {'value': data}
|
||||
|
||||
event_registration()
|
||||
|
|
|
@ -131,21 +131,23 @@
|
|||
<page string="Mailing">
|
||||
<field name="reply_to" />
|
||||
<newline/>
|
||||
|
||||
<group col="3" colspan="2" expand="1">
|
||||
<separator string="Auto Registration Email" colspan="2"/>
|
||||
<newline/>
|
||||
<field name="mail_auto_registr"/>
|
||||
<separator string="Registration Email Body" colspan="2"/>
|
||||
<newline/>
|
||||
<field name="mail_registr" colspan="2" nolabel="1" attrs="{'readonly':[('mail_auto_registr','=',False)]}"/>
|
||||
</group>
|
||||
<group col="2" colspan="2" >
|
||||
<separator string="Auto Confirmation Email" colspan="2"/>
|
||||
<field name="mail_auto_confirm"/>
|
||||
<newline/>
|
||||
<separator string="Confirmation Email Body" colspan="2"/>
|
||||
<field name="mail_confirm" colspan="2" nolabel="1" attrs="{'readonly':[('mail_auto_confirm','=',False)]}"/>
|
||||
<group col="4" colspan="4">
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Auto Registration Email" colspan="4"/>
|
||||
<field name="mail_auto_registr" colspan="4"/>
|
||||
<group colspan="4" attrs="{'readonly':[('mail_auto_registr','=',False)]}">
|
||||
<separator string="Registration Email Body" colspan="4"/>
|
||||
<field name="mail_registr" colspan="4" nolabel="1" />
|
||||
</group>
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Auto Confirmation Email" colspan="4"/>
|
||||
<field name="mail_auto_confirm" colspan="4"/>
|
||||
<group colspan="4" attrs="{'readonly':[('mail_auto_confirm','=',False)]}">
|
||||
<separator string="Confirmation Email Body" colspan="4"/>
|
||||
<field name="mail_confirm" nolabel="1" colspan="4"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
|
@ -330,9 +332,8 @@
|
|||
</group>
|
||||
<separator string="Description" colspan="4"/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<group col="8" colspan="4">
|
||||
<separator string="" colspan="4"/>
|
||||
<newline/>
|
||||
<separator string="" colspan="4"/>
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1" colspan="2"/>
|
||||
<button name="button_reg_close" string="Close Registration" states="open" type="object" icon="gtk-close"/>
|
||||
<button name="check_confirm" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/>
|
||||
|
@ -376,7 +377,7 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'event.registration', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
<form string="Communication history">
|
||||
<group col="4" colspan="4">
|
||||
|
@ -398,13 +399,13 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'event.registration', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</form>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'event.registration'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
|
|
|
@ -33,7 +33,7 @@ class event_confirm(osv.osv_memory):
|
|||
'msg': fields.text('Message', readonly=True),
|
||||
}
|
||||
_defaults = {
|
||||
'msg': _('Total Registrations of this Event could not reached Minimum Registration Limit. What do you want to do?')
|
||||
'msg': _('Warning: This Event has not reached its Minimum Registration Limit. Are you sure you want to confirm it?')
|
||||
}
|
||||
|
||||
def confirm(self, cr, uid, ids, context):
|
||||
|
|
|
@ -50,11 +50,10 @@ class event_confirm_registration(osv.osv_memory):
|
|||
register_max = registration.event_id.register_max
|
||||
if registration.event_id.id not in overlimit_event_ids:
|
||||
overlimit_event_ids.append(registration.event_id.id)
|
||||
msg += _("The Event '%s' is reached Maximum Limit(%s).") \
|
||||
msg += _("Warning: The Event '%s' has reached its Maximum Limit (%s).") \
|
||||
%(registration.event_id.name, register_max)
|
||||
if 'msg' in fields:
|
||||
res.update({'msg': msg})
|
||||
|
||||
return res
|
||||
|
||||
def confirm(self, cr, uid, ids, context):
|
||||
|
|
|
@ -27,7 +27,8 @@
|
|||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
import time
|
||||
|
||||
from datetime import date, datetime
|
||||
|
||||
class event_project(osv.osv_memory):
|
||||
"""
|
||||
Event Project
|
||||
|
@ -36,23 +37,46 @@ class event_project(osv.osv_memory):
|
|||
_description = "Event Project"
|
||||
|
||||
_columns = {
|
||||
'project_id': fields.many2one('project.project', 'Template of Project', domain = [('active', '<>', False), ('state', '=', 'template')], required =True, help="This is Template Project. Project of event is a duplicate of this Template. After click on 'Create Retro-planning', New Project will be duplicated from this template project.")
|
||||
'project_id': fields.many2one('project.project', 'Template of Project',
|
||||
domain = [('active', '<>', False), ('state', '=', 'template')],
|
||||
required =True,
|
||||
help="This is Template Project. Project of event is a duplicate of this Template. After click on 'Create Retro-planning', New Project will be duplicated from this template project."),
|
||||
'date_start': fields.date('Date Start'),
|
||||
'date': fields.date('Date End'),
|
||||
}
|
||||
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
"""
|
||||
This function gets default values
|
||||
@param fields: List of fields for default value
|
||||
@param context: A standard dictionary for contextual values
|
||||
|
||||
@return : default values of fields.
|
||||
"""
|
||||
event_obj=self.pool.get('event.event')
|
||||
project_obj = self.pool.get('project.project')
|
||||
event = event_obj.browse(cr, uid, context.get('active_id', False))
|
||||
res = super(event_project, self).default_get(cr, uid, fields, context=context)
|
||||
if 'date_start' in fields:
|
||||
res.update({'date_start': time.strftime('%Y-%m-%d')})
|
||||
if 'date' in fields:
|
||||
res.update({'date': datetime.strptime(event.date_end, "%Y-%m-%d %H:%M:%S").strftime("%Y-%m-%d")})
|
||||
|
||||
return res
|
||||
|
||||
def create_duplicate(self, cr, uid, ids, context):
|
||||
event_obj=self.pool.get('event.event')
|
||||
project_obj = self.pool.get('project.project')
|
||||
event = event_obj.browse(cr, uid, context.get('active_id', False))
|
||||
for current in self.browse(cr, uid, ids):
|
||||
duplicate_project_id = project_obj.copy(cr, uid, current.project_id.id, {'active': True})
|
||||
duplicate_project = project_obj.browse(cr, uid, duplicate_project_id, context)
|
||||
project_obj.write(cr, uid, [duplicate_project_id], {
|
||||
'name': duplicate_project.name ,
|
||||
'date_start':time.strftime('%Y-%m-%d'),
|
||||
'date': event.date_begin[0:10] })
|
||||
for current in self.browse(cr, uid, ids):
|
||||
duplicate_project_id = project_obj.copy(cr, uid, current.project_id.id, {
|
||||
'active': True,
|
||||
'date_start':current.date_start,
|
||||
'date': current.date,
|
||||
})
|
||||
event_obj.write(cr, uid, [event.id], {'project_id': duplicate_project_id })
|
||||
|
||||
|
||||
return {}
|
||||
|
||||
|
||||
event_project()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -8,7 +8,9 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Retro-Planning">
|
||||
<field name="project_id" />
|
||||
<field name="project_id" colspan="4"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date"/>
|
||||
<separator string="" colspan="4"/>
|
||||
<group colspan="4" col="6">
|
||||
<button icon="gtk-close" special="cancel" string="Close"/>
|
||||
|
|
|
@ -72,6 +72,7 @@
|
|||
<field name="res_model">hr.department</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="search_view_id" ref="view_department_filter"/>
|
||||
<field name="help">Your Company's Departments Structure is used to manage all documents related to employees by departments: expenses and timesheet validation, leaves management, recruitements, etc.</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="open_module_tree_department" id="menu_department_def" parent="hr.menu_department_tree"/>
|
||||
|
|
|
@ -147,6 +147,7 @@
|
|||
<field name="domain">[]</field>
|
||||
<field name="view_id" ref="view_employee_tree"/>
|
||||
<field name="search_view_id" ref="view_employee_filter"/>
|
||||
<field name="help">The employee directory contains all data related to your employees: from their photo up to their hourly estimated costs for the timesheets. Employees are managed by departments and can be linked to users to manage their access rights.</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="open_view_employee_list_my" id="menu_open_view_employee_list_my" sequence="3" parent="menu_hr_main"/>
|
||||
|
@ -386,6 +387,7 @@
|
|||
<field name="res_model">hr.job</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help">Job Positions are used to define the jobs, the requirements. You can attach a survey to a job position. This survey will be used in the recruitement process to evaluate the applicants for this job position.</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Recruitment" id="base.menu_crm_case_job_req_main" parent="menu_hr_root"/>
|
||||
|
|
|
@ -71,6 +71,7 @@
|
|||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{"search_default_employee":1}</field>
|
||||
<field name="search_view_id" ref="view_hr_attendance_filter" />
|
||||
<field name="help">Time Tracking functionality aims to manage employee's attendances on the basis of the actions (Sign in/Sign out) performed by them. You can also link this to an attndance machine using OpenERP's webservices features.</field>
|
||||
</record>
|
||||
|
||||
<!--<menuitem id="menu_hr_attendance" name="Attendances" parent="hr.menu_hr_root"
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_hr_attendance_sigh_in_out"/>
|
||||
<field name="target">new</field>
|
||||
<field name="help">Sign in / Sign out. In some companies, staff have to sign in when they arrive at work and sign out again at the end of the day. If each employee has been linked to a system user, then they can encode their time with this action button.</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_hr_attendance_sigh_in_out" id="menu_hr_attendance_sigh_in_out"
|
||||
|
|
|
@ -256,10 +256,12 @@
|
|||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="open_view_hr_evaluation_tree">
|
||||
<field name="name">Evaluation</field>
|
||||
<field name="res_model">hr_evaluation.evaluation</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,graph</field>
|
||||
<field name="search_view_id" ref="hr_evaluation.evaluation_search"/>
|
||||
<field name="help">Each employee can be assigned to an evaluation plan. These plans define the frequency and the way you manage your periodic personnal evalautions. You will be able to define steps and attach interview forms to each step. OpenERP manages all kind of evaluations: bottom-up, top-down, self evaluation and final evaluation by the manager.</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Evaluation" parent="menu_eval_hr" id="menu_open_view_hr_evaluation_tree"
|
||||
|
@ -339,12 +341,14 @@
|
|||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_hr_evaluation_interview_tree">
|
||||
<field name="name">Interview Requests</field>
|
||||
<field name="res_model">hr.evaluation.interview</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('is_evaluation' ,'=', True)]</field>
|
||||
<field name="context">{"search_default_todo":1,"search_default_user_id":uid}</field>
|
||||
<field name="search_view_id" ref="view_hr_evaluation_interview_search"/>
|
||||
<field name="help">Interview Requests are generated automatically by OpenERP according to employees evaluation plan. Each user receives automatic emails and requests to perform evaluation of their collegues periodically.</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Interview Requests" parent="menu_eval_hr" id="menu_open_hr_evaluation_interview_requests"
|
||||
|
|
|
@ -158,6 +158,7 @@
|
|||
<field name="view_type">form</field>
|
||||
<field name="context">{"search_default_user_id":uid}</field>
|
||||
<field name="search_view_id" ref="view_hr_expense_filter"/>
|
||||
<field name="help">The OpenERP expenses management module allows you to track the full flow. Every month, the employees record their expenses. At the end of the month, their managers validates the expenses sheets which creates costs on projects/analytic accounts. The accountant validates the proposed entries and the employee can be reimbursed. You can also reinvoice the customer at the end of the flow.</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="next_id_49" name="Expenses" sequence="4" parent="hr.menu_hr_root"/>
|
||||
|
|
|
@ -253,6 +253,7 @@
|
|||
<field name="domain">[('type','=','remove')]</field>
|
||||
<field name="context">{'search_default_user_id':uid}</field>
|
||||
<field name="search_view_id" ref="view_hr_holidays_filter"/>
|
||||
<field name="help">Leaves requests can be recorded by employees and validated by their managers. Once a leave request is validated it appears automatically in the agenda of the employee. You can define several allowance types (paid holidays, sickness, etc) and manage allowances per type.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_open_ask_holidays_tree">
|
||||
|
|
|
@ -70,9 +70,7 @@ class hr_applicant(osv.osv, crm.crm_case):
|
|||
'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the case without removing it."),
|
||||
'description': fields.text('Description'),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These people\
|
||||
will receive a copy of the future" \
|
||||
" communication between partner and users by email"),
|
||||
'email_cc': fields.text('Watchers Emails', size=252 , help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'probability': fields.float('Probability'),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
|
||||
|
|
|
@ -151,7 +151,7 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'hr.applicant', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
<form string="Communication history">
|
||||
<group col="4" colspan="4">
|
||||
|
@ -173,13 +173,13 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'hr.applicant', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</form>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'hr.applicant'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
|
|
|
@ -46,8 +46,9 @@
|
|||
<field name="res_model">hr.sign.in.project</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_hr_timesheet_sign_in_message"/>
|
||||
<field name="target">new</field>
|
||||
<field name="view_id" ref="view_hr_timesheet_sign_in_message"/>
|
||||
<field name="target">new</field>
|
||||
<field name="help">Employees can encode their time spent on the different projects. A project is an analytic account and the time spent on a project generate costs on the analytic account. This feature allows to record at the same time the attendance and the timesheet.</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_hr_timesheet_sign_in"
|
||||
|
|
|
@ -9,12 +9,12 @@
|
|||
<field name="arch" type="xml">
|
||||
<field name="partner_id" position="replace">
|
||||
<field name="partner_id"
|
||||
on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank)"
|
||||
on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id)"
|
||||
select="1"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="invoice_supplier_form8">
|
||||
<field name="name">account.invoice.supplier.form.inherit</field>
|
||||
<field name="model">account.invoice</field>
|
||||
|
@ -22,10 +22,10 @@
|
|||
<field name="inherit_id" ref="account.invoice_supplier_form"/>
|
||||
<field name="priority" eval="18"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="partner_bank" position="replace">
|
||||
<field name="partner_bank"
|
||||
<field name="partner_bank_id" position="replace">
|
||||
<field name="partner_bank_id"
|
||||
domain="[('partner_id', '=', partner_id)]"
|
||||
on_change="onchange_partner_bank(partner_bank)"/>
|
||||
on_change="onchange_partner_bank(partner_bank_id)"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -35,8 +35,8 @@
|
|||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="account.invoice_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="partner_bank" position="replace">
|
||||
<field name="partner_bank"
|
||||
<field name="partner_bank_id" position="replace">
|
||||
<field name="partner_bank_id"
|
||||
domain="[('partner_id.ref_companies', 'in', [company_id])]"/>
|
||||
</field>
|
||||
</field>
|
||||
|
|
|
@ -57,8 +57,8 @@ class AccountMoveLine(osv.osv):
|
|||
bank_type = payment_mode_obj.suitable_bank_types(cr, uid, payment_type,
|
||||
context=context)
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
if line.invoice and line.invoice.partner_bank:
|
||||
line2bank[line.id] = line.invoice.partner_bank.id
|
||||
if line.invoice and line.invoice.partner_bank_id:
|
||||
line2bank[line.id] = line.invoice.partner_bank_id.id
|
||||
elif line.partner_id:
|
||||
for bank in line.partner_id.bank_ids:
|
||||
if bank.state in bank_type:
|
||||
|
|
|
@ -40,27 +40,27 @@ class account_invoice(osv.osv):
|
|||
"""Inherit account.invoice in order to add bvr
|
||||
printing functionnalites. BVR is a Swiss payment vector"""
|
||||
_inherit = "account.invoice"
|
||||
|
||||
|
||||
## @param self The object pointer.
|
||||
## @param cursor a psycopg cursor
|
||||
## @param user res.user.id that is currently loged
|
||||
## @parma context a standard dict
|
||||
## @parma context a standard dict
|
||||
## @return a list of tuple (name,value)
|
||||
def _get_reference_type(self, cursor, user, context=None):
|
||||
"""Function use by the function field reference_type in order to initalise available
|
||||
"""Function use by the function field reference_type in order to initalise available
|
||||
BVR Reference Types"""
|
||||
res = super(account_invoice, self)._get_reference_type(cursor, user,
|
||||
context=context)
|
||||
res.append(('bvr', 'BVR'))
|
||||
return res
|
||||
|
||||
|
||||
## @param self The object pointer.
|
||||
## @param cursor a psycopg cursor
|
||||
## @param user res.user.id that is currently loged
|
||||
## @parma context a standard dict
|
||||
## @param name of the files
|
||||
## @param args a list of diverse argument
|
||||
## @parma context a standard dict
|
||||
## @param name of the files
|
||||
## @param args a list of diverse argument
|
||||
## @parma context a standard dict
|
||||
## @return a dict (invoice id,amount to pay)
|
||||
def _amount_to_pay(self, cursor, user, ids, name, args, context=None):
|
||||
'''Return the amount still to pay regarding all the payment orders'''
|
||||
|
@ -81,8 +81,8 @@ class account_invoice(osv.osv):
|
|||
### BVR reference type BVR or FREE
|
||||
'reference_type': fields.selection(_get_reference_type,
|
||||
'Reference Type', required=True),
|
||||
### Partner bank link between bank and partner id
|
||||
'partner_bank': fields.many2one('res.partner.bank', 'Bank Account',
|
||||
### Partner bank link between bank and partner id
|
||||
'partner_bank_id': fields.many2one('res.partner.bank', 'Bank Account',
|
||||
help='The partner bank account to pay\nKeep empty to use the default'
|
||||
),
|
||||
### Amount to pay
|
||||
|
@ -91,12 +91,12 @@ class account_invoice(osv.osv):
|
|||
help='The amount which should be paid at the current date\n' \
|
||||
'minus the amount which is already in payment order'),
|
||||
}
|
||||
|
||||
|
||||
## @param self The object pointer.
|
||||
## @param cursor a psycopg cursor
|
||||
## @param user res.user.id that is currently loged
|
||||
## @parma ids invoices id
|
||||
## @return a boolean True if valid False if invalid
|
||||
## @return a boolean True if valid False if invalid
|
||||
def _check_bvr(self, cr, uid, ids):
|
||||
"""
|
||||
Function to validate a bvr reference like :
|
||||
|
@ -123,14 +123,14 @@ class account_invoice(osv.osv):
|
|||
## @param cursor a psycopg cursor
|
||||
## @param user res.user.id that is currently loged
|
||||
## @parma ids invoices id
|
||||
## @return a boolean True if valid False if invalid
|
||||
## @return a boolean True if valid False if invalid
|
||||
def _check_reference_type(self, cursor, user, ids):
|
||||
"""Check the customer invoice reference type depending
|
||||
"""Check the customer invoice reference type depending
|
||||
on the BVR reference type and the invoice partner bank type"""
|
||||
for invoice in self.browse(cursor, user, ids):
|
||||
if invoice.type in 'in_invoice':
|
||||
if invoice.partner_bank and \
|
||||
invoice.partner_bank.state in \
|
||||
if invoice.partner_bank_id and \
|
||||
invoice.partner_bank_id.state in \
|
||||
('bvrbank', 'bvrpost') and \
|
||||
invoice.reference_type != 'bvr':
|
||||
return False
|
||||
|
@ -142,7 +142,7 @@ class account_invoice(osv.osv):
|
|||
(_check_reference_type, 'Error: BVR reference is required.',
|
||||
['reference_type']),
|
||||
]
|
||||
|
||||
|
||||
## @param self The object pointer.
|
||||
## @param cr a psycopg cursor
|
||||
## @param uid res.user.id that is currently loged
|
||||
|
@ -154,16 +154,16 @@ class account_invoice(osv.osv):
|
|||
## @param partner_bank_id the partner linked invoice bank
|
||||
## @return the dict of values with the partner_bank value updated
|
||||
def onchange_partner_id(self, cr, uid, ids, type, partner_id,
|
||||
date_invoice=False, payment_term=False, partner_bank=False, company_id=False):
|
||||
date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):
|
||||
""" Function that is call when the partner of the invoice is changed
|
||||
it will retriev and set the good bank partner bank"""
|
||||
res = super(account_invoice, self).onchange_partner_id(
|
||||
cr,
|
||||
uid,
|
||||
ids,
|
||||
uid,
|
||||
ids,
|
||||
type,
|
||||
partner_id,
|
||||
date_invoice,
|
||||
partner_id,
|
||||
date_invoice,
|
||||
payment_term
|
||||
)
|
||||
bank_id = False
|
||||
|
@ -173,19 +173,19 @@ class account_invoice(osv.osv):
|
|||
bank_id = p.bank_ids[0].id
|
||||
|
||||
if type in ('in_invoice', 'in_refund'):
|
||||
res['value']['partner_bank'] = bank_id
|
||||
res['value']['partner_bank_id'] = bank_id
|
||||
|
||||
if partner_bank != bank_id:
|
||||
if partner_bank_id != bank_id:
|
||||
to_update = self.onchange_partner_bank(cr, uid, ids, bank_id)
|
||||
res['value'].update(to_update['value'])
|
||||
return res
|
||||
|
||||
|
||||
## @param self The object pointer.
|
||||
## @param cursor a psycopg cursor
|
||||
## @param user res.user.id that is currently loged
|
||||
## @parma ids invoices id
|
||||
## @param partner_bank_id the partner linked invoice bank
|
||||
## @return the dict of values with the reference type value updated
|
||||
## @return the dict of values with the reference type value updated
|
||||
def onchange_partner_bank(self, cursor, user, ids, partner_bank_id):
|
||||
"""update the reference type depending of the partner bank"""
|
||||
res = {'value': {}}
|
||||
|
|
|
@ -34,7 +34,7 @@ import time
|
|||
from report import report_sxw
|
||||
from tools import mod10r
|
||||
import re
|
||||
import os
|
||||
import os
|
||||
import sys
|
||||
import shutil
|
||||
from mx.DateTime import *
|
||||
|
@ -61,11 +61,11 @@ class account_invoice_bvr(report_sxw.rml_parse):
|
|||
if date_to_format:
|
||||
date_formatted = strptime(date_to_format,'%Y-%m-%d').strftime('%d.%m.%Y')
|
||||
return date_formatted
|
||||
|
||||
|
||||
def police_absolute_path(self, inner_path) :
|
||||
path = os.path.join(os.path.dirname(sys.argv[0]), inner_path)
|
||||
return path
|
||||
|
||||
|
||||
def copyocrbfile(self,file):
|
||||
src = self.police_absolute_path(file)
|
||||
file = os.path.basename(src)
|
||||
|
@ -74,10 +74,10 @@ class account_invoice_bvr(report_sxw.rml_parse):
|
|||
try:
|
||||
shutil.copyfile(src,dest)
|
||||
except:
|
||||
"""print ocrbfile was not copy in /tmp/ please
|
||||
"""print ocrbfile was not copy in /tmp/ please
|
||||
copy it manually from l10_ch/report"""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def comma_me(self,amount):
|
||||
if type(amount) is float :
|
||||
|
@ -101,8 +101,8 @@ class account_invoice_bvr(report_sxw.rml_parse):
|
|||
|
||||
def _get_ref(self, o):
|
||||
res = ''
|
||||
if o.partner_bank.bvr_adherent_num:
|
||||
res = o.partner_bank.bvr_adherent_num
|
||||
if o.partner_bank_id.bvr_adherent_num:
|
||||
res = o.partner_bank_id.bvr_adherent_num
|
||||
invoice_number = ''
|
||||
if o.number:
|
||||
invoice_number = re.sub('[^0-9]', '0', o.number)
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<stroke color="black"/>
|
||||
<lines>1.3cm 27.7cm 20cm 27.7cm</lines>
|
||||
|
||||
<drawRightString x="20cm" y="27.8cm">[[ company.rml_header1 ]] </drawRightString>
|
||||
<drawRightString x="20cm" y="27.8cm">[[ company.rml_header1 ]] </drawRightString>
|
||||
<drawString x="1.3cm" y="27.2cm">[[ company.partner_id.name ]]</drawString>
|
||||
<drawString x="1.3cm" y="26.8cm">[[ company.partner_id.address and company.partner_id.address[0].street or '' ]]</drawString>
|
||||
<drawString x="1.3cm" y="26.4cm">[[ company.partner_id.address and company.partner_id.address[0].zip or '' ]] [[ company.partner_id.address and company.partner_id.address[0].city or '' ]] - [[ company.partner_id.address and company.partner_id.address[0].country_id and company.partner_id.address[0].country_id.name or '']]</drawString>
|
||||
|
@ -112,11 +112,11 @@
|
|||
-->
|
||||
<illustration width="210mm" height="106mm">
|
||||
<setFont name="Helvetica" size="11"/>
|
||||
<drawString x="2mm" y="93mm">[[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.name or '' ]]</drawString>
|
||||
<drawString x="2mm" y="88mm">[[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.zip or '']] [[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.city or '']]</drawString>
|
||||
<drawString x="2mm" y="93mm">[[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.name or '' ]]</drawString>
|
||||
<drawString x="2mm" y="88mm">[[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.zip or '']] [[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.city or '']]</drawString>
|
||||
|
||||
<drawString x="62mm" y="93mm">[[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.name or '' ]]</drawString>
|
||||
<drawString x="62mm" y="88mm">[[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.zip or '']] [[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.city or '']]</drawString>
|
||||
<drawString x="62mm" y="93mm">[[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.name or '' ]]</drawString>
|
||||
<drawString x="62mm" y="88mm">[[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.zip or '']] [[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.city or '']]</drawString>
|
||||
|
||||
<drawString x="2mm" y="78mm"> [[ user.company_id.partner_id.name ]]</drawString>
|
||||
<drawString x="2mm" y="73mm"> [[ user.company_id.partner_id.address[0].street ]]</drawString>
|
||||
|
@ -147,11 +147,11 @@
|
|||
<drawString x="124mm" y="67mm">[[ _space(_get_ref(o)) ]]</drawString>
|
||||
|
||||
<setFont name="ocrb" size="12"/>
|
||||
<drawRightString x="52 mm" y="59.3mm">[[ o.partner_bank and o.partner_bank.printAccount and o.partner_bank.bvr_number or '' ]]</drawRightString>
|
||||
<drawRightString x="112mm" y="59.3mm">[[ o.partner_bank and o.partner_bank.printAccount and o.partner_bank.bvr_number or '' ]]</drawRightString>
|
||||
<drawRightString x="52 mm" y="59.3mm">[[ o.partner_bank_id and o.partner_bank_id.printAccount and o.partner_bank_id.bvr_number or '' ]]</drawRightString>
|
||||
<drawRightString x="112mm" y="59.3mm">[[ o.partner_bank_id and o.partner_bank_id.printAccount and o.partner_bank_id.bvr_number or '' ]]</drawRightString>
|
||||
<drawRightString x="42mm" y="50mm">[[ _space(('%.2f' % o.amount_total)[:-3], 1) + ' ' ]]</drawRightString>
|
||||
<drawRightString x="104mm" y="50mm">[[ _space(('%.2f' % o.amount_total)[:-3], 1) + ' ' ]]</drawRightString>
|
||||
<drawRightString x="114 mm" y="59.3mm">[[ o.partner_bank and o.partner_bank.printAccount and o.partner_bank.bvr_number or '' ]]</drawRightString>
|
||||
<drawRightString x="114 mm" y="59.3mm">[[ o.partner_bank_id and o.partner_bank_id.printAccount and o.partner_bank_id.bvr_number or '' ]]</drawRightString>
|
||||
<drawRightString x="58mm" y="50mm">[[ _space(('%.2f' % o.amount_total)[-2:], 1) + ' ' ]]</drawRightString>
|
||||
<drawRightString x="119mm" y="50mm">[[ _space(('%.2f' % o.amount_total)[-2:], 1) + ' ' ]]</drawRightString>
|
||||
|
||||
|
@ -161,7 +161,7 @@
|
|||
-->
|
||||
|
||||
<setFont name="ocrb" size="11.5"/>
|
||||
<drawRightString x="195mm" y="15mm">[[mod10r('01'+str('%.2f' % o.amount_total).replace('.','').rjust(10,'0'))]]>[[ _get_ref(o) ]]+ [[o.partner_bank.bvr_number.split('-')[0]+(str(o.partner_bank.bvr_number.split('-')[1])).rjust(6,'0')+o.partner_bank.bvr_number.split('-')[2] ]]></drawRightString>
|
||||
<drawRightString x="195mm" y="15mm">[[mod10r('01'+str('%.2f' % o.amount_total).replace('.','').rjust(10,'0'))]]>[[ _get_ref(o) ]]+ [[o.partner_bank_id.bvr_number.split('-')[0]+(str(o.partner_bank_id.bvr_number.split('-')[1])).rjust(6,'0')+o.partner_bank_id.bvr_number.split('-')[2] ]]></drawRightString>
|
||||
</illustration>
|
||||
</story>
|
||||
</document>
|
||||
|
|
|
@ -250,7 +250,7 @@
|
|||
<blockTable colWidths="28.0, 499.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="P9">[[ note or removeParentNode('blockTable') ]]</para>
|
||||
<para style="P9">[[ note or removeParentNode('blockTable') ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<xpre style="P16">[[ l.note ]]</xpre>
|
||||
|
@ -326,11 +326,11 @@
|
|||
-->
|
||||
<illustration width="210mm" height="106mm">
|
||||
<setFont name="Helvetica" size="11"/>
|
||||
<drawString x="2mm" y="93mm">[[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.name or '' ]]</drawString>
|
||||
<drawString x="2mm" y="88mm">[[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.zip or '']] [[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.city or '']]</drawString>
|
||||
<drawString x="2mm" y="93mm">[[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.name or '' ]]</drawString>
|
||||
<drawString x="2mm" y="88mm">[[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.zip or '']] [[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.city or '']]</drawString>
|
||||
|
||||
<drawString x="62mm" y="93mm">[[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.name or '' ]]</drawString>
|
||||
<drawString x="62mm" y="88mm">[[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.zip or '']] [[ o.partner_bank and o.partner_bank.printBank and o.partner_bank.bank and o.partner_bank.bank.city or '']]</drawString>
|
||||
<drawString x="62mm" y="93mm">[[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.name or '' ]]</drawString>
|
||||
<drawString x="62mm" y="88mm">[[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.zip or '']] [[ o.partner_bank_id and o.partner_bank_id.printBank and o.partner_bank_id.bank and o.partner_bank_id.bank.city or '']]</drawString>
|
||||
<drawString x="2mm" y="78mm"> [[user.company_id.name]]</drawString>
|
||||
<drawString x="2mm" y="73mm"> [[ user.company_id.partner_id.address[0].street ]]</drawString>
|
||||
<drawString x="2mm" y="68mm"> [[ (user.company_id.partner_id.address[0].street2 or '')]]</drawString>
|
||||
|
@ -357,12 +357,12 @@
|
|||
|
||||
|
||||
<setFont name="ocrb" size="11"/>
|
||||
|
||||
|
||||
<drawString x="124mm" y="67mm">[[ _space(_get_ref(o)) ]]</drawString>
|
||||
|
||||
<setFont name="ocrb" size="12"/>
|
||||
<drawRightString x="52 mm" y="59.3mm">[[ o.partner_bank and o.partner_bank.printAccount and o.partner_bank.bvr_number or '' ]]</drawRightString>
|
||||
<drawRightString x="112mm" y="59.3mm">[[ o.partner_bank and o.partner_bank.printAccount and o.partner_bank.bvr_number or '' ]]</drawRightString>
|
||||
<drawRightString x="52 mm" y="59.3mm">[[ o.partner_bank_id and o.partner_bank_id.printAccount and o.partner_bank_id.bvr_number or '' ]]</drawRightString>
|
||||
<drawRightString x="112mm" y="59.3mm">[[ o.partner_bank_id and o.partner_bank_id.printAccount and o.partner_bank_id.bvr_number or '' ]]</drawRightString>
|
||||
<drawRightString x="42mm" y="50mm">[[ _space(('%.2f' % o.amount_total)[:-3], 1) + ' ' ]]</drawRightString>
|
||||
<drawRightString x="104mm" y="50mm">[[ _space(('%.2f' % o.amount_total)[:-3], 1) + ' ' ]]</drawRightString>
|
||||
|
||||
|
@ -375,7 +375,7 @@
|
|||
-->
|
||||
|
||||
<setFont name="ocrb" size="11.5"/>
|
||||
<drawRightString x="195mm" y="15mm">[[mod10r('01'+str('%.2f' % o.amount_total).replace('.','').rjust(10,'0'))]]>[[ _get_ref(o) ]]+ [[o.partner_bank.bvr_number.split('-')[0]+(str(o.partner_bank.bvr_number.split('-')[1])).rjust(6,'0')+o.partner_bank.bvr_number.split('-')[2] ]]></drawRightString>
|
||||
<drawRightString x="195mm" y="15mm">[[mod10r('01'+str('%.2f' % o.amount_total).replace('.','').rjust(10,'0'))]]>[[ _get_ref(o) ]]+ [[o.partner_bank_id.bvr_number.split('-')[0]+(str(o.partner_bank_id.bvr_number.split('-')[1])).rjust(6,'0')+o.partner_bank_id.bvr_number.split('-')[2] ]]></drawRightString>
|
||||
|
||||
</illustration>
|
||||
|
||||
|
|
|
@ -39,22 +39,22 @@ def _check(self, cr, uid, data, context):
|
|||
pool = pooler.get_pool(cr.dbname)
|
||||
invoice_obj = pool.get('account.invoice')
|
||||
for invoice in invoice_obj.browse(cr, uid, data['ids'], context):
|
||||
if not invoice.partner_bank:
|
||||
if not invoice.partner_bank_id:
|
||||
raise wizard.except_wizard(_('UserError'),
|
||||
_('No bank specified on invoice:\n%s') % \
|
||||
invoice_obj.name_get(cr, uid, [invoice.id], context=context)[0][1])
|
||||
|
||||
if not re.compile('[0-9][0-9]-[0-9]{3,6}-[0-9]').match(
|
||||
invoice.partner_bank.bvr_number or ''):
|
||||
invoice.partner_bank_id.bvr_number or ''):
|
||||
raise wizard.except_wizard(_('UserError'),
|
||||
_('Your bank BVR number should be of the form 0X-XXX-X!\n' \
|
||||
'Please check your company ' \
|
||||
'information for the invoice:\n%s') % \
|
||||
invoice_obj.name_get(cr, uid, [invoice.id], context=context)[0][1])
|
||||
|
||||
if invoice.partner_bank.bvr_adherent_num \
|
||||
if invoice.partner_bank_id.bvr_adherent_num \
|
||||
and not re.compile('[0-9]*$').match(
|
||||
invoice.partner_bank.bvr_adherent_num):
|
||||
invoice.partner_bank_id.bvr_adherent_num):
|
||||
raise wizard.except_wizard(_('UserError'),
|
||||
_('Your bank BVR adherent number must contain exactly seven' \
|
||||
'digits!\nPlease check your company ' \
|
||||
|
@ -65,7 +65,7 @@ def _check(self, cr, uid, data, context):
|
|||
class wizard_report(wizard.interface):
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [_check],
|
||||
'actions': [_check],
|
||||
'result': {'type':'print', 'report':'l10n_ch.bvr', 'state':'end'}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -475,7 +475,7 @@ class mailgate_tool(osv.osv_memory):
|
|||
'partner_id': False
|
||||
}
|
||||
from_email = self.to_email(from_email)[0]
|
||||
address_ids = address_pool.search(cr, uid, [('email', '=', from_email)])
|
||||
address_ids = address_pool.search(cr, uid, [('email', 'like', from_email)])
|
||||
if address_ids:
|
||||
address = address_pool.browse(cr, uid, address_ids[0])
|
||||
res['partner_address_id'] = address_ids[0]
|
||||
|
|
|
@ -83,13 +83,6 @@ class marketing_campaign(osv.osv):
|
|||
_name = "marketing.campaign"
|
||||
_description = "Marketing Campaign"
|
||||
|
||||
|
||||
def _check_has_start(self, cr, uid, ids, context=None):
|
||||
for campaign in self.browse(cr, uid, ids, context=context):
|
||||
if not any(a.start for a in campaign.activity_ids):
|
||||
return False
|
||||
return True
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True),
|
||||
'object_id': fields.many2one('ir.model', 'Model', required=True,
|
||||
|
@ -121,29 +114,34 @@ Normal - the campaign runs normally and automatically sends all emails and repor
|
|||
'state': lambda *a: 'draft',
|
||||
'mode': lambda *a: 'test',
|
||||
}
|
||||
|
||||
_constraints = [(_check_has_start, 'Please mark at least one activity as a start activity', ['Activities'])]
|
||||
|
||||
def state_running_set(self, cr, uid, ids, *args):
|
||||
# TODO check that all subcampaigns are running
|
||||
campaign = self.browse(cr, uid, ids[0])
|
||||
if not campaign.activity_ids :
|
||||
raise osv.except_osv("Error", "There is no activitity in the campaign")
|
||||
activity_ids = [ act_id.id for act_id in campaign.activity_ids]
|
||||
|
||||
if not activity_ids:
|
||||
raise osv.except_osv(_("Error"), _("The campaign cannot be started : there are no activities in it"))
|
||||
|
||||
act_obj = self.pool.get('marketing.campaign.activity')
|
||||
act_ids = act_obj.search(cr, uid, [('id', 'in', activity_ids),
|
||||
('type', '=', 'email')])
|
||||
for activity in act_obj.browse(cr, uid, act_ids):
|
||||
if not activity.email_template_id.enforce_from_account :
|
||||
|
||||
if not campaign.activity_ids:
|
||||
raise osv.except_osv(_("Error"), _("The campaign cannot be started: there are no activities in it"))
|
||||
|
||||
has_start = False
|
||||
has_signal_without_from = False
|
||||
|
||||
for activity in campaign.activity_ids:
|
||||
if activity.start:
|
||||
has_start = True
|
||||
if activity.signal and len(activity.from_ids) == 0:
|
||||
has_signal_without_from = True
|
||||
|
||||
if activity.type != 'email':
|
||||
continue
|
||||
if not activity.email_template_id.enforce_from_account:
|
||||
raise osv.except_osv(_("Error"), _("The campaign cannot be started: an email account is missing in the email activity '%s'")%activity.name)
|
||||
if activity.email_template_id.enforce_from_account.state != 'approved' :
|
||||
if activity.email_template_id.enforce_from_account.state != 'approved':
|
||||
raise osv.except_osv(_("Error"), _("The campaign cannot be started: the email account is not approved in the email activity '%s'")%activity.name)
|
||||
self.write(cr, uid, ids, {'state': 'running'})
|
||||
return True
|
||||
|
||||
if not has_start and not has_signal_without_from:
|
||||
raise osv.except_osv(_("Error"), _("The campaign hasn't any starting activity nor any activity with a signal and no previous activity."))
|
||||
|
||||
return self.write(cr, uid, ids, {'state': 'running'})
|
||||
|
||||
def state_done_set(self, cr, uid, ids, *args):
|
||||
# TODO check that this campaign is not a subcampaign in running mode.
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * mrp
|
||||
# * mrp
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-05-21 08:19+0000\n"
|
||||
"PO-Revision-Date: 2010-07-18 15:01+0000\n"
|
||||
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 03:56+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-07-19 03:41+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: mrp
|
||||
|
@ -45,7 +45,7 @@ msgstr "Planowanie zasobów produkcyjnych (MRP)"
|
|||
#. module: mrp
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom.revision,indice:0
|
||||
|
@ -91,12 +91,14 @@ msgid "Stockable Stock"
|
|||
msgstr "Zapas rejestrowany"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.procurement,origin:0 field:mrp.production,origin:0
|
||||
#: field:mrp.procurement,origin:0
|
||||
#: field:mrp.production,origin:0
|
||||
msgid "Origin"
|
||||
msgstr "Pochodzenie"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.ui.menu,name:mrp.menu_mrp_configuration view:res.company:0
|
||||
#: model:ir.ui.menu,name:mrp.menu_mrp_configuration
|
||||
#: view:res.company:0
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguracja"
|
||||
|
||||
|
@ -175,7 +177,8 @@ msgstr "Automatyczne nabycia"
|
|||
|
||||
#. module: mrp
|
||||
#: wizard_field:change_production_qty,confirm,product_qty:0
|
||||
#: field:mrp.bom,product_qty:0 field:mrp.production,product_qty:0
|
||||
#: field:mrp.bom,product_qty:0
|
||||
#: field:mrp.production,product_qty:0
|
||||
#: field:mrp.production.product.line,product_qty:0
|
||||
msgid "Product Qty"
|
||||
msgstr "Ilość produktu"
|
||||
|
@ -203,7 +206,7 @@ msgstr "Wyjątek przesunięcia"
|
|||
#. module: mrp
|
||||
#: model:process.node,note:mrp.process_node_orderrfq0
|
||||
msgid "A purchase order is created for a sub-contracting demand."
|
||||
msgstr ""
|
||||
msgstr "Zamówienie zakupu zostało utworzone dla podwykonawcy."
|
||||
|
||||
#. module: mrp
|
||||
#: rml:mrp.production.order:0
|
||||
|
@ -262,7 +265,8 @@ msgid "Internal Ref."
|
|||
msgstr "Wewn. odnośnik"
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.procurement:0 field:mrp.procurement,state:0
|
||||
#: view:mrp.procurement:0
|
||||
#: field:mrp.procurement,state:0
|
||||
#: field:mrp.production,state:0
|
||||
msgid "Status"
|
||||
msgstr "Stan"
|
||||
|
@ -304,26 +308,29 @@ msgstr ""
|
|||
|
||||
#. module: mrp
|
||||
#: model:ir.actions.act_window,name:mrp.mrp_production_action
|
||||
#: model:ir.ui.menu,name:mrp.menu_mrp_production_action view:mrp.production:0
|
||||
#: model:ir.ui.menu,name:mrp.menu_mrp_production_action
|
||||
#: view:mrp.production:0
|
||||
msgid "Production Orders"
|
||||
msgstr "Zamówienia produkcji"
|
||||
|
||||
#. module: mrp
|
||||
#: rml:bom.structure:0 field:mrp.procurement,product_qty:0
|
||||
#: rml:bom.structure:0
|
||||
#: field:mrp.procurement,product_qty:0
|
||||
#: rml:mrp.production.order:0
|
||||
#: wizard_field:product.product.procurement,init,qty:0
|
||||
msgid "Quantity"
|
||||
msgstr "Ilość"
|
||||
|
||||
#. module: mrp
|
||||
#: selection:mrp.procurement,priority:0 selection:mrp.production,priority:0
|
||||
#: selection:mrp.procurement,priority:0
|
||||
#: selection:mrp.production,priority:0
|
||||
msgid "Not urgent"
|
||||
msgstr "Nie pilne"
|
||||
|
||||
#. module: mrp
|
||||
#: model:process.transition,name:mrp.process_transition_procureserviceproduct0
|
||||
msgid "Procure Service Product"
|
||||
msgstr ""
|
||||
msgstr "Nabycie usługi"
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.production:0
|
||||
|
@ -359,10 +366,11 @@ msgstr "Proces nabycia"
|
|||
#. module: mrp
|
||||
#: field:mrp.production,date_planned_date:0
|
||||
msgid "Scheduled Date"
|
||||
msgstr ""
|
||||
msgstr "Zaplanowana data"
|
||||
|
||||
#. module: mrp
|
||||
#: selection:mrp.procurement,priority:0 selection:mrp.production,priority:0
|
||||
#: selection:mrp.procurement,priority:0
|
||||
#: selection:mrp.production,priority:0
|
||||
msgid "Urgent"
|
||||
msgstr "Pilne"
|
||||
|
||||
|
@ -478,19 +486,20 @@ msgid "Stockable Product Stock"
|
|||
msgstr ""
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom,product_uos:0 field:mrp.production.product.line,product_uos:0
|
||||
#: field:mrp.bom,product_uos:0
|
||||
#: field:mrp.production.product.line,product_uos:0
|
||||
msgid "Product UOS"
|
||||
msgstr "JS produktu"
|
||||
|
||||
#. module: mrp
|
||||
#: model:process.transition,name:mrp.process_transition_productionprocureproducts0
|
||||
msgid "Production Procure Products"
|
||||
msgstr ""
|
||||
msgstr "Nabycie z produkcji"
|
||||
|
||||
#. module: mrp
|
||||
#: model:process.process,name:mrp.process_process_serviceproductprocess0
|
||||
msgid "Service Product Process"
|
||||
msgstr ""
|
||||
msgstr "Proces usługi"
|
||||
|
||||
#. module: mrp
|
||||
#: model:process.transition,note:mrp.process_transition_purchaseprocure0
|
||||
|
@ -544,7 +553,7 @@ msgstr "Czas produkcji"
|
|||
#: model:ir.actions.act_window,name:mrp.mrp_procurement_action4
|
||||
#: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action4
|
||||
msgid "Exceptions Procurements to Fix"
|
||||
msgstr ""
|
||||
msgstr "Wyjątki nabycia do poprawienia"
|
||||
|
||||
#. module: mrp
|
||||
#: selection:mrp.procurement,state:0
|
||||
|
@ -602,8 +611,10 @@ msgid "Waiting"
|
|||
msgstr "Oczekiwanie"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.model,name:mrp.model_mrp_routing field:mrp.bom,routing_id:0
|
||||
#: field:mrp.production,routing_id:0 view:mrp.routing:0
|
||||
#: model:ir.model,name:mrp.model_mrp_routing
|
||||
#: field:mrp.bom,routing_id:0
|
||||
#: field:mrp.production,routing_id:0
|
||||
#: view:mrp.routing:0
|
||||
#: model:process.node,name:mrp.process_node_routing0
|
||||
msgid "Routing"
|
||||
msgstr "Marszruta"
|
||||
|
@ -676,7 +687,8 @@ msgid "Production orders"
|
|||
msgstr "Zamówienia produkcji"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom,child_complete_ids:0 field:mrp.bom,child_ids:0
|
||||
#: field:mrp.bom,child_complete_ids:0
|
||||
#: field:mrp.bom,child_ids:0
|
||||
msgid "BoM Hyerarchy"
|
||||
msgstr "Hierarchia Zest. Mat."
|
||||
|
||||
|
@ -702,7 +714,8 @@ msgid "Security Days"
|
|||
msgstr "Dni na wszelki wypadek"
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.production:0 field:mrp.production,cycle_total:0
|
||||
#: view:mrp.production:0
|
||||
#: field:mrp.production,cycle_total:0
|
||||
msgid "Total Cycles"
|
||||
msgstr "Suma cykli"
|
||||
|
||||
|
@ -762,7 +775,9 @@ msgid "Production done"
|
|||
msgstr "Produkcja wykonana"
|
||||
|
||||
#. module: mrp
|
||||
#: rml:bom.structure:0 field:mrp.bom,code:0 field:mrp.routing,code:0
|
||||
#: rml:bom.structure:0
|
||||
#: field:mrp.bom,code:0
|
||||
#: field:mrp.routing,code:0
|
||||
#: field:mrp.workcenter,code:0
|
||||
msgid "Code"
|
||||
msgstr "Kod"
|
||||
|
@ -774,7 +789,8 @@ msgstr "Liczba godzin"
|
|||
|
||||
#. module: mrp
|
||||
#: model:ir.model,name:mrp.model_mrp_property_group
|
||||
#: field:mrp.property,group_id:0 field:mrp.property.group,name:0
|
||||
#: field:mrp.property,group_id:0
|
||||
#: field:mrp.property.group,name:0
|
||||
msgid "Property Group"
|
||||
msgstr "Grupa właściwości"
|
||||
|
||||
|
@ -789,12 +805,14 @@ msgid "References"
|
|||
msgstr "Odnośniki"
|
||||
|
||||
#. module: mrp
|
||||
#: wizard_button:change_production_qty,confirm,end:0 view:mrp.procurement:0
|
||||
#: wizard_button:change_production_qty,confirm,end:0
|
||||
#: view:mrp.procurement:0
|
||||
#: selection:mrp.procurement,state:0
|
||||
#: wizard_button:mrp.procurement.compute,init,end:0
|
||||
#: wizard_button:mrp.procurement.compute.all,init,end:0
|
||||
#: wizard_button:mrp.procurement.orderpoint.compute,init,end:0
|
||||
#: view:mrp.production:0 wizard_button:mrp.workcenter.load,init,end:0
|
||||
#: view:mrp.production:0
|
||||
#: wizard_button:mrp.workcenter.load,init,end:0
|
||||
#: wizard_button:product.product.procurement,init,end:0
|
||||
#: wizard_button:product_price,init,end:0
|
||||
msgid "Cancel"
|
||||
|
@ -876,10 +894,14 @@ msgid "Nbr of cycle"
|
|||
msgstr "Liczba cykli"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom,name:0 field:mrp.procurement,name:0
|
||||
#: rml:mrp.production.order:0 field:mrp.production.product.line,name:0
|
||||
#: field:mrp.property,name:0 field:mrp.routing,name:0
|
||||
#: field:mrp.routing.workcenter,name:0 field:stock.warehouse.orderpoint,name:0
|
||||
#: field:mrp.bom,name:0
|
||||
#: field:mrp.procurement,name:0
|
||||
#: rml:mrp.production.order:0
|
||||
#: field:mrp.production.product.line,name:0
|
||||
#: field:mrp.property,name:0
|
||||
#: field:mrp.routing,name:0
|
||||
#: field:mrp.routing.workcenter,name:0
|
||||
#: field:stock.warehouse.orderpoint,name:0
|
||||
msgid "Name"
|
||||
msgstr "Nazwa"
|
||||
|
||||
|
@ -992,7 +1014,8 @@ msgid "Notes"
|
|||
msgstr "Uwagi"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.model,name:mrp.model_mrp_bom view:mrp.bom:0
|
||||
#: model:ir.model,name:mrp.model_mrp_bom
|
||||
#: view:mrp.bom:0
|
||||
#: field:mrp.production,bom_id:0
|
||||
msgid "Bill of Material"
|
||||
msgstr "Zestawienie materiałowe"
|
||||
|
@ -1053,7 +1076,8 @@ msgid "Sale Ref"
|
|||
msgstr "Odnośnik sprzedaży"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.procurement,priority:0 field:mrp.production,priority:0
|
||||
#: field:mrp.procurement,priority:0
|
||||
#: field:mrp.production,priority:0
|
||||
#: rml:mrp.production.order:0
|
||||
msgid "Priority"
|
||||
msgstr "Priorytet"
|
||||
|
@ -1082,7 +1106,8 @@ msgstr "Narzędzie"
|
|||
|
||||
#. module: mrp
|
||||
#: help:mrp.production,location_src_id:0
|
||||
msgid "Location where the system will look for products used in raw materials."
|
||||
msgid ""
|
||||
"Location where the system will look for products used in raw materials."
|
||||
msgstr ""
|
||||
"Strefa, w której system oczekuje produktów jako materiałów do produkcji."
|
||||
|
||||
|
@ -1118,7 +1143,8 @@ msgid "Max Quantity"
|
|||
msgstr "Ilość maks."
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.model,name:mrp.model_mrp_procurement view:mrp.procurement:0
|
||||
#: model:ir.model,name:mrp.model_mrp_procurement
|
||||
#: view:mrp.procurement:0
|
||||
msgid "Procurement"
|
||||
msgstr "Nabycie"
|
||||
|
||||
|
@ -1168,7 +1194,8 @@ msgid "Procurement for raw materials."
|
|||
msgstr "Nabycie dla materiałów do produkcji."
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.procurement:0 field:mrp.procurement,note:0
|
||||
#: view:mrp.procurement:0
|
||||
#: field:mrp.procurement,note:0
|
||||
#: rml:mrp.production.order:0
|
||||
msgid "Note"
|
||||
msgstr "Uwaga"
|
||||
|
@ -1194,8 +1221,10 @@ msgid "Define a routing to describe the manufacturing steps."
|
|||
msgstr "Zdefiniuj marszrutę, aby opisać kroki produkcyjne."
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom,active:0 field:mrp.routing,active:0
|
||||
#: field:mrp.workcenter,active:0 field:stock.warehouse.orderpoint,active:0
|
||||
#: field:mrp.bom,active:0
|
||||
#: field:mrp.routing,active:0
|
||||
#: field:mrp.workcenter,active:0
|
||||
#: field:stock.warehouse.orderpoint,active:0
|
||||
msgid "Active"
|
||||
msgstr "Aktywne"
|
||||
|
||||
|
@ -1208,18 +1237,23 @@ msgstr "Nabądź produkty"
|
|||
#: model:ir.actions.act_window,name:mrp.mrp_property_action
|
||||
#: model:ir.ui.menu,name:mrp.menu_mrp_property_action
|
||||
#: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action_prop
|
||||
#: view:mrp.bom:0 field:mrp.bom,property_ids:0 view:mrp.procurement:0
|
||||
#: field:mrp.procurement,property_ids:0 view:mrp.property:0
|
||||
#: view:mrp.bom:0
|
||||
#: field:mrp.bom,property_ids:0
|
||||
#: view:mrp.procurement:0
|
||||
#: field:mrp.procurement,property_ids:0
|
||||
#: view:mrp.property:0
|
||||
msgid "Properties"
|
||||
msgstr "Właściwości"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.procurement,date_planned:0 field:mrp.production,date_planned:0
|
||||
#: field:mrp.procurement,date_planned:0
|
||||
#: field:mrp.production,date_planned:0
|
||||
msgid "Scheduled date"
|
||||
msgstr "Planowana data"
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.procurement:0 view:mrp.production:0
|
||||
#: view:mrp.procurement:0
|
||||
#: view:mrp.production:0
|
||||
msgid "Extra Information"
|
||||
msgstr "Dodatkowe informacje"
|
||||
|
||||
|
@ -1267,7 +1301,8 @@ msgid "Change Product Qty."
|
|||
msgstr "Zmień ilość produktu"
|
||||
|
||||
#. module: mrp
|
||||
#: selection:mrp.procurement,state:0 selection:mrp.production,state:0
|
||||
#: selection:mrp.procurement,state:0
|
||||
#: selection:mrp.production,state:0
|
||||
msgid "Done"
|
||||
msgstr "Wykonano"
|
||||
|
||||
|
@ -1315,15 +1350,18 @@ msgid "Capacity per Cycle"
|
|||
msgstr "Ilość na cykl"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom,product_id:0 field:mrp.procurement,product_id:0
|
||||
#: field:mrp.production,product_id:0 rml:mrp.production.order:0
|
||||
#: field:mrp.bom,product_id:0
|
||||
#: field:mrp.procurement,product_id:0
|
||||
#: field:mrp.production,product_id:0
|
||||
#: rml:mrp.production.order:0
|
||||
#: field:mrp.production.product.line,product_id:0
|
||||
#: field:stock.warehouse.orderpoint,product_id:0
|
||||
msgid "Product"
|
||||
msgstr "Produkt"
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.production:0 field:mrp.production,hour_total:0
|
||||
#: view:mrp.production:0
|
||||
#: field:mrp.production,hour_total:0
|
||||
msgid "Total Hours"
|
||||
msgstr "Suma godzin"
|
||||
|
||||
|
@ -1338,7 +1376,8 @@ msgid "Product BoM Structure"
|
|||
msgstr "Struktura Zest. Mat. produktu"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom,product_uom:0 field:mrp.production,product_uom:0
|
||||
#: field:mrp.bom,product_uom:0
|
||||
#: field:mrp.production,product_uom:0
|
||||
#: field:mrp.production.product.line,product_uom:0
|
||||
#: field:stock.warehouse.orderpoint,product_uom:0
|
||||
msgid "Product UOM"
|
||||
|
@ -1364,14 +1403,16 @@ msgid "Product type is Stockable and procure method is make to stock"
|
|||
msgstr "Typ produktu jest Rejestrowany i metoda nabycia jest Na zapas."
|
||||
|
||||
#. module: mrp
|
||||
#: help:mrp.bom,date_start:0 help:mrp.bom,date_stop:0
|
||||
#: help:mrp.bom,date_start:0
|
||||
#: help:mrp.bom,date_stop:0
|
||||
msgid "Validity of this BoM or component. Keep empty if it's always valid."
|
||||
msgstr ""
|
||||
"Ważność tego Zestawienia materiałowego lub komponentu. Pozostaw puste, jeśli "
|
||||
"ma być zawsze ważny."
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.procurement,product_uos:0 field:mrp.production,product_uos:0
|
||||
#: field:mrp.procurement,product_uos:0
|
||||
#: field:mrp.production,product_uos:0
|
||||
msgid "Product UoS"
|
||||
msgstr "JS produktu"
|
||||
|
||||
|
@ -1383,12 +1424,14 @@ msgstr "JM produktu"
|
|||
#. module: mrp
|
||||
#: model:ir.model,name:mrp.model_mrp_workcenter
|
||||
#: field:mrp.production.workcenter.line,workcenter_id:0
|
||||
#: field:mrp.routing.workcenter,workcenter_id:0 view:mrp.workcenter:0
|
||||
#: field:mrp.routing.workcenter,workcenter_id:0
|
||||
#: view:mrp.workcenter:0
|
||||
msgid "Workcenter"
|
||||
msgstr "Centrum robocze"
|
||||
|
||||
#. module: mrp
|
||||
#: selection:mrp.procurement,priority:0 selection:mrp.production,priority:0
|
||||
#: selection:mrp.procurement,priority:0
|
||||
#: selection:mrp.production,priority:0
|
||||
msgid "Very Urgent"
|
||||
msgstr "Bardzo pilne"
|
||||
|
||||
|
@ -1428,7 +1471,8 @@ msgid "Stockable Order Request"
|
|||
msgstr ""
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.production:0 view:mrp.production.product.line:0
|
||||
#: view:mrp.production:0
|
||||
#: view:mrp.production.product.line:0
|
||||
msgid "Scheduled Products"
|
||||
msgstr "Zaplanowane produkty"
|
||||
|
||||
|
@ -1455,7 +1499,8 @@ msgstr "Jeśli w zamówieniu nabycia produkt jest typu Rejestrowany."
|
|||
|
||||
#. module: mrp
|
||||
#: model:ir.model,name:mrp.model_mrp_production_workcenter_line
|
||||
#: view:mrp.production:0 rml:mrp.production.order:0
|
||||
#: view:mrp.production:0
|
||||
#: rml:mrp.production.order:0
|
||||
msgid "Work Orders"
|
||||
msgstr "Centra robocze"
|
||||
|
||||
|
@ -1603,7 +1648,8 @@ msgstr "Wykorzystanie centrów roboczych"
|
|||
msgid ""
|
||||
"Efficiency on the production. A factor of 0.9 means a loss of 10% in the "
|
||||
"production."
|
||||
msgstr "Efektywność produkcji. Współczynnik 0,9 oznacza stratę 10% produkcji."
|
||||
msgstr ""
|
||||
"Efektywność produkcji. Współczynnik 0,9 oznacza stratę 10% produkcji."
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom,product_rounding:0
|
||||
|
@ -1693,7 +1739,8 @@ msgid "plus"
|
|||
msgstr "plus"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom.revision,bom_id:0 field:mrp.procurement,bom_id:0
|
||||
#: field:mrp.bom.revision,bom_id:0
|
||||
#: field:mrp.procurement,bom_id:0
|
||||
msgid "BoM"
|
||||
msgstr "Zest. Mat."
|
||||
|
||||
|
@ -1737,7 +1784,8 @@ msgid "last indice"
|
|||
msgstr ""
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom,revision_ids:0 view:mrp.bom.revision:0
|
||||
#: field:mrp.bom,revision_ids:0
|
||||
#: view:mrp.bom.revision:0
|
||||
msgid "BoM Revisions"
|
||||
msgstr "Wersje Zest. Mat."
|
||||
|
||||
|
@ -1747,12 +1795,14 @@ msgid "Retry"
|
|||
msgstr "Powtórz"
|
||||
|
||||
#. module: mrp
|
||||
#: selection:mrp.procurement,state:0 selection:mrp.production,state:0
|
||||
#: selection:mrp.procurement,state:0
|
||||
#: selection:mrp.production,state:0
|
||||
msgid "Draft"
|
||||
msgstr "Projekt"
|
||||
|
||||
#. module: mrp
|
||||
#: selection:mrp.procurement,priority:0 selection:mrp.production,priority:0
|
||||
#: selection:mrp.procurement,priority:0
|
||||
#: selection:mrp.production,priority:0
|
||||
msgid "Normal"
|
||||
msgstr "Normalne"
|
||||
|
||||
|
@ -1806,8 +1856,11 @@ msgid "from stock"
|
|||
msgstr "z zapasu"
|
||||
|
||||
#. module: mrp
|
||||
#: view:mrp.bom:0 view:mrp.property:0 view:mrp.property.group:0
|
||||
#: view:mrp.routing:0 view:mrp.routing.workcenter:0
|
||||
#: view:mrp.bom:0
|
||||
#: view:mrp.property:0
|
||||
#: view:mrp.property.group:0
|
||||
#: view:mrp.routing:0
|
||||
#: view:mrp.routing.workcenter:0
|
||||
msgid "General Information"
|
||||
msgstr "Informacje ogólne"
|
||||
|
||||
|
@ -1860,10 +1913,14 @@ msgid "Change Product Qty"
|
|||
msgstr "Zmień ilość produktu"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom.revision,description:0 view:mrp.property:0
|
||||
#: field:mrp.property,description:0 field:mrp.property.group,description:0
|
||||
#: view:mrp.routing:0 field:mrp.routing,note:0
|
||||
#: field:mrp.routing.workcenter,note:0 view:mrp.workcenter:0
|
||||
#: field:mrp.bom.revision,description:0
|
||||
#: view:mrp.property:0
|
||||
#: field:mrp.property,description:0
|
||||
#: field:mrp.property.group,description:0
|
||||
#: view:mrp.routing:0
|
||||
#: field:mrp.routing,note:0
|
||||
#: field:mrp.routing.workcenter,note:0
|
||||
#: view:mrp.workcenter:0
|
||||
#: field:mrp.workcenter,note:0
|
||||
msgid "Description"
|
||||
msgstr "Opis"
|
||||
|
@ -1923,7 +1980,8 @@ msgid "On Stock"
|
|||
msgstr "Na zapas"
|
||||
|
||||
#. module: mrp
|
||||
#: field:mrp.bom,sequence:0 rml:mrp.production.order:0
|
||||
#: field:mrp.bom,sequence:0
|
||||
#: rml:mrp.production.order:0
|
||||
#: field:mrp.production.workcenter.line,sequence:0
|
||||
#: field:mrp.routing.workcenter,sequence:0
|
||||
msgid "Sequence"
|
||||
|
@ -1981,4 +2039,9 @@ msgstr "Tygodniowe odchylenie wartości zapasów"
|
|||
#: model:ir.model,name:mrp.model_report_mrp_inout
|
||||
#: view:report.mrp.inout:0
|
||||
msgid "Stock value variation"
|
||||
msgstr "Odchylenie wartości zapasów"
|
||||
msgstr "Zmiany wartości zapasów"
|
||||
|
||||
#. module: mrp
|
||||
#: view:board.board:0
|
||||
msgid "Next production orders"
|
||||
msgstr "Następne zamówienie produkcji"
|
||||
|
|
|
@ -100,7 +100,6 @@ class StockMove(osv.osv):
|
|||
'location_id': move.location_dest_id.id,
|
||||
'auto_validate': True,
|
||||
'picking_id': False,
|
||||
'location_id': dest,
|
||||
'state': 'waiting'
|
||||
})
|
||||
for m in procurement_obj.search(cr, uid, [('move_id','=',move.id)], context):
|
||||
|
|
|
@ -78,8 +78,8 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Parameters Configure wizard">
|
||||
<group colspan="4" col="8">
|
||||
<group colspan="3" width="180" height="250">
|
||||
<field name="config_logo" widget="image" width="200" height="100" nolabel="1" colspan="1"/>
|
||||
<group colspan="3" width="220" height="250">
|
||||
<field name="config_logo" widget="image" width="220" height="130" nolabel="1" colspan="1"/>
|
||||
<newline/>
|
||||
<label align="0.0" string="This wizard will automatically configure the web client for Business Intelligence." width="200" colspan="2"/>
|
||||
</group>
|
||||
|
|
|
@ -319,7 +319,7 @@ class procurement_order(osv.osv):
|
|||
move_obj = self.pool.get('stock.move')
|
||||
for procurement in self.browse(cr, uid, ids):
|
||||
if procurement.product_qty <= 0.00:
|
||||
raise osv.except_osv(_('Data Insufficient !'), _('Please check the Quantity of Procurement Order(s), it should not be less than 1!'))
|
||||
raise osv.except_osv(_('Data Insufficient !'), _('Please check the Quantity in Procurement Order(s), it should not be less than 1!'))
|
||||
if procurement.product_id.type in ('product', 'consu'):
|
||||
if not procurement.move_id:
|
||||
source = procurement.location_id.id
|
||||
|
|
|
@ -192,6 +192,7 @@
|
|||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="product_product_tree_view"/>
|
||||
<field name="search_view_id" ref="product_search_form_view"/>
|
||||
<field name="help">In OpenERP, a product is something you can buy and sell. It can be a raw material, a stockable product, a consumable or a service. The product form contains a detailed information on the products like procurement logistic, sales price, product category, suppliers, etc.</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="base.menu_product" name="Products" parent="base.menu_base_partner" sequence="9"/>
|
||||
|
@ -250,6 +251,7 @@
|
|||
<field name="domain">[('parent_id','=',False)]</field>
|
||||
<field name="view_type">tree</field>
|
||||
<field name="view_id" ref="product_category_tree_view"/>
|
||||
<field name="help">Products category opens a tree structure view of your products by category.</field>
|
||||
</record>
|
||||
<menuitem
|
||||
action="product_category_action"
|
||||
|
@ -488,7 +490,7 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Product Variant">
|
||||
<field name="product_tmpl_id" select="1"/>
|
||||
<field name="product_tmpl_id" select="1"/>
|
||||
<field name="active" select="1"/>
|
||||
<field name="variants" select="1"/>
|
||||
<field name="default_code" select="1"/>
|
||||
|
|
|
@ -337,6 +337,7 @@ class task(osv.osv):
|
|||
def copy_data(self, cr, uid, id, default={}, context=None):
|
||||
default = default or {}
|
||||
default['work_ids'] = []
|
||||
default['active'] = True
|
||||
return super(task, self).copy_data(cr, uid, id, default, context)
|
||||
|
||||
def _check_dates(self, cr, uid, ids, context=None):
|
||||
|
@ -353,8 +354,17 @@ class task(osv.osv):
|
|||
return False
|
||||
return True
|
||||
|
||||
def _is_template(self, cr, uid, ids, field_name, arg, context=None):
|
||||
res = {}
|
||||
for task in self.browse(cr, uid, ids, context=context):
|
||||
res[task.id] = True
|
||||
if task.project_id:
|
||||
if task.project_id.active == False or task.project_id.state == 'template':
|
||||
res[task.id] = False
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the task without removing it. This is basically used for the management of templates of projects and tasks."),
|
||||
'active': fields.function(_is_template, method=True, store=True, string='Not a Template Task', type='boolean', help="This field is computed automatically and have the same behavior than the boolean 'active' field: if the task is linked to a template or unactivated project, it will be hidden unless specifically asked."),
|
||||
'name': fields.char('Task Summary', size=128, required=True),
|
||||
'description': fields.text('Description'),
|
||||
'priority' : fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Urgent'), ('0','Very urgent')], 'Importance'),
|
||||
|
|
|
@ -1,103 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import pooler
|
||||
import datetime
|
||||
|
||||
def timeformat_convert(cr, uid, time_string):
|
||||
# Function to convert input time string:: 8.5 to output time string 8:30
|
||||
split_list = str(time_string).split('.')
|
||||
hour_part = split_list[0]
|
||||
mins_part = split_list[1]
|
||||
round_mins = int(round(float(mins_part) * 60,-2))
|
||||
converted_string = hour_part + ':' + str(round_mins)[0:2]
|
||||
return converted_string
|
||||
|
||||
def leaves_resource(cr, uid, calendar_id, resource_id=False, resource_calendar=False):
|
||||
# To get the leaves for the resource_ids working on phase
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
resource_leaves_pool = pool.get('resource.calendar.leaves')
|
||||
leaves = []
|
||||
if resource_id:
|
||||
resource_leave_ids = resource_leaves_pool.search(cr, uid, ['|',('calendar_id','=',calendar_id),('calendar_id','=',resource_calendar),('resource_id','=',resource_id)])
|
||||
else:
|
||||
resource_leave_ids = resource_leaves_pool.search(cr, uid, [('calendar_id','=',calendar_id),('resource_id','=',False)])
|
||||
res_leaves = resource_leaves_pool.read(cr, uid, resource_leave_ids, ['date_from','date_to'])
|
||||
for leave in range(len(res_leaves)):
|
||||
dt_start = datetime.datetime.strptime(res_leaves[leave]['date_from'],'%Y-%m-%d %H:%M:%S')
|
||||
dt_end = datetime.datetime.strptime(res_leaves[leave]['date_to'],'%Y-%m-%d %H:%M:%S')
|
||||
no = dt_end - dt_start
|
||||
[leaves.append((dt_start + datetime.timedelta(days=x)).strftime('%Y-%m-%d')) for x in range(int(no.days + 1))]
|
||||
leaves.sort()
|
||||
return leaves
|
||||
|
||||
def compute_working_calendar(cr, uid, calendar_id):
|
||||
# To change the format of working calendar to bring it into 'faces' format
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
resource_week_pool = pool.get('resource.calendar.week')
|
||||
time_range = "8:00-8:00"
|
||||
non_working = ""
|
||||
wk = {"0":"mon", "1":"tue", "2":"wed", "3":"thu", "4":"fri", "5":"sat", "6":"sun"}
|
||||
wk_days = {}
|
||||
wk_time = {}
|
||||
wktime_list = []
|
||||
wktime_cal = []
|
||||
week_ids = resource_week_pool.search(cr, uid, [('calendar_id','=',calendar_id)])
|
||||
week_obj = resource_week_pool.read(cr, uid, week_ids, ['dayofweek', 'hour_from', 'hour_to'])
|
||||
|
||||
# Converting time formats into appropriate format required
|
||||
# and creating a list like [('mon', '8:00-12:00'), ('mon', '13:00-18:00')]
|
||||
for week in week_obj:
|
||||
res_str = ""
|
||||
if wk.has_key(week['dayofweek']):
|
||||
day = wk[week['dayofweek']]
|
||||
wk_days[week['dayofweek']] = wk[week['dayofweek']]
|
||||
|
||||
hour_from_str = timeformat_convert(cr, uid, week['hour_from'])
|
||||
hour_to_str = timeformat_convert(cr, uid, week['hour_to'])
|
||||
res_str = hour_from_str + '-' + hour_to_str
|
||||
wktime_list.append((day,res_str))
|
||||
|
||||
# Converting it to format like [('mon', '8:00-12:00', '13:00-18:00')]
|
||||
for item in wktime_list:
|
||||
if wk_time.has_key(item[0]):
|
||||
wk_time[item[0]].append(item[1])
|
||||
else:
|
||||
wk_time[item[0]] = [item[0]]
|
||||
wk_time[item[0]].append(item[1])
|
||||
|
||||
for k,v in wk_time.items():
|
||||
wktime_cal.append(tuple(v))
|
||||
|
||||
# For non working days adding [('tue,wed,fri,sat,sun', '8:00-8:00')]
|
||||
for k,v in wk_days.items():
|
||||
if wk.has_key(k):
|
||||
wk.pop(k)
|
||||
for v in wk.itervalues():
|
||||
non_working += v + ','
|
||||
if non_working:
|
||||
wktime_cal.append((non_working[:-1],time_range))
|
||||
|
||||
return wktime_cal
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -159,9 +159,7 @@ class project_issue(osv.osv, crm.crm_case):
|
|||
\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\'.'),
|
||||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'email_cc': fields.char('Watchers Emails', size=256, help="These people\
|
||||
will receive a copy of the future" \
|
||||
" communication between partner and users by email"),
|
||||
'email_cc': fields.char('Watchers Emails', size=256, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'date_open': fields.datetime('Opened', readonly=True),
|
||||
# Project Issue fields
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'project.issue', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
<form string="Communication history">
|
||||
<group col="4" colspan="4">
|
||||
|
@ -104,14 +104,14 @@
|
|||
string="Reply"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'reply', 'model': 'project.issue', 'include_original' : True}"
|
||||
icon="gtk-undo" type="action" />
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</form>
|
||||
</field>
|
||||
<separator colspan="4"/>
|
||||
<button colspan="4" string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'project.issue'}"
|
||||
icon="gtk-go-forward" type="action" />
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
</page>
|
||||
<page string="History" groups="base.group_extended">
|
||||
<group col="2" colspan="2">
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
<field name="res_model">project.resource.allocation</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">gantt,tree,form</field>
|
||||
<field name="context">{'search_default_resource': 1} </field>
|
||||
<field name="context">{}</field>
|
||||
<!--<field name="search_view_id" ref="view_project_phase_search"/>-->
|
||||
</record>
|
||||
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
-
|
||||
!record {model: project.task, id: project_task_t00}:
|
||||
name: t1
|
||||
occupation_rate: 1.0
|
||||
planned_hours: 20.0
|
||||
remaining_hours: 20.0
|
||||
state: draft
|
||||
|
@ -50,7 +49,6 @@
|
|||
-
|
||||
!record {model: project.task, id: project_task_t11}:
|
||||
name: t2
|
||||
occupation_rate: 1.0
|
||||
planned_hours: 25.0
|
||||
remaining_hours: 25.0
|
||||
state: draft
|
||||
|
@ -62,7 +60,6 @@
|
|||
-
|
||||
!record {model: project.task, id: project_task_t22}:
|
||||
name: t3
|
||||
occupation_rate: 1.0
|
||||
planned_hours: 30.0
|
||||
remaining_hours: 30.0
|
||||
state: draft
|
||||
|
@ -75,7 +72,6 @@
|
|||
-
|
||||
!record {model: project.task, id: project_task_t33}:
|
||||
name: t4
|
||||
occupation_rate: 1.0
|
||||
planned_hours: 25.0
|
||||
remaining_hours: 25.0
|
||||
state: draft
|
||||
|
@ -105,4 +101,4 @@
|
|||
prj=self.browse(cr, uid, [ref("project_project_project1")])[0]
|
||||
for task in prj.tasks:
|
||||
if (not task.user_id) or (not task.date_start) or (not task.date_end):
|
||||
raise AssertionError("Project Tasks not scheduled")
|
||||
raise AssertionError("Project Tasks not scheduled")
|
||||
|
|
|
@ -81,7 +81,7 @@ def compute_working_calendar(cr, uid, calendar_id, context=None):
|
|||
"""
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
resource_week_obj = pool.get('resource.calendar.week')
|
||||
resource_attendance_obj = pool.get('resource.calendar.attendance')
|
||||
time_range = "8:00-8:00"
|
||||
non_working = ""
|
||||
week_days = {"0": "mon", "1": "tue", "2": "wed","3": "thu", "4": "fri", "5": "sat", "6": "sun"}
|
||||
|
@ -89,8 +89,8 @@ def compute_working_calendar(cr, uid, calendar_id, context=None):
|
|||
wk_time = {}
|
||||
wktime_list = []
|
||||
wktime_cal = []
|
||||
week_ids = resource_week_obj.search(cr, uid, [('calendar_id', '=', calendar_id)], context=context)
|
||||
weeks = resource_week_obj.read(cr, uid, week_ids, ['dayofweek', 'hour_from', 'hour_to'], context=context)
|
||||
week_ids = resource_attendance_obj.search(cr, uid, [('calendar_id', '=', calendar_id)], context=context)
|
||||
weeks = resource_attendance_obj.read(cr, uid, week_ids, ['dayofweek', 'hour_from', 'hour_to'], context=context)
|
||||
# Convert time formats into appropriate format required
|
||||
# and create a list like [('mon', '8:00-12:00'), ('mon', '13:00-18:00')]
|
||||
for week in weeks:
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue