Skip to content
Extraits de code Groupes Projets

[UPD]Change process adhesion

4 files
+ 704
162
Comparer les modifications
  • Côte à côte
  • En ligne

Fichiers

+ 201
53
@@ -24,12 +24,17 @@ class ScopPartnerDashboardDlg(models.Model):
name = fields.Char()
dash_type = fields.Char("Type de dashboard")
nb_prj_info = fields.Integer("Information")
nb_prj_pdiag = fields.Integer("Pre-diag")
nb_prj_accomp = fields.Integer("Accompagnement")
nb_prj_adh = fields.Integer("Adhésion")
nb_prj_soumis = fields.Integer("Soumis")
nb_prj_tot = fields.Integer("Projets en cours")
nb_prj_crea_info = fields.Integer("Information")
nb_prj_crea_pdiag = fields.Integer("Pre-diag")
nb_prj_crea_accomp = fields.Integer("Accompagnement")
nb_prj_crea_abandon = fields.Integer("Abandon")
nb_prj_crea_tot = fields.Integer("Projets en cours")
nb_adh_member = fields.Integer("Membre")
nb_adh_adhesion = fields.Integer("Adhésion")
nb_adh_soumis_cg = fields.Integer("Soumis CG")
nb_adh_radie = fields.Integer("Radié")
nb_adh_tot = fields.Integer("Coop dans le processus")
nb_fc_scop = fields.Integer("Nombre de scop")
nb_fc_scic = fields.Integer("Nombre de scic")
@@ -71,13 +76,16 @@ class ScopPartnerDashboardDlg(models.Model):
def _select(self):
# On constitue les requetes
qy_projet = self._select_projet()
qy_projet_crea = self._select_projet_crea()
qy_adh = self._select_adh()
qy_coop = self._select_coop()
qy_rev = self._select_rev()
qy_act = self._select_act()
qy = (
qy_projet
qy_projet_crea
+ " UNION ALL "
+ qy_adh
+ " UNION ALL "
+ qy_coop
+ " UNION ALL "
@@ -89,32 +97,34 @@ class ScopPartnerDashboardDlg(models.Model):
return qy
# ------------------------------------------------------
# Dashboard projets
# Dashboard projets de création
# ------------------------------------------------------
@api.model
def _select_projet(self):
def _select_projet_crea(self):
query = """
SELECT
CONCAT('1', org.creation_delegate_id) AS id,
CONCAT('5', org.creation_delegate_id) AS id,
org.creation_delegate_id as dlg_id,
'Prospects en cours' AS name,
'1' as dash_type,
'Projets de création' AS name,
'5' as dash_type,
SUM(case
when substring(org.project_status,1,1) = '1' then 1
else 0 end) AS nb_prj_info,
else 0 end) AS nb_prj_crea_info,
SUM(case
when substring(org.project_status,1,1) = '2' then 1
else 0 end) AS nb_prj_pdiag,
else 0 end) AS nb_prj_crea_pdiag,
SUM(case
when substring(org.project_status,1,1) = '3' then 1
else 0 end) AS nb_prj_accomp,
SUM(case
when substring(org.project_status,1,1) = '4' then 1
else 0 end) AS nb_prj_adh,
else 0 end) AS nb_prj_crea_accomp,
SUM(case
when substring(org.project_status,1,1) = '5' then 1
else 0 end) AS nb_prj_soumis,
count(org.id) as nb_prj_tot,
else 0 end) AS nb_prj_crea_abandon,
count(org.id) as nb_prj_crea_tot,
0 as nb_adh_member,
0 as nb_adh_adhesion,
0 as nb_adh_soumis_cg,
0 as nb_adh_radie,
0 as nb_adh_tot,
0 as nb_fc_scop,
0 as nb_fc_scic,
0 as nb_fc_co47,
@@ -138,7 +148,65 @@ class ScopPartnerDashboardDlg(models.Model):
WHERE
(org.active=TRUE) and
(org.is_cooperative = TRUE)and
substring(org.project_status,1,1) in ('1','2','3','4','5')
substring(org.project_status,1,1) in ('1','2','3','5')
GROUP BY
org.creation_delegate_id
"""
return query
# ------------------------------------------------------
# Dashboard processus d'adhésion
# ------------------------------------------------------
@api.model
def _select_adh(self):
query = """
SELECT
CONCAT('6', org.creation_delegate_id) AS id,
org.creation_delegate_id as dlg_id,
'Processus d adhésion' AS name,
'6' as dash_type,
0 as nb_prj_crea_info,
0 as nb_prj_crea_pdiag,
0 as nb_prj_crea_accomp,
0 as nb_prj_crea_abandon,
0 as nb_prj_crea_tot,
SUM(case
when org.membership_status = 'member' then 1
else 0 end) AS nb_adh_member,
SUM(case
when org.membership_status = 'adhesion' then 1
else 0 end) AS nb_adh_adhesion,
SUM(case
when org.membership_status = 'soumis_cg' then 1
else 0 end) AS nb_adh_soumis_cg,
SUM(case
when org.membership_status = 'out' then 1
else 0 end) AS nb_adh_radie,
count(org.id) as nb_adh_tot,
0 as nb_fc_scop,
0 as nb_fc_scic,
0 as nb_fc_co47,
0 as nb_coop_cae,
0 as nb_coop_adh,
0 as nb_coop_tot,
0 as rev_done,
0 as rev_1y,
0 as rev_5y,
0 as rev_5ys,
0 as rev_5ys23,
0 as rev_todo,
0 as rev_total,
0 as act_dev,
0 as act_acc,
0 as act_rev,
0 as act_for,
0 as act_acc_theo
FROM
res_partner org
WHERE
(org.active=TRUE) and
(org.is_cooperative = TRUE)and
substring(org.project_status,1,1) in ('4')
GROUP BY
org.creation_delegate_id
"""
@@ -173,12 +241,16 @@ class ScopPartnerDashboardDlg(models.Model):
org.followup_delegate_id as dlg_id,
'Coopératives suivies' AS name,
'2' as dash_type,
0 as nb_prj_info,
0 as nb_prj_pdiag,
0 as nb_prj_accomp,
0 as nb_prj_adh,
0 as nb_prj_soumis,
0 as nb_prj_tot,
0 as nb_prj_crea_info,
0 as nb_prj_crea_pdiag,
0 as nb_prj_crea_accomp,
0 as nb_prj_crea_abandon,
0 as nb_prj_crea_tot,
0 as nb_adh_member,
0 as nb_adh_adhesion,
0 as nb_adh_soumis_cg,
0 as nb_adh_radie,
0 as nb_adh_tot,
SUM(case
when org.cooperative_form_id = %d then 1
else 0 end) AS nb_fc_scop,
@@ -239,12 +311,16 @@ class ScopPartnerDashboardDlg(models.Model):
dlg_id,
CONCAT('Révisions année ',date_part('year', CURRENT_DATE)) AS name,
'3' as dash_type,
0 as nb_prj_info,
0 as nb_prj_pdiag,
0 as nb_prj_accomp,
0 as nb_prj_adh,
0 as nb_prj_soumis,
0 as nb_prj_tot,
0 as nb_prj_crea_info,
0 as nb_prj_crea_pdiag,
0 as nb_prj_crea_accomp,
0 as nb_prj_crea_abandon,
0 as nb_prj_crea_tot,
0 as nb_adh_member,
0 as nb_adh_adhesion,
0 as nb_adh_soumis_cg,
0 as nb_adh_radie,
0 as nb_adh_tot,
0 as nb_fc_scop,
0 as nb_fc_scic,
0 as nb_fc_co47,
@@ -307,12 +383,16 @@ class ScopPartnerDashboardDlg(models.Model):
dlg_id,
CONCAT('Activité année ',date_part('year', CURRENT_DATE)) AS name,
'4' as dash_type,
0 as nb_prj_info,
0 as nb_prj_pdiag,
0 as nb_prj_accomp,
0 as nb_prj_adh,
0 as nb_prj_soumis,
0 as nb_prj_tot,
0 as nb_prj_crea_info,
0 as nb_prj_crea_pdiag,
0 as nb_prj_crea_accomp,
0 as nb_prj_crea_abandon,
0 as nb_prj_crea_tot,
0 as nb_adh_member,
0 as nb_adh_adhesion,
0 as nb_adh_soumis_cg,
0 as nb_adh_radie,
0 as nb_adh_tot,
0 as nb_fc_scop,
0 as nb_fc_scic,
0 as nb_fc_co47,
@@ -429,32 +509,60 @@ class ScopPartnerDashboardDlg(models.Model):
# ------------------------------------------------------
def _compute_graph_values(self):
for rec in self:
if rec.dash_type == "1":
if rec.dash_type == "5":
rec.graph_values = json.dumps(
[
{
"values": [
{
"label": "Information",
"value": rec.nb_prj_info,
"value": rec.nb_prj_crea_info,
},
{
"label": "Pré-diag",
"value": rec.nb_prj_pdiag,
"value": rec.nb_prj_crea_pdiag,
},
{
"label": "Accompagnement",
"value": rec.nb_prj_accomp,
"value": rec.nb_prj_crea_accomp,
},
{
"label": "Abandon",
"value": rec.nb_prj_crea_abandon,
},
],
"area": True,
"title": "",
"key": "Projets de création",
}
]
)
if rec.dash_type == "6":
rec.graph_values = json.dumps(
[
{
"values": [
{
"label": "Membre",
"value": rec.nb_adh_member,
},
{
"label": "Adhésion",
"value": rec.nb_adh_adhesion,
},
{"label": "Adhésion", "value": rec.nb_prj_adh},
{
"label": "Soumis CG",
"value": rec.nb_prj_soumis,
"value": rec.nb_adh_soumis_cg,
},
{
"label": "Radié",
"value": rec.nb_adh_radie,
},
],
"area": True,
"title": "",
"key": "Prospects en cours",
"key": "Processus d'adhésion",
}
]
)
@@ -545,11 +653,11 @@ class ScopPartnerDashboardDlg(models.Model):
rec.act_acc_percent_done = rec.act_acc / rec.act_acc_theo * 100
# ------------------------------------------------------
# Affichage des projets
# Affichage des projets de création
# ------------------------------------------------------
def show_projets(self):
def show_projets_creation(self):
return {
"name": "Prospects",
"name": "Projets de création",
"type": "ir.actions.act_window",
"res_model": "res.partner",
"view_mode": "kanban,tree,form,activity",
@@ -577,9 +685,7 @@ class ScopPartnerDashboardDlg(models.Model):
"1_information",
"2_pre-diagnostic",
"3_accompagnement",
"4_adhesion",
"5_cg",
"7_abandonne",
"4_abandonne",
),
),
("creation_delegate_id", "=", self.env.user.id),
@@ -592,6 +698,48 @@ class ScopPartnerDashboardDlg(models.Model):
},
}
# -----------------------------------------
# Affichage des coop en processu d'adhésion
# -----------------------------------------
def show_adhesion(self):
return {
"name": "Processus d'adhésion",
"type": "ir.actions.act_window",
"res_model": "res.partner",
"view_mode": "kanban,tree,form,activity",
"views": [
(
self.env.ref("cgscop_partner.view_partner_adhesion_kanban").id,
"kanban",
),
(
self.env.ref("cgscop_partner.view_partner_prospect_tree").id,
"tree",
),
(
self.env.ref("cgscop_partner.scop_contact_view_form").id,
"form",
),
],
"target": "current",
"domain": [
("is_cooperative", "=", True),
(
"project_status",
"in",
("4_suivi",),
),
("membership_status", "!=", "not_member"),
("creation_delegate_id", "=", self.env.user.id),
],
"context": {
"default_is_company": True,
"default_is_cooperative": True,
"default_company_type": "company",
"default_project_status": "1_information",
},
}
# ------------------------------------------------------
# Affichage des coop adh
# ------------------------------------------------------
Chargement en cours