微积分python函数

2024-09-30 22:23:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要你的帮助我是python的初学者,我在odoo中开发了一个基本模型我想开发两个函数来帮助我计算“montant”/26的除法,并将结果放入“montant journalier” 第二个函数必须计算“montant”列的和,并将结果放入“total”中 如果你能帮我,我会很感激我真的需要 这是我的视图以及.py和.xml

my view

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>

Tags: nameformviewtreeobjfieldfieldsstring