Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
C
cgscop_adhesion_alfodoo
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
Confédération Générale des SCOP
cgscop_adhesion_alfodoo
Validations
9fcf540b
Valider
9fcf540b
rédigé
Il y a 3 ans
par
Benjamin - Le Filament
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
[update] refactor file upload
parent
7798e76a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Modifications
1
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
1 fichier modifié
models/res_partner.py
+23
-143
23 ajouts, 143 suppressions
models/res_partner.py
avec
23 ajouts
et
143 suppressions
models/res_partner.py
+
23
−
143
Voir le fichier @
9fcf540b
...
@@ -3,115 +3,14 @@
...
@@ -3,115 +3,14 @@
import
base64
import
base64
from
odoo
import
models
,
api
from
odoo
import
models
,
api
from
odoo
import
fields
as
odooFields
from
odoo.addons.cmis_field
import
fields
from
odoo.exceptions
import
UserError
class
ScopAlfrescoAdhesionPartner
(
models
.
Model
):
class
ScopAlfrescoAdhesionPartner
(
models
.
Model
):
_inherit
=
'
res.partner
'
_inherit
=
'
res.partner
'
alfresco_invoice_adhesion_file
=
odooFields
.
Char
(
"
Facture d
'
adhésion
"
)
alfresco_report_adhesion_file
=
odooFields
.
Char
(
"
Courrier d
'
adhésion
"
)
adhesion_cmis_folder
=
fields
.
CmisFolder
(
allow_create
=
True
,
allow_delete
=
False
,
)
# ------------------------------------------------------
# ------------------------------------------------------
# Actions
# Actions
# ------------------------------------------------------
# ------------------------------------------------------
@api.multi
def
generate_alfresco_file
(
self
):
"""
Ajoute un fichier sur la GED Alfresco
@return: fonction get_partner_files() de res.partner
"""
# Get proof folder nodeRef
backend
=
self
.
env
[
'
cmis.backend
'
].
search
([],
limit
=
1
)
# Create folder adhesion if needed
self
.
_create_folder_adhesion
(
backend
)
path_proj
=
backend
.
get_cmis_repository
().
\
getFolder
(
self
.
adhesion_cmis_folder
).
getPaths
()
path_n0
=
path_proj
path
=
'
/
'
.
join
(
path_n0
)
cmis_obj
=
backend
.
get_folder_by_path
(
path
)
###
# Invoice adhesion attachment
invoice_adhesion
=
self
.
_get_invoice_adhesion
()
if
not
invoice_adhesion
:
raise
UserError
(
"
Pas de facture associée à cette adhésion !
"
)
invoice_adhesion
=
self
.
env
.
ref
(
'
account.account_invoices
'
).
\
render_qweb_pdf
(
invoice_adhesion
.
id
)[
0
]
invoice_adhesion
=
base64
.
b64encode
(
invoice_adhesion
)
name
=
'
Facture adhésion
'
invoice_adhesion_attachment
=
self
.
env
[
'
ir.attachment
'
].
create
({
'
name
'
:
name
,
'
type
'
:
'
binary
'
,
'
datas
'
:
invoice_adhesion
,
'
datas_fname
'
:
name
+
'
.pdf
'
,
'
store_fname
'
:
name
,
'
res_model
'
:
self
.
_name
,
'
res_id
'
:
self
.
id
,
'
mimetype
'
:
'
application/pdf
'
})
if
not
invoice_adhesion_attachment
:
raise
UserError
(
"
Erreur lors de la génération de la facture pour Alfresco
"
)
content_type
=
invoice_adhesion_attachment
.
mimetype
file_invoice_adhesion
=
cmis_obj
.
createDocument
(
name
=
invoice_adhesion_attachment
.
name
,
properties
=
{},
contentFile
=
base64
.
b64decode
(
invoice_adhesion_attachment
.
datas
),
contentType
=
content_type
)
self
.
alfresco_invoice_adhesion_file
=
\
file_invoice_adhesion
.
getObjectId
()
###
# Report adhesion attachment
report_adhesion
=
self
.
env
.
ref
(
'
cgscop_adhesion.cgscop_adhesion_report
'
).
\
render_qweb_pdf
(
self
.
id
)[
0
]
report_adhesion
=
base64
.
b64encode
(
report_adhesion
)
name
=
"
Courrier adhésion
"
report_adhesion_attachment
=
self
.
env
[
'
ir.attachment
'
].
create
({
'
name
'
:
name
,
'
type
'
:
'
binary
'
,
'
datas
'
:
report_adhesion
,
'
datas_fname
'
:
name
+
'
.pdf
'
,
'
store_fname
'
:
name
,
'
res_model
'
:
self
.
_name
,
'
res_id
'
:
self
.
id
,
'
mimetype
'
:
'
application/pdf
'
})
if
not
report_adhesion_attachment
:
raise
UserError
(
"
Erreur lors de la génération du courrier d
'
adhésion
"
"
pour Alfresco
"
)
content_type
=
report_adhesion_attachment
.
mimetype
file_report_adhesion
=
cmis_obj
.
createDocument
(
name
=
report_adhesion_attachment
.
name
,
properties
=
{},
contentFile
=
base64
.
b64decode
(
report_adhesion_attachment
.
datas
),
contentType
=
content_type
)
self
.
alfresco_report_adhesion_file
=
\
file_report_adhesion
.
getObjectId
()
# Email
# Email
def
get_recipients_adhesion
(
self
):
def
get_recipients_adhesion
(
self
):
"""
"""
...
@@ -155,46 +54,6 @@ class ScopAlfrescoAdhesionPartner(models.Model):
...
@@ -155,46 +54,6 @@ class ScopAlfrescoAdhesionPartner(models.Model):
'
context
'
:
ctx
,
'
context
'
:
ctx
,
}
}
# ------------------------------------------------------
# Override Alfodoo
# ------------------------------------------------------
def
_get_invoice_adhesion
(
self
):
"""
:return: Dernière facture de la coop avec article adhésion
"""
invoice
=
False
invoice_line_ids
=
self
.
env
[
'
account.invoice.line
'
].
search
([
(
'
partner_id
'
,
'
=
'
,
self
.
id
),
(
'
product_id
'
,
'
=
'
,
self
.
env
.
user
.
company_id
.
product_adhesion_id
.
id
),
])
if
invoice_line_ids
:
invoice_ids
=
invoice_line_ids
.
mapped
(
'
invoice_id
'
)
if
invoice_ids
:
invoice
=
invoice_ids
.
sorted
(
key
=
'
create_date
'
)[
-
1
]
return
invoice
# ------------------------------------------------------
# Override Alfodoo
# ------------------------------------------------------
def
_create_folder_adhesion
(
self
,
backend
):
"""
Récupère ou crée le répertoire Adhésions s
'
il n
'
existe pas
:param backend: lm backend
:return: lm_cmis_folder objectId
"""
# Check de si le répertoire existe
for
partner
in
self
:
# Si le répertoire parent n'existe pas on le crée
if
not
partner
.
partner_cmis_folder
:
partner
.
create_cmis_folder
()
# Récupération du path parent
parent_path
=
backend
.
get_cmis_repository
().
\
getFolder
(
partner
.
partner_cmis_folder
).
getPaths
()
path_parts
=
parent_path
+
[
'
Adhésion
'
]
path
=
'
/
'
.
join
(
path_parts
)
# Création ou récupération du répertoire partner
partner
.
adhesion_cmis_folder
=
backend
.
get_folder_by_path
(
path
)
# ------------------------------------------------------
# ------------------------------------------------------
# Override parent
# Override parent
# ------------------------------------------------------
# ------------------------------------------------------
...
@@ -212,8 +71,29 @@ class ScopAlfrescoAdhesionPartner(models.Model):
...
@@ -212,8 +71,29 @@ class ScopAlfrescoAdhesionPartner(models.Model):
Inherit function to :
Inherit function to :
- generate files on Alfresco
- generate files on Alfresco
"""
"""
super
(
ScopAlfrescoAdhesionPartner
,
self
).
scop_valid_cg
()
res
=
super
(
ScopAlfrescoAdhesionPartner
,
self
).
scop_valid_cg
()
self
.
generate_alfresco_file
()
# Create & store invoice
invoice_file
=
self
.
env
.
ref
(
'
account.account_invoices
'
).
\
render_qweb_pdf
(
res
.
id
)[
0
]
# TODO: add correct type
self
.
push_alfresco_file
(
file
=
invoice_file
,
name
=
"
Facture d
'
Adhésion
"
,
partner
=
self
,
type
=
'
DAD
'
,)
# Create & store official doc
report_adhesion
=
self
.
env
.
ref
(
'
cgscop_adhesion.cgscop_adhesion_report
'
).
\
render_qweb_pdf
(
self
.
id
)[
0
]
#TODO: add correct type
self
.
push_alfresco_file
(
file
=
report_adhesion
,
name
=
"
Courrier d
'
Adhésion.pdf
"
,
partner
=
self
,
type
=
'
LDI
'
)
return
True
@api.multi
@api.multi
def
check_compulsory_docs
(
self
):
def
check_compulsory_docs
(
self
):
...
...
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