In python fetach the text of DropDownlist :
service_type = dict(self._columns['service_type_ups'].selection).get(stockpicking.service_type_ups)
where :
stockpicking = it is the object of model which have the field 'service_type_ups' in Odoo
----------------------------------------------------------------------------------------------------------------------------------------------
View Inheritance In Odoo(OpenERP) :
<?xml version="1.0" encoding="utf-8"?><openerp>
<data>
<record id="suspend_order_form" model="ir.ui.view">
<field name="name">suspend.order.form</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<button name="cancel" position="before">
<button name="state_in_suspend" states="draft,sent,cancel,waiting_date,progress,manual,shipping_except,invoice_except" string="Suspend Order" groups="base.group_user" type="object"/>
</button>
<field name="state" position="replace">
<field name="state" widget="statusbar" statusbar_visible="draft,sent,progress,suspend,done" statusbar_colors='{"invoice_except":"red","waiting_date":"blue"}'/>
</field>
</field>
</record>
</data>
</openerp>
----------------------------------------------------------------------------------------------------------------------------------------------
When we want to get the ids of many2many relation :
Example :
class project(osv.osv):
_name = "project.project"
_columns = {
'type_ids': fields.many2many('project. task.type', 'project_task_type_rel', 'project_id', 'type_id', 'Tasks Stages'),
}
project()
------------------------------ -
class jira_config(osv.osv):
_name = 'jira.config'
_columns = {
}
def get_stage_id(self, cr, uid, pro_search_id ,status_name) :
cr.execute('select type_id from project_task_type_rel where project_id = %s' %(pro_search_id))
type_ids = cr.fetchall()
if type_ids :
for id1 in type_ids :
type_obj = self.pool.get('project.task. type').browse(cr, uid, list(id1))
if type_obj.name == status_name :
return id1
return False
# where pro_search_id[0] is id of 'project.project' object
def import_issue_from_jira(self, cr, uid, ids, context = None) :
stage_id = self.get_stage_id(cr, uid, pro_search_id[0], result['fields']['status'][' name'])
if stage_id :
# Do your operation hear
----------------------------------------------------------------------------------------------------------------------------------------------
Generate/Export Customer Invoice in XML Format
by using following code we can generate xml file with invoice Data :
1. Py Code :
from openerp import models
class account_invoice(models.Model):
_inherit = "account.invoice"
def generate_xml(self, cr, uid, ids, context=None):
invoice_line_obj = self.pool.get('account.invoice.line')
invoice_obj = self.browse(cr, uid, ids[0])
invoice_tax_obj = self.pool.get('account.invoice.tax')
newLine = '<?xml version="1.0" encoding="UTF-8"?>\n'
file_obj = open("/home/tarachand/Desktop/customer_invoice.xml", "w")
file_obj.write(newLine)
file_obj.write('<Invoice>\n')
file_obj.write('\t<Number>'+invoice_obj.number+'</Number>\n')
file_obj.write('\t<InvoiceDate>'+invoice_obj.date_invoice+'</InvoiceDate>\n')
file_obj.write('\t<Customer>'+invoice_obj.partner_id.display_name+'</Customer>\n')
address = invoice_obj.partner_id.street
address = str(address.encode('utf-8'))
address += " "+str(invoice_obj.partner_id.zip)
address += " "+str(invoice_obj.partner_id.city)
if invoice_obj.partner_id.country_id :
address += " "+str(invoice_obj.partner_id.country_id.name)
file_obj.write('\t<Address>'+address+'</Address>\n')
file_obj.write('\t<Journal>'+invoice_obj.journal_id.display_name+'</Journal>\n')
file_obj.write('\t<Account>'+invoice_obj.account_id.display_name+'</Account>\n')
file_obj.write('\t<Currency>'+invoice_obj.currency_id.display_name+'</Currency>\n')
file_obj.write('\t<InvoiceLines>\n')
line_ids = invoice_line_obj.search(cr, uid,[('invoice_id','=',ids[0])])
if line_ids :
for line_id in line_ids :
line_browse = invoice_line_obj.browse(cr, uid, line_id)
file_obj.write('\t\t<InvoiceLine>\n')
if line_browse.product_id :
file_obj.write('\t\t\t<Product>'+str(line_browse.product_id.display_name)+'</Product>\n')
else :
file_obj.write('\t\t\t<Product></Product>\n')
file_obj.write('\t\t\t<Description>'+str(line_browse.name.encode('utf-8'))+'</Description>\n')
if line_browse.account_id :
file_obj.write('\t\t\t<Account>'+str(line_browse.account_id.display_name)+'</Account>\n')
else :
file_obj.write('\t\t\t<Account></Account>\n')
if line_browse.account_analytic_id :
file_obj.write('\t\t\t<AnalyticAccount>'+str(line_browse.account_analytic_id.display_name)+'</AnalyticAccount>\n')
else :
file_obj.write('\t\t\t<AnalyticAccount></AnalyticAccount>\n')
file_obj.write('\t\t\t<Quantity>'+str(line_browse.quantity)+'</Quantity>\n')
if line_browse.product_id :
file_obj.write('\t\t\t<UnitOfMeasure>'+str(line_browse.product_id.product_tmpl_id.uom_po_id.display_name)+'</UnitOfMeasure>\n')
else :
file_obj.write('\t\t\t<UnitOfMeasure></UnitOfMeasure>\n')
file_obj.write('\t\t\t<UnitPrice>'+str(line_browse.price_unit)+'</UnitPrice>\n')
file_obj.write('\t\t\t<Amount>'+str(line_browse.price_subtotal)+'</Amount>\n')
file_obj.write('\t\t</InvoiceLine>\n')
file_obj.write('\t</InvoiceLines>\n')
file_obj.write('\t<OtherInfo>\n')
file_obj.write('\t\t<SalesPerson>'+str(invoice_obj.user_id.display_name)+'</SalesPerson>\n')
file_obj.write('\t\t<SourceDocument>'+str(invoice_obj.origin)+'</SourceDocument>\n')
file_obj.write('\t\t<ReferenceDescription>'+str(invoice_obj.name)+'</ReferenceDescription>\n')
file_obj.write('\t\t<AccountingPeriod>'+str(invoice_obj.period_id.display_name)+'</AccountingPeriod>\n')
file_obj.write('\t\t<JournalEntery>'+str(invoice_obj.move_id.display_name)+'</JournalEntery>\n')
file_obj.write('\t\t<DueDate>'+str(invoice_obj.date_due)+'</DueDate>\n')
line_tax_ids = invoice_tax_obj.search(cr, uid,[('invoice_id','=',ids[0])])
file_obj.write('\t\t<TaxLines>\n')
if line_tax_ids :
for tax_id in line_tax_ids :
tax_line_browse = invoice_tax_obj.browse(cr, uid, tax_id)
file_obj.write('\t\t\t<TaxLine>\n')
file_obj.write('\t\t\t\t<TaxDescription>'+str(tax_line_browse.name)+'</TaxDescription>\n')
if tax_line_browse.account_id :
file_obj.write('\t\t\t\t<TaxAccount>'+str(tax_line_browse.account_id.display_name)+'</TaxAccount>\n')
else :
file_obj.write('\t\t\t\t<TaxAccount></TaxAccount>\n')
file_obj.write('\t\t\t\t<Base>'+str(tax_line_browse.base)+'</Base>\n')
file_obj.write('\t\t\t\t<Amount>'+str(tax_line_browse.amount)+'</Amount>\n')
file_obj.write('\t\t\t</TaxLine>\n')
file_obj.write('\t\t</TaxLines>\n')
file_obj.write('\t</OtherInfo>\n')
file_obj.write('\t<Payments>\n')
if invoice_obj.payment_ids :
for move_line in invoice_obj.payment_ids :
file_obj.write('\t\t<Payment>\n')
file_obj.write('\t\t\t<EffectiveDate>'+str(move_line.date)+'</EffectiveDate>\n')
if move_line.move_id :
file_obj.write('\t\t\t<JournalEntry>'+str(move_line.move_id.id)+'</JournalEntry>\n')
else :
file_obj.write('\t\t\t<JournalEntry></JournalEntry>\n')
if move_line.ref :
file_obj.write('\t\t\t<Reference>'+str(move_line.ref)+'</Reference>\n')
else :
file_obj.write('\t\t\t<Reference></Reference>\n')
file_obj.write('\t\t\t<Name>'+str(move_line.name)+'</Name>\n')
if move_line.journal_id :
file_obj.write('\t\t\t<Journal>'+str(move_line.journal_id.display_name)+'</Journal>\n')
else :
file_obj.write('\t\t\t<Journal></Journal>\n')
file_obj.write('\t\t\t<Debit>'+str(move_line.debit)+'</Debit>\n')
file_obj.write('\t\t\t<Credit>'+str(move_line.credit)+'</Credit>\n')
file_obj.write('\t\t\t<AmountCurrency>'+str(move_line.amount_currency)+'</AmountCurrency>\n')
if move_line.currency_id :
file_obj.write('\t\t\t<Currency>'+str(move_line.currency_id.display_name)+'</Currency>\n')
else :
file_obj.write('\t\t\t<Currency></Currency>\n')
file_obj.write('\t\t</Payment>\n')
file_obj.write('\t</Payments>\n')
file_obj.write('\t<SubTotal>'+str(invoice_obj.amount_untaxed)+'</SubTotal>\n')
file_obj.write('\t<Tax>'+str(invoice_obj.amount_tax)+'</Tax>\n')
file_obj.write('\t<AmountTotal>'+str(invoice_obj.amount_total)+'</AmountTotal>\n')
file_obj.write('\t<Balance>'+str(invoice_obj.residual)+'</Balance>\n')
file_obj.write('</Invoice>\n')
account_invoice()
2. XML Code :
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="xml_invoice_form" model="ir.ui.view">
<field name="name">xml.invoice.form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form" />
<field name="arch" type="xml">
<button name="invoice_cancel" states="draft,proforma2,open" string="Cancel Invoice" groups="base.group_no_one" position="after">
<button name="generate_xml" states="open,paid" string="Generate XML" type="object"/>
</button>
</field>
</record>
</data>
</openerp>
----------------------------------------------------------------------------------------------------------------------------------------------
Example to create default data for projects:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">
<record id="all_jira_projects_account" model="account.analytic.account">
<field name="name">JIRA Projects</field>
<field name="code">JP001</field>
<field name="type">view</field>
</record>
<record id="project_tt_open" model="project.task.type">
<field name="sequence">40</field>
<field name="name">Open</field>
<field name="case_default" eval="True"/>
</record>
<record id="project_tt_todo" model="project.task.type">
<field name="sequence">41</field>
<field name="name">To Do</field>
<field name="case_default" eval="True"/>
</record>
<record id="project_tt_inprogress" model="project.task.type">
<field name="sequence">42</field>
<field name="name">In Progress</field>
<field name="case_default" eval="True"/>
</record>
<record id="project_tt_reopened" model="project.task.type">
<field name="sequence">43</field>
<field name="name">Reopened</field>
<field name="case_default" eval="True"/>
</record>
<record id="project_tt_resolved" model="project.task.type">
<field name="sequence">44</field>
<field name="name">Resolved</field>
<field name="case_default" eval="True"/>
</record>
<record id="project_tt_closed" model="project.task.type">
<field name="sequence">45</field>
<field name="name">Closed</field>
<field name="case_default" eval="True"/>
<field name="fold" eval="True"/>
</record>
<record id="jira_project_template1" model="project.project">
<field name="state">template</field>
<field name="type">normal</field>
<field name="name">JIRA Projects</field>
<field name="color">3</field>
<field name="parent_id" ref="all_jira_projects_account"/>
<field name="privacy_visibility">employees</field>
<field name="user_id" ref="base.user_root"/>
<field name="type_ids" eval="[(4, ref('project_tt_open')) ,(4,ref('project_tt_todo')), (4,ref('project_tt_inprogress')), (4,ref('project_tt_reopened')), (4,ref('project_tt_resolved')),(4,ref('project_tt_closed'))]"/>
<field name="alias_model">project.task</field>
</record>
</data>
</openerp>