我需要你的帮助我是python的初学者,我在odoo中开发了一个基本模型我想开发两个函数来帮助我计算“montant”/26的除法,并将结果放入“montant journalier” 第二个函数必须计算“montant”列的和,并将结果放入“total”中 如果你能帮我,我会很感激我真的需要 这是我的视图以及.py和.xml
python文件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import datetime
import math
from datetime import date
from openerp.osv import osv, fields, orm
class obj_ghb(osv.osv):
_name = 'obj.ghb'
_description = 'objet ghb'
def onchange_montant( self, cr, uid, ids,montant, context = {} ):
data={}
if montant:
data['montantjournalier']= montant/26 or False
return {'value': data}
def get_total_days( self, cr, uid, ids,days_tota,arg, context = None ):
diff_day={}
for record in self.browse(cr, uid, ids, context=context):
s_date = datetime.datetime.strptime(record.datedebut, "%Y-%m-%d").date()
e_date =datetime.datetime.strptime(record.datefin, "%Y-%m-%d").date()
diff_day[record.id] =(e_date-s_date).days
return diff_day
_columns = {
'nomprojet': fields.char('Nom du projet'),
'responsable': fields.char('Responsable GHB'),
'client': fields.char('Client'),
'contactclient': fields.char('Contact du client'),
'datedebut': fields.date('Date de debut'),
'datefin': fields.date('Date de fin'),
'nombredejour': fields.function(get_total_days, type = "integer", method=True,store = True, string = "Jours travaillés"),
'obj_ghb_parent': fields.one2many('loyer', 'loyer_obj_ghb'),
'obj_ghb_id': fields.one2many('assurance', 'assurance_obj_ghb'),
'obj_ghb_parenttt': fields.one2many('salaire', 'salaire_obj_ghb'),
'obj_ghb_parentttt': fields.one2many('autres', 'autres_obj_ghb'),
'total': fields.char('Total'),
'totall': fields.char('Totall'),
'totalll': fields.char('Totalll'),
'totallll': fields.char('Totallll'),
}
class loyer(osv.osv):
_name='loyer'
_columns = {
'nom': fields.char('Nom'),
'montant': fields.float('Montant'),
'montantjournalier': fields.float('Montant journalier') ,
'loyer_obj_ghb': fields.many2one('obj.ghb'),
}
class assurance(osv.osv):
_name='assurance'
_columns = {
'name': fields.char('Nom'),
'mount': fields.char('Montant'),
'dailymount': fields.char('Montant journalier') ,
'assurance_obj_ghb': fields.many2one('obj.ghb'),
}
class salaire(osv.osv):
_name='salaire'
_columns = {
'nommm': fields.char('Nom'),
'montanttt': fields.char('Montant'),
'montantjournalierrr': fields.char('Montant journalier') ,
'salaire_obj_ghb': fields.many2one('obj.ghb'),
}
class autres(osv.osv):
_name='autres'
_columns = {
'nommmm': fields.char('Nom'),
'montantttt': fields.char('Montant'),
'montantjournalierrrr': fields.char('Montant journalier') ,
'autres_obj_ghb': fields.many2one('obj.ghb'),
}
xml文件
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<!-- formulaire view ghb -->
<record id="ghb_form" model="ir.ui.view">
<field name="name">ghb.form</field>
<field name="model">obj.ghb</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="charge" version="7.0">
<sheet>
<group>
<group>
<field name="nomprojet"/>
<field name="responsable"/>
<field name="datedebut"/>
</group>
<group>
<field name="client"/>
<field name="contactclient"/>
<field name="datefin"/>
</group>
<group>
<field name="nombredejour"/>
</group>
</group>
<notebook>
<page string="Loyer">
<group col="2" rowspan="2">
<group colspan="2" rowspan="2">
<field name="obj_ghb_parent" nolabel="1">
<tree editable="top">
<field name="nom"/>
<field name="montant"/>
<field name="montantjournalier" on_change="onchange_montant(montantjournalier)"/>
</tree>
</field>
</group>
<group class="oe_subtotal_footer oe_right" colspan="2">
<field name="total" string="Total" readonly="True"/>
</group>
</group>
</page>
<page string="Assurance">
<group>
<group>
<field name="obj_ghb_id" nolabel="1">
<tree editable="top">
<field name="name"/>
<field name="mount"/>
<field name="dailymount"/>
</tree>
</field>
</group>
<group class="oe_subtotal_footer oe_right" colspan="2">
<field name="totall" string="Total" readonly="True"/>
</group>
</group>
</page>
<page string="Salaire">
<group>
<group>
<field name="obj_ghb_parenttt" nolabel="1">
<tree editable="top">
<field name="nommm"/>
<field name="montanttt"/>
<field name="montantjournalierrr"/>
</tree>
</field>
</group>
<group class="oe_subtotal_footer oe_right" colspan="2">
<field name="totalll" string="Total" readonly="True"/>
</group>
</group>
</page>
<page string="Autres">
<group>
<group>
<field name="obj_ghb_parentttt" nolabel="1">
<tree editable="top">
<field name="nommmm"/>
<field name="montantttt"/>
<field name="montantjournalierrrr"/>
</tree>
</field>
</group>
<group class="oe_subtotal_footer oe_right" colspan="2">
<field name="totallll" string="Total" readonly="True"/>
</group>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- tree vie ghb-->
<record id="ghb_tree" model="ir.ui.view">
<field name="name">ghb.tree</field>
<field name="model">obj.ghb</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="charge" >
<field name="nomprojet"/>
<field name="responsable"/>
<field name="datedebut"/>
<field name="client"/>
<field name="contactclient"/>
<field name="datefin"/>
<field name="nombredejour"/>
</tree>
</field>
</record>
<!-- menu action ghb -->
<record model="ir.actions.act_window" id="action_ghb">
<field name="name">Les charges GHB</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">obj.ghb</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="ghb_tree" />
<field name="help" type="html">
<p class="oe_view_nocontent_create"> Cliquez ici pour creer un nouveau projet </p>
</field>
</record>
<!-- search view charge -->
<record id="ghb_search" model="ir.ui.view">
<field name="name">ghb.search</field>
<field name="model">obj.ghb</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="ghb" >
<field name="nomprojet"/>
<field name="client"/>
</search>
</field>
</record>
<!-- form view charge variable -->
<record id="cv_form" model="ir.ui.view">
<field name="name">cv.form</field>
<field name="model">obj.cv</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="charge variable" version="7.0">
<sheet>
<group string="les charges variables" >
<group>
<field name="nomprojett"/>
<field name="responsablee"/>
<field name="datedebutt"/>
</group>
<group>
<field name="clientt"/>
<field name="contactclientt"/>
<field name="datefinn"/>
</group>
<group>
<field name="nombredejour"/>
</group>
</group>
<notebook>
<page string="Frais de transport">
<group>
<group>
<field name="obj_cv_parent" nolabel="1">
<tree editable="top">
<field name="nnom"/>
<field name="mmontant"/>
<field name="montantjournalier" on_change="onchange_montant(montantjournalier)"/>
</tree>
</field>
</group>
<group class="oe_subtotal_footer oe_right" colspan="2">
<field name="ttotal" string="Total" readonly="True"/>
</group>
</group>
</page>
<page string="Electricité">
<group col="2" rowspan="2">
<group>
<field name="obj_cv_id" nolabel="1">
<tree editable="top">
<field name="nnname"/>
<field name="mmmount"/>
<field name="ddailymount"/>
</tree>
</field>
</group>
<group class="oe_subtotal_footer oe_right" colspan="2">
<field name="tttotal" string="Total" readonly="True"/>
</group>
</group>
</page>
<page string="Sous-traitance">
<group>
<group>
<field name="obj_cv_parentt" nolabel="1">
<tree editable="top">
<field name="nnnnom"/>
<field name="mmmmontant"/>
<field name="mmmmontantjournalier"/>
</tree>
</field>
</group>
<group class="oe_subtotal_footer oe_right" colspan="2">
<field name="ttttotal" string="Total" readonly="True"/>
</group>
</group>
</page>
<page string="Autres">
<group>
<group>
<field name="obj_cv_parenttt" nolabel="1">
<tree editable="top">
<field name="nnomm"/>
<field name="mmontantt"/>
<field name="mmontantjournalierr"/>
</tree>
</field>
</group>
<group class="oe_subtotal_footer oe_right" colspan="2">
<field name="tttttotal" string="Total" readonly="True"/>
</group>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
目前没有回答
相关问题 更多 >
编程相关推荐