Skip to content
Extraits de code Groupes Projets
Valider e7e2a6e7 rédigé par Rémi - Le Filament's avatar Rémi - Le Filament
Parcourir les fichiers

Fix coding issues

parent 7170f8f5
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# -*- coding: utf-8 -*-
{
'name': "Autrement dit - Contacts",
......
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="report_layout_boxed" model="report.layout">
<field name="view_id" ref="autrement_dit_partner.autrement_external_layout_boxed"/>
<field name="image">/web/static/img/preview_boxed.png</field>
......
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- res partner aide -->
<record id="aide_1" model="res.partner.aide">
<field name="name">ILS</field>
......@@ -65,7 +64,5 @@
<record id="suivi_3" model="res.partner.suivi">
<field name="name">Mission locale</field>
</record>
</data>
</odoo>
# © 2019 Le Filament (<http://www.le-filament.com>)
# Copyright 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields, api
class AccountInvoice(models.Model):
_inherit = "account.invoice"
beneficiaire_id = fields.Many2one('res.partner', string='Bénéficiaire',states={'draft': [('readonly', False)]}, domain=[('beneficiaire', '=', True)])
beneficiaire_id = fields.Many2one(
'res.partner',
string='Bénéficiaire',
states={'draft': [('readonly', False)]},
domain=[('beneficiaire', '=', True)])
partner_is_beneficiaire = fields.Boolean('Est un Bénéficiaire')
@api.onchange('partner_id')
def onchange_partner_id_benef(self):
if self.partner_id.beneficiaire == True:
if self.partner_id.beneficiaire is True:
self.partner_is_beneficiaire = True
else:
self.partner_is_beneficiaire = False
# © 2019 Le Filament (<http://www.le-filament.com>)
# Copyright 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields, api
from odoo import models
class AutrementProductProduct(models.Model):
_inherit = "product.product"
def get_product_multiline_description_sale(self):
res = super(AutrementProductProduct, self).get_product_multiline_description_sale()
super(AutrementProductProduct,
self).get_product_multiline_description_sale()
name = self.name
if self.description_sale:
name += '\n' + self.description_sale
......
# © 2019 Le Filament (<http://www.le-filament.com>)
# Copyright 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields, api
from ast import literal_eval
from odoo import models, fields, api
class AutreResPartner(models.Model):
_inherit = "res.partner"
......@@ -12,30 +13,29 @@ class AutreResPartner(models.Model):
account_invoice = self.env['account.invoice']
if not self.ids:
self.total_invoiced_benef = 0.0
return True
user_currency_id = self.env.user.company_id.currency_id.id
else:
all_partner_ids = [self.id]
# generate where clause
where_query = account_invoice._where_calc([
('beneficiaire_id', 'in', all_partner_ids), ('state', 'not in', ['draft', 'cancel']),
('beneficiaire_id', 'in', all_partner_ids),
('state', 'not in', ['draft', 'cancel']),
('type', 'in', ('out_invoice', 'out_refund'))
])
account_invoice._apply_ir_rules(where_query, 'read')
from_clause, where_clause, where_clause_params = where_query.get_sql()
from_cl, where_clause, where_clause_params = where_query.get_sql()
# price_total is in the company currency
query = """
SELECT SUM(amount_untaxed) as total, beneficiaire_id
FROM account_invoice account_invoice
FROM account_invoice
WHERE %s
GROUP BY beneficiaire_id
""" % where_clause
self.env.cr.execute(query, where_clause_params)
price_totals = self.env.cr.dictfetchall()
self.total_invoiced_benef = sum(price['total'] for price in price_totals)
self.total_invoiced_benef = (sum(price['total']
for price in price_totals))
# Particulier
beneficiaire = fields.Boolean(string="Est un bénéficiaire")
......@@ -43,10 +43,20 @@ class AutreResPartner(models.Model):
email_pro = fields.Char(string="E-mail pro")
mobile_pro = fields.Char('Mobile pro')
phone_pro = fields.Char('Téléphone pro')
role = fields.Many2many('res.partner.role', string="Rôle dans l’organisation")
statuts_spe = fields.Many2many('res.partner.statutspe', string="Statuts spécifiques")
ic_referent = fields.Many2one('res.partner', string='IC référent', domain=[('parent_id', '=', 1)])
ic_possibles = fields.Many2many(comodel_name='res.partner', relation='ic_possibles', column1='ic_possible_id', column2='parent_id' ,string='IC possibles', domain=[('active', '=', True), ('parent_id', '=', 1)])
role = fields.Many2many('res.partner.role',
string="Rôle dans l’organisation")
statuts_spe = fields.Many2many('res.partner.statutspe',
string="Statuts spécifiques")
ic_referent = fields.Many2one('res.partner',
string='IC référent',
domain=[('parent_id', '=', 1)])
ic_possibles = fields.Many2many(comodel_name='res.partner',
relation='ic_possibles',
column1='ic_possible_id',
column2='parent_id',
string='IC possibles',
domain=[('active', '=', True),
('parent_id', '=', 1)])
statuts_perso = fields.Selection([
('retraité', 'retraité'),
('demandeur', 'demandeur d’emploi'),
......@@ -58,36 +68,47 @@ class AutreResPartner(models.Model):
], 'Statuts')
dysphasique = fields.Boolean('Personne Dysphasique')
mode_communication = fields.Boolean('Mode de communication')
mode_communication_choix = fields.Many2many('res.partner.com', string="Choix mode de communication")
mode_communication_choix = fields.Many2many(
'res.partner.com',
string="Choix mode de communication")
aide_communication = fields.Boolean('Aide à la communication')
aide_communication_choix = fields.Many2many('res.partner.aide', string="Choix aide à la communication")
aide_communication_choix = fields.Many2many(
'res.partner.aide',
string="Choix aide à la communication")
suivi_par = fields.Many2many('res.partner.suivi', string="Suivi par")
# Societe
statuts = fields.Many2one('res.partner.statut', string="Statut")
num_of = fields.Char('Numéro OF')
financement = fields.Selection([('direct', 'direct'), ('agfiph', 'AGFIPH'), ('piphfp','PIPHFP'), ('eoth' ,'EOTH')], string='Financement')
financement = fields.Selection([('direct', 'direct'),
('agfiph', 'AGFIPH'),
('piphfp', 'PIPHFP'),
('eoth', 'EOTH')], string='Financement')
preference_email = fields.Boolean('E-mail')
preference_courrier = fields.Boolean('Courrier')
preference_chorus = fields.Boolean('Chorus Pro')
email_fact = fields.Char('Email de facturation')
ref_chorus = fields.Char('Références Chorus')
total_invoiced_benef = fields.Monetary(compute='_invoice_total_benef', string="Total Invoiced beneficiaire",
total_invoiced_benef = fields.Monetary(
compute='_invoice_total_benef',
string="Total Invoiced bénéficiaire",
groups='account.group_account_invoice')
def _compute_sale_order_count(self):
super(AutreResPartner, self)._compute_sale_order_count()
sale_data = self.env['sale.order'].read_group(domain=[('beneficiaire_id', 'child_of', self.ids)],
sale_data = self.env['sale.order'].read_group(
domain=[('beneficiaire_id', 'child_of', self.ids)],
fields=['beneficiaire_id'], groupby=['beneficiaire_id'])
mapped_data = dict([(m['beneficiaire_id'][0], m['beneficiaire_id_count']) for m in sale_data])
mapped_data = dict([(m['beneficiaire_id'][0],
m['beneficiaire_id_count']) for m in sale_data])
for partner in self:
# let's obtain the partner id and all its child ids
partner_ids = [partner.id] + partner.child_ids.ids
# then we can sum for all the partner's child
sale_order_count_benef = sum(mapped_data.get(child, 0) for child in partner_ids)
sale_order_count_benef = sum(
mapped_data.get(child, 0) for child in partner_ids)
partner.sale_order_count += sale_order_count_benef
@api.onchange('company_type')
def onchange_company_type(self):
super(AutreResPartner, self).onchange_company_type()
......@@ -96,7 +117,7 @@ class AutreResPartner(models.Model):
@api.onchange('beneficiaire')
def onchange_beneficiaire(self):
if self.beneficiaire == False:
if self.beneficiaire is False:
self.dysphasique = False
self.mode_communication = False
self.mode_communication_choix = False
......@@ -118,47 +139,55 @@ class AutreResPartner(models.Model):
@api.multi
def action_view_partner_invoices_benef(self):
self.ensure_one()
action = self.env.ref('account.action_invoice_refund_out_tree').read()[0]
action = self.env.ref(
'account.action_invoice_refund_out_tree').read()[0]
action['domain'] = literal_eval(action['domain'])
action['domain'].append(('beneficiaire_id', 'child_of', self.id))
return action
class AutrementStatut(models.Model):
_description = 'Partner Statut'
_name = 'res.partner.statut'
name = fields.Char(string="Statut", required=True)
class AutrementRole(models.Model):
_description = 'Partner Role'
_name = 'res.partner.role'
name = fields.Char(string="Rôle dans l'organisation", required=True)
class AutrementStatutSpe(models.Model):
_description = 'Partner Statut spécifiques'
_name = 'res.partner.statutspe'
name = fields.Char(string="Statut spécifique", required=True)
class AutrementModeCom(models.Model):
_description = 'Partner Mode de communication'
_name = 'res.partner.com'
name = fields.Char(string="Mode de communication", required=True)
class AutrementAideCom(models.Model):
_description = 'Partner Aide à la communication'
_name = 'res.partner.aide'
name = fields.Char(string="Aide à la communication", required=True)
class AutrementSuivi(models.Model):
_description = 'Partner Suivi par'
_name = 'res.partner.suivi'
name = fields.Char(string="Suivi par", required=True)
class AutrementPref(models.Model):
_description = 'Partner Préférence Facturation'
_name = 'res.partner.pref'
......
# © 2019 Le Filament (<http://www.le-filament.com>)
# Copyright 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields, api
class AutreSaleOrder(models.Model):
_inherit = "sale.order"
beneficiaire_id = fields.Many2one('res.partner', string='Bénéficiaire', states={'draft': [('readonly', False)], 'sent': [('readonly', False)], 'sale': [('readonly', False)]}, domain=[('beneficiaire', '=', True)])
beneficiaire_id = fields.Many2one(
'res.partner',
string='Bénéficiaire',
states={
'draft': [('readonly', False)],
'sent': [('readonly', False)],
'sale': [('readonly', False)]
},
domain=[('beneficiaire', '=', True)])
partner_is_beneficiaire = fields.Boolean('Est un Bénéficiaire')
@api.multi
......@@ -18,7 +27,4 @@ class AutreSaleOrder(models.Model):
@api.onchange('partner_id')
def onchange_partner_id_benef(self):
if self.partner_id.beneficiaire == True:
self.partner_is_beneficiaire = True
else:
self.partner_is_beneficiaire = False
self.partner_is_beneficiaire = self.partner_id.beneficiaire
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="autrement_invoice_form" model="ir.ui.view">
<field name="name">autrement.account.invoice.form</field>
<field name="model">account.invoice</field>
......@@ -27,6 +26,5 @@
</xpath>
</field>
</record>
</data>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Partner Statuts spé -->
<record id="view_partner_statuts_tree" model="ir.ui.view">
<field name="name">res.partner.statuts.tree</field>
......@@ -12,6 +10,7 @@
</tree>
</field>
</record>
<record id="view_partner_statuts_form" model="ir.ui.view">
<field name="name">res.partner.statuts.form</field>
<field name="model">res.partner.statutspe</field>
......@@ -45,6 +44,7 @@
</tree>
</field>
</record>
<record id="view_partner_role_form" model="ir.ui.view">
<field name="name">res.partner.role.form</field>
<field name="model">res.partner.role</field>
......@@ -68,7 +68,6 @@
<field name="help">Gestion des roles salariés disponibles dans la fiche contact</field>
</record>
<!-- Partner Aide à la communication -->
<record id="view_partner_aide_tree" model="ir.ui.view">
<field name="name">res.partner.aide.tree</field>
......@@ -79,6 +78,7 @@
</tree>
</field>
</record>
<record id="view_partner_aide_form" model="ir.ui.view">
<field name="name">res.partner.aide.form</field>
<field name="model">res.partner.aide</field>
......@@ -102,7 +102,6 @@
<field name="help">Gestion des aides à la communication bénéficiaire disponibles dans la fiche contact</field>
</record>
<!-- Partner Mode de communication -->
<record id="view_partner_com_tree" model="ir.ui.view">
<field name="name">res.partner.com.tree</field>
......@@ -113,6 +112,7 @@
</tree>
</field>
</record>
<record id="view_partner_com_form" model="ir.ui.view">
<field name="name">res.partner.com.form</field>
<field name="model">res.partner.com</field>
......@@ -146,6 +146,7 @@
</tree>
</field>
</record>
<record id="view_partner_suivi_form" model="ir.ui.view">
<field name="name">res.partner.suivi.form</field>
<field name="model">res.partner.suivi</field>
......@@ -280,5 +281,4 @@
action="action_partner_statuts_societe"
parent="menu_config_autrement_data"
sequence="6"/>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Assets for reports -->
<template id="autrement_report_assets_common" inherit_id="web.report_assets_common">
<xpath expr="." position="inside">
<link href="https://fonts.googleapis.com/css?family=Nunito:300,400,700" rel="stylesheet"/>
......@@ -30,19 +29,6 @@
<div class="article o_report_layout_boxed" t-att-data-oe-model="o and o._name" t-att-data-oe-id="o and o.id" t-att-data-oe-lang="o and o.env.context.get('lang')">
<t t-call="web.address_layout"/>
<t t-raw="0"/>
<!-- <div class="o_boxed_infos_societe">
<div class="row mb8">
<div class="col-6">
<span>TVA intracommunautaire n° : FR41524302502</span><br/>
<span>N° Formation professionnelle : 73 31 05751 31</span>
</div>
<div class="col-6">
<span class="bold-text">Banque :</span> Société Générale - Code Banque : 30003<br/>
<span class="bold-text">Guichet :</span> 02149<br/>
<span class="bold-text">Num compte :</span> 00027000334 - Clé : 27<br/>
</div>
</div>
</div> -->
</div>
<div class="footer o_boxed_footer">
......@@ -53,25 +39,5 @@
</div>
</div>
</div>
<!--
<div class="footer o_boxed_footer">
<div class="text-center">
<p t-if="company.name" class="list-inline-item "><span class="title-footer" t-field="company.name"/>...
<t t-if="company.report_header" class="list-inline-item"><span class="title-footer" t-field="company.report_header"/></t><br/>
<span>
<span t-field="company.street"/> -
<span t-field="company.zip"/>
<span t-field="company.city"/>
</span><br/>
<span>SCOPARL à capital variable - N° SIRET : <span t-field="company.siret"/> - Code APE : <span t-field="company.ape"/> - Organisme de Formation n°73 31 057 51 31 - TVA intracommunautaire n° : <span t-field="company.vat"/></span>
</p>
<div t-field="company.report_footer"/>
<div t-if="report_type == 'pdf'">
Page: <span class="page"/> / <span class="topage"/>
</div>
</div>
</div> -->
</template>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="autrement_view_partner_form" model="ir.ui.view">
<field name="name">autrement.view.partner.form</field>
<field name="model">res.partner</field>
<field name="priority">25</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='company_type']" position="after">
<group>
<field name="beneficiaire" attrs="{'invisible': [('is_company','!=', False)]}"/>
</group>
</xpath>
<xpath expr="//field[@name='parent_id']" position="replace">
<field name="parent_id"
widget="res_partner_many2one"
......@@ -27,14 +24,10 @@
domain="[('is_company', '=', True)]" context="{'default_is_company': True, 'default_supplier': supplier, 'default_customer': customer, 'show_vat': True}"
attrs="{'invisible': ['|', ('is_company','=', True),('beneficiaire','!=',True)]}"/>
</xpath>
<xpath expr="//field[@name='ref']" position="replace">
</xpath>
<xpath expr="//field[@name='barcode']" position="replace">
</xpath>
<xpath expr="//page[@name='accounting_disabled']" position="replace">
<page string="Facturation" name="accounting_disabled" attrs="{'invisible': ['|',('is_company','=',True),('parent_id','=',False)]}" groups="account.group_account_invoice">
<div attrs="{'invisible': [('beneficiaire','=',True)]}">
......@@ -76,7 +69,6 @@
</group>
</group>
</page>
</xpath>
<xpath expr="//page[@name='accounting']/group" position="before">
<group>
......@@ -92,7 +84,6 @@
</group>
</group>
</xpath>
<xpath expr="//sheet/group" position="replace">
<group attrs="{'invisible': [('is_company','!=', False)]}">
<group string="Contacts Persos">
......@@ -155,7 +146,6 @@
<field name="financement" attrs="{'invisible': [('is_company','!=', True)]}"/>
</group>
<group>
<field name="phone" widget="phone" attrs="{'invisible': [('is_company','=', False)]}"/>
<field name="mobile" widget="phone" attrs="{'invisible': [('is_company','=', False)]}"/>
<field name="user_ids" invisible="1"/>
......@@ -163,14 +153,10 @@
<field name="website" widget="url" placeholder="e.g. www.odoo.com"/>
<field name="lang"/>
<field name="category_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" placeholder="Tags..."/>
</group>
</group>
<group attrs="{'invisible': ['|', ('is_company','!=', False),('beneficiaire','!=',True)]}" string="Infos Bénéficiaire">
<group>
<field name="ic_referent" />
<field name="ic_possibles" widget="many2many_tags" />
</group>
......@@ -194,7 +180,6 @@
</group>
</group>
</xpath>
<xpath expr="//field[@name='child_ids']/form" position="replace">
<form string="Contact / Adresse">
<sheet>
......@@ -257,9 +242,7 @@
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='siret']" position="replace">
</xpath>
</data>
</field>
</record>
......@@ -314,13 +297,5 @@
</p>
</field>
</record>
<!-- <record id="sale.act_res_partner_2_sale_order" model="ir.actions.act_window">
<field name="name">Quotations and Sales</field>
<field name="res_model">sale.order</field>
<field name="inherit_id" ref="sale.act_res_partner_2_sale_order"/>
<field name="context">{'search_default_beneficiaire_id': active_id}</field>
</record> -->
</data>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="autrement_view_order_form" model="ir.ui.view">
<field name="name">autrement.sale.order.form</field>
<field name="model">sale.order</field>
......@@ -59,6 +58,5 @@
</xpath>
</field>
</record>
</data>
</odoo>
\ No newline at end of file
# © 2019 Le Filament (<http://www.le-filament.com>)
# Copyright 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import time
from odoo import api, fields, models, _
from odoo import api, models
class AutreSaleAdvancePaymentInv(models.TransientModel):
......@@ -11,7 +9,8 @@ class AutreSaleAdvancePaymentInv(models.TransientModel):
@api.multi
def _create_invoice(self, order, so_line, amount):
invoice = super(AutreSaleAdvancePaymentInv, self)._create_invoice(order,so_line,amount)
invoice = super(AutreSaleAdvancePaymentInv,
self)._create_invoice(order, so_line, amount)
if order.beneficiaire_id:
invoice['beneficiaire_id'] = order.beneficiaire_id.id
return invoice
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter