Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
autrement_dit_partner
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse du dépôt
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté GitLab
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
Le Filament
Autrement Dit
autrement_dit_partner
Validations
07aee272
Valider
07aee272
rédigé
11 mars 2019
par
Juliana
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
Ajout factures liées bénéficiaire
parent
2db8ca27
Branches
Branches contenant la validation
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Modifications
4
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
4 fichiers modifiés
models/res_partner.py
+54
-0
54 ajouts, 0 suppression
models/res_partner.py
views/account_invoice_view.xml
+11
-0
11 ajouts, 0 suppression
views/account_invoice_view.xml
views/res_partner_view.xml
+46
-0
46 ajouts, 0 suppression
views/res_partner_view.xml
views/sale_view.xml
+34
-0
34 ajouts, 0 suppression
views/sale_view.xml
avec
145 ajouts
et
0 suppression
models/res_partner.py
+
54
−
0
Voir le fichier @
07aee272
...
@@ -2,10 +2,41 @@
...
@@ -2,10 +2,41 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from
odoo
import
models
,
fields
,
api
from
odoo
import
models
,
fields
,
api
from
ast
import
literal_eval
class
AutreResPartner
(
models
.
Model
):
class
AutreResPartner
(
models
.
Model
):
_inherit
=
"
res.partner
"
_inherit
=
"
res.partner
"
@api.multi
def
_invoice_total_benef
(
self
):
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
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
'
]),
(
'
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
()
# price_total is in the company currency
query
=
"""
SELECT SUM(amount_untaxed) as total, beneficiaire_id
FROM account_invoice 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
)
# Particulier
# Particulier
beneficiaire
=
fields
.
Boolean
(
string
=
"
Est un bénéficiaire
"
)
beneficiaire
=
fields
.
Boolean
(
string
=
"
Est un bénéficiaire
"
)
societe_id
=
fields
.
Many2one
(
'
res.partner
'
,
string
=
'
Société liée
'
)
societe_id
=
fields
.
Many2one
(
'
res.partner
'
,
string
=
'
Société liée
'
)
...
@@ -41,6 +72,21 @@ class AutreResPartner(models.Model):
...
@@ -41,6 +72,21 @@ class AutreResPartner(models.Model):
preference_chorus
=
fields
.
Boolean
(
'
Chorus Pro
'
)
preference_chorus
=
fields
.
Boolean
(
'
Chorus Pro
'
)
email_fact
=
fields
.
Char
(
'
Email de facturation
'
)
email_fact
=
fields
.
Char
(
'
Email de facturation
'
)
ref_chorus
=
fields
.
Char
(
'
Références Chorus
'
)
ref_chorus
=
fields
.
Char
(
'
Références Chorus
'
)
total_invoiced_benef
=
fields
.
Monetary
(
compute
=
'
_invoice_total_benef
'
,
string
=
"
Total Invoiced beneficiaire
"
,
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
)],
fields
=
[
'
beneficiaire_id
'
],
groupby
=
[
'
beneficiaire_id
'
])
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
)
partner
.
sale_order_count
+=
sale_order_count_benef
@api.onchange
(
'
company_type
'
)
@api.onchange
(
'
company_type
'
)
def
onchange_company_type
(
self
):
def
onchange_company_type
(
self
):
...
@@ -69,6 +115,14 @@ class AutreResPartner(models.Model):
...
@@ -69,6 +115,14 @@ class AutreResPartner(models.Model):
self
.
financement
=
False
self
.
financement
=
False
self
.
societe_id
=
False
self
.
societe_id
=
False
@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
[
'
domain
'
]
=
literal_eval
(
action
[
'
domain
'
])
action
[
'
domain
'
].
append
((
'
beneficiaire_id
'
,
'
child_of
'
,
self
.
id
))
return
action
class
AutrementStatut
(
models
.
Model
):
class
AutrementStatut
(
models
.
Model
):
_description
=
'
Partner Statut
'
_description
=
'
Partner Statut
'
_name
=
'
res.partner.statut
'
_name
=
'
res.partner.statut
'
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
views/account_invoice_view.xml
+
11
−
0
Voir le fichier @
07aee272
...
@@ -17,5 +17,16 @@
...
@@ -17,5 +17,16 @@
</field>
</field>
</record>
</record>
<record
id=
"autrement_invoice_tree"
model=
"ir.ui.view"
>
<field
name=
"name"
>
autrement.account.invoice.tree
</field>
<field
name=
"model"
>
account.invoice
</field>
<field
name=
"inherit_id"
ref=
"account.invoice_tree"
/>
<field
name=
"arch"
type=
"xml"
>
<xpath
expr=
"//field[@name='partner_id']"
position=
"after"
>
<field
name=
"beneficiaire_id"
/>
</xpath>
</field>
</record>
</data>
</data>
</odoo>
</odoo>
\ No newline at end of file
Ce diff est replié.
Cliquez pour l'agrandir.
views/res_partner_view.xml
+
46
−
0
Voir le fichier @
07aee272
...
@@ -276,5 +276,51 @@
...
@@ -276,5 +276,51 @@
</field>
</field>
</record>
</record>
<record
model=
"ir.ui.view"
id=
"autrment_partner_view_buttons_ab"
>
<field
name=
"name"
>
autrement.partner.view.buttons
</field>
<field
name=
"model"
>
res.partner
</field>
<field
name=
"inherit_id"
ref=
"base.view_partner_form"
/>
<field
name=
"priority"
eval=
"20"
/>
<field
name=
"groups_id"
eval=
"[(4, ref('account.group_account_invoice'))]"
/>
<field
name=
"arch"
type=
"xml"
>
<div
name=
"button_box"
position=
"inside"
>
<button
type=
"object"
class=
"oe_stat_button"
icon=
"fa-pencil-square-o"
name=
"action_view_partner_invoices_benef"
attrs=
"{'invisible': [('customer', '=', False)]}"
context=
"{'default_beneficiaire_id': active_id}"
>
<div
class=
"o_form_field o_stat_info"
>
<span
class=
"o_stat_value"
>
<field
name=
"total_invoiced_benef"
widget=
'monetary'
options=
"{'currency_field': 'currency_id'}"
/>
</span>
<span
class=
"o_stat_text"
>
Facturé bénéficiaire
</span>
</div>
</button>
</div>
</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=
"view_type"
>
form
</field>
<field
name=
"view_mode"
>
tree,form,graph
</field>
<field
name=
"context"
>
{
'default_beneficiaire_id': active_id,
}
</field>
<field
name=
"groups_id"
eval=
"[(4, ref('sales_team.group_sale_salesman'))]"
/>
<field
name=
"help"
type=
"html"
>
<p
class=
"o_view_nocontent_smiling_face"
>
Create a new quotation, the first step of a new sale!
</p><p>
Once the quotation is confirmed by the customer, it becomes a sales order.
<br/>
You will be able to create an invoice and collect the payment.
</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>
</data>
</odoo>
</odoo>
Ce diff est replié.
Cliquez pour l'agrandir.
views/sale_view.xml
+
34
−
0
Voir le fichier @
07aee272
...
@@ -14,6 +14,40 @@
...
@@ -14,6 +14,40 @@
</field>
</field>
</record>
</record>
<record
id=
"autrement_view_sales_order_filter"
model=
"ir.ui.view"
>
<field
name=
"name"
>
autrement.sale.order.list.select
</field>
<field
name=
"model"
>
sale.order
</field>
<field
name=
"inherit_id"
ref=
"sale.view_sales_order_filter"
/>
<field
name=
"arch"
type=
"xml"
>
<xpath
expr=
"//field[@name='partner_id']"
position=
"after"
>
<field
name=
"beneficiaire_id"
operator=
"child_of"
/>
</xpath>
</field>
</record>
<record
id=
"autrement_view_order_tree"
model=
"ir.ui.view"
>
<field
name=
"name"
>
autrement.sale.order.tree
</field>
<field
name=
"model"
>
sale.order
</field>
<field
name=
"inherit_id"
ref=
"sale.view_order_tree"
/>
<field
name=
"arch"
type=
"xml"
>
<xpath
expr=
"//field[@name='partner_id']"
position=
"after"
>
<field
name=
"beneficiaire_id"
/>
</xpath>
</field>
</record>
<record
id=
"autrement_view_sales_order_filter"
model=
"ir.ui.view"
>
<field
name=
"name"
>
autrement.sale.order.list.select
</field>
<field
name=
"model"
>
sale.order
</field>
<field
name=
"inherit_id"
ref=
"sale.view_sales_order_filter"
/>
<field
name=
"priority"
eval=
"15"
/>
<field
name=
"arch"
type=
"xml"
>
<xpath
expr=
"//filter[@name='my_sale_orders_filter']"
position=
"before"
>
<filter
string=
"Test"
name=
"my_vente"
domain=
"['|',('parent_id','=',context.get('active_id',True)),('beneficiaire_id','=',context.get('active_id',True))]"
/>
</xpath>
</field>
</record>
</data>
</data>
</odoo>
</odoo>
\ No newline at end of file
Ce diff est replié.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter