Skip to content
Extraits de code Groupes Projets
Valider 8e5c2049 rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[update] membership process validation

parent 64ab9938
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -76,6 +76,10 @@ class ScopPartner(models.Model):
string="Nb de statuts de facturation",
compute="_compute_project_invoicing_status_nb",
)
liasse_membership_id = fields.Many2one(
comodel_name="scop.liasse.fiscale",
string="Liasse fiscale adhésion"
)
# Changement de statuts
list_logs = fields.Text("Liste des erreurs")
......@@ -122,19 +126,16 @@ class ScopPartner(models.Model):
],
limit=1,
)
if not staff_id:
staff_id = staff_id.create(
wizard = self.env["scop.membership.staff.wizard"].create(
{
"partner_id": self.id,
"type_entry": "membership",
"effective_date": fields.Date.today(),
"staff_count": 0,
"staff_id": staff_id.id if staff_id else None,
"effective_date": fields.Date.today()
if not staff_id
else staff_id.effective_date,
}
)
wizard = self.env["scop.membership.staff.wizard"].create(
{"partner_id": self.id, "staff_id": staff_id.id}
)
return {
"name": "Effectifs à l'adhésion",
"type": "ir.actions.act_window",
......@@ -147,7 +148,10 @@ class ScopPartner(models.Model):
def fill_membership_liasse(self):
self.ensure_one()
wizard = self.env["scop.membership.liasse.wizard"].create(
{"partner_id": self.id,}
{
"partner_id": self.id,
"liasse_id": self.liasse_membership_id.id,
}
)
return {
"name": "Données financières",
......@@ -161,29 +165,6 @@ class ScopPartner(models.Model):
# ------------------------------------------------------
# Business methods
# ------------------------------------------------------
# TODO: supprimer ou modifier (suppression fonction get_liasse_adhesion)
def check_compulsory_fields(self, lm):
"""
Vérification des champs de la liste ministère et de la liasse fiscale
:param lm:
:return:
"""
res = ""
errors_lm = lm.check_compulsory_fields_lm()
if errors_lm:
res += (
"<hr/><strong>Dossier d'Adhésion : </strong><ul>" + errors_lm + "</ul>"
)
liasse_adhesion = self.get_liasse_adhesion(lm)
errors_lf = liasse_adhesion.check_compulsory_fields_lf()
if errors_lf:
res += (
"<hr/><strong>Données financières :</strong><ul>" + errors_lf + "</ul>"
)
return res
def create_num_adherent(self):
"""
Generate new num adherent with sequence
......@@ -330,7 +311,7 @@ class ScopPartner(models.Model):
# ------------------------------------------------------
def scop_sumbit_cg(self):
"""
Ouvre le wizard et vérifie les effectifs
Ouvre le wizard
"""
wizard = self.env["scop.membership.submit.wizard"].create(
{
......@@ -351,13 +332,24 @@ class ScopPartner(models.Model):
"""
Modifie le statut de la coopérative pour transmission du dossier à la CG
- positionner la date_transmission_cg avec la date du jour
- affecter la coop à sa DIRECCTE
@return : True
"""
# Check Staff
staff_line = self.staff_ids.filtered(
lambda s: s.type_entry == "membership"
).sorted(key="effective_date", reverse=True)
if staff_line and staff_line[0].staff_count > 0:
if not (staff_line or staff_line[0].staff_count > 0):
raise UserError(_("Les effectifs à l'adhésion ne sont pas renseignés."))
# Check financial datas
if not self.liasse_membership_id:
raise UserError(_(
"Il est nécessaire de renseigner les données financières pour valider"
))
if self.liasse_membership_id.check_compulsory_fields_lf():
raise UserError(_(
"Les données financières ne peuvent pas être nulles."
))
self.update(
{
"membership_status": "soumis_cg",
......@@ -365,9 +357,6 @@ class ScopPartner(models.Model):
"list_logs": False,
}
)
self.affectation_contact_ministere()
else:
raise UserError(_("Les effectifs à l'adhésion ne sont pas renseignés."))
def scop_abandonne(self):
"""
......
......@@ -25,4 +25,4 @@ class ScopAdhesionLiasseFiscale(models.Model):
"(CA ou VA obligatoire)</li>"
)
else:
return str()
return False
......@@ -47,6 +47,7 @@ class ScopCompulsoryFieldsSuiviWizard(models.TransientModel):
if self.with_adhesion:
self.partner_id.write({"membership_status": "adhesion"})
if form_id in form_id._get_lm_form():
# Create extranet access
self.partner_id.write({"extranet_service_access": True})
if not self.partner_id.director_ids:
raise UserError(
......@@ -59,6 +60,12 @@ class ScopCompulsoryFieldsSuiviWizard(models.TransientModel):
"extranet_update_company": True,
}
)
# Create LM
self.env["scop.liste.ministere"].sudo().create_folder(
self.partner_id, self.date_1st_sign.year, "subscribe"
)
# Set DDETS
self.partner_id.affectation_contact_ministere()
return {"type": "ir.actions.act_window_close"}
......
......@@ -12,9 +12,7 @@ class ScopMembershipLiasseWizard(models.TransientModel):
# Field declaration
# ------------------------------------------------------
partner_id = fields.Many2one(
comodel_name="res.partner",
string="Coopérative",
required=True
comodel_name="res.partner", string="Coopérative", required=True
)
liasse_id = fields.Many2one(
comodel_name="scop.liasse.fiscale",
......@@ -36,8 +34,12 @@ class ScopMembershipLiasseWizard(models.TransientModel):
av_lf = fields.Monetary(related="liasse_id.av_lf")
L2052_FY = fields.Monetary(related="liasse_id.L2052_FY")
L2053_HN = fields.Float(related="liasse_id.L2053_HN")
contribution_base_type = fields.Selection(related="liasse_id.contribution_base_type")
contribution_base_amount = fields.Integer(related="liasse_id.contribution_base_amount")
contribution_base_type = fields.Selection(
related="liasse_id.contribution_base_type"
)
contribution_base_amount = fields.Integer(
related="liasse_id.contribution_base_amount"
)
contribution_cg = fields.Float(related="liasse_id.contribution_cg")
# ------------------------------------------------------
......@@ -45,9 +47,9 @@ class ScopMembershipLiasseWizard(models.TransientModel):
# ------------------------------------------------------
def _compute_is_financial_data(self):
for wizard in self:
liasse_ids = self.env["scop.liasse.fiscale"].search([
("partner_id", "=", wizard.partner_id.id)
])
liasse_ids = self.env["scop.liasse.fiscale"].search(
[("partner_id", "=", wizard.partner_id.id)]
)
wizard.is_financial_data = True if liasse_ids else False
@api.depends("liasse_id")
......@@ -65,6 +67,7 @@ class ScopMembershipLiasseWizard(models.TransientModel):
"""
Sauvegarder les données même avec erreurs
"""
self.partner_id.liasse_membership_id = self.liasse_id
return {"type": "ir.actions.act_window_close"}
def new_forecast(self):
......@@ -76,11 +79,10 @@ class ScopMembershipLiasseWizard(models.TransientModel):
"type_id": "forecast",
"is_qualified": True,
}
liasse_fiscale_id = self.env["scop.liasse.fiscale"].create(
liasse_values
)
liasse_id = self.env["scop.liasse.fiscale"].create(liasse_values)
self.partner_id.liasse_membership_id = liasse_id
return self.open_forecast(liasse_fiscale_id)
return self.open_forecast(liasse_id)
def update_forecast(self):
return self.open_forecast(self.liasse_id)
......@@ -92,6 +94,7 @@ class ScopMembershipLiasseWizard(models.TransientModel):
action = self.env["ir.actions.actions"]._for_xml_id(
"cgscop_liasse_fiscale.scop_liasse_fiscale_previsionnelle_act_window"
)
self.partner_id.liasse_membership_id = liasse_id
action.update(
{
"target": "new",
......
......@@ -9,7 +9,11 @@
<field name="model">scop.membership.liasse.wizard</field>
<field name="arch" type="xml">
<form string="Effectifs à l'adhésion">
<h3><field name="partner_id" readonly="1" options="{'no_open': True}" /></h3>
<h3><field
name="partner_id"
readonly="1"
options="{'no_open': True}"
/></h3>
<!-- Liasse existante -->
<div
role="alert"
......@@ -65,7 +69,10 @@
widget="monetary"
/>
</group>
<group string="Simulation cotisations" attrs="{'invisible': [('liasse_id', '=', False)]}">
<group
string="Simulation cotisations"
attrs="{'invisible': [('liasse_id', '=', False)]}"
>
<field
name="contribution_base_type"
string="Type Assiette"
......@@ -135,6 +142,7 @@
<button
type="action"
name="%(cgscop_liasse_fiscale.scop_load_liasse_act_window)d"
context="{'membership': True}"
class="btn btn-outline-info btn-lg"
style="width: 250px;"
>
......@@ -149,6 +157,13 @@
string="Sauvegarder"
class="oe_highlight"
/>
<button
type="action"
name="%(cgscop_liasse_fiscale.scop_load_liasse_act_window)d"
class="btn btn-outline-info"
>
Importer une nouvelle liasse
</button>
<button special="cancel" string="Annuler" />
</footer>
</form>
......
......@@ -12,17 +12,25 @@ class ScopMembershipStaffWizard(models.TransientModel):
# Field declaration
# ------------------------------------------------------
partner_id = fields.Many2one(comodel_name="res.partner", required=True)
staff_id = fields.Many2one(comodel_name="scop.partner.staff", required=True)
effective_date = fields.Date(related="staff_id.effective_date", readonly=False)
staff_count = fields.Integer(related="staff_id.staff_count", readonly=False)
staff_id = fields.Many2one(
comodel_name="scop.partner.staff",
)
effective_date = fields.Date(
related="staff_id.effective_date", readonly=False, store=True
)
staff_count = fields.Integer(
related="staff_id.staff_count", readonly=False, store=True
)
staff_shareholder_count = fields.Integer(
related="staff_id.staff_shareholder_count", readonly=False
related="staff_id.staff_shareholder_count", readonly=False, store=True
)
staff_shareholder_total = fields.Integer(
related="staff_id.staff_shareholder_total", readonly=False
related="staff_id.staff_shareholder_total", readonly=False, store=True
)
staff_average = fields.Float(related="staff_id.staff_average", readonly=False)
comment = fields.Char(related="staff_id.comment", readonly=False)
staff_average = fields.Float(
related="staff_id.staff_average", readonly=False, store=True
)
comment = fields.Char(related="staff_id.comment", readonly=False, store=True)
# ------------------------------------------------------
# Actions / Buttons
......@@ -31,4 +39,18 @@ class ScopMembershipStaffWizard(models.TransientModel):
"""
Sauvegarder les données même avec erreurs
"""
if self.staff_id:
return {"type": "ir.actions.act_window_close"}
else:
return self.staff_id.create(
{
"partner_id": self.partner_id.id,
"type_entry": "membership",
"effective_date": self.effective_date,
"staff_count": self.staff_count,
"staff_shareholder_count": self.staff_shareholder_count,
"staff_shareholder_total": self.staff_shareholder_total,
"staff_average": self.staff_average,
"comment": self.comment,
}
)
......@@ -9,13 +9,30 @@
<field name="model">scop.membership.staff.wizard</field>
<field name="arch" type="xml">
<form string="Effectifs à l'adhésion">
<h5><field name="partner_id" readonly="1" string="Coopérative" options="{'no_open': True}" /></h5>
<h5><field
name="partner_id"
readonly="1"
string="Coopérative"
options="{'no_open': True}"
/></h5>
<group>
<field name="staff_id" readonly="1" invisible="1" />
<field name="effective_date" required="1" string="Date effective de l'information" />
<field name="staff_count" required="1" string="Effectif total" />
<field
name="effective_date"
required="1"
string="Date effective de l'information"
/>
<field
name="staff_count"
required="1"
string="Effectif total"
/>
<field name="staff_shareholder_count" required="1" />
<field name="staff_shareholder_total" required="1" string="Total associés y compris non salariés" />
<field
name="staff_shareholder_total"
required="1"
string="Total associés y compris non salariés"
/>
<field name="staff_average" required="1" />
<field name="comment" />
</group>
......@@ -32,10 +49,7 @@
</field>
</record>
<record
id="scop_membership_staff_wizard_action"
model="ir.actions.act_window"
>
<record id="scop_membership_staff_wizard_action" model="ir.actions.act_window">
<field name="name">Effectifs à l'adhésion</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">scop.membership.staff.wizard</field>
......
......@@ -11,10 +11,14 @@ class ScopMembershipSubmitWizard(models.TransientModel):
partner_id = fields.Many2one(
comodel_name="res.partner", string="Coop", required=True
)
ur_id = fields.Many2one(related="partner_id.ur_id", readonly=False)
list_logs = fields.Text("Liste des erreurs", compute="_compute_list_logs")
list_logs = fields.Text("Liste des erreurs")
# ------------------------------------------------------
# Compute
# ------------------------------------------------------
def _compute_list_logs(self):
self.list_logs = self.partner_id.liasse_membership_id.check_compulsory_fields_lf()
# ------------------------------------------------------
# Actions / Buttons
......@@ -26,9 +30,3 @@ class ScopMembershipSubmitWizard(models.TransientModel):
self.partner_id.scop_send_to_cg()
return {"type": "ir.actions.act_window_close"}
def save_data(self):
"""
Sauvegarder les données même avec erreurs
"""
return {"type": "ir.actions.act_window_close"}
......@@ -32,14 +32,7 @@
class="oe_highlight"
attrs="{'invisible':[('list_logs', '!=', False)]}"
/>
<button
name="save_data"
type="object"
string="Sauvegarder"
class="oe_highlight"
attrs="{'invisible':[('list_logs', '=', False)]}"
/>
<button special="cancel" string="Annuler" />
<button special="cancel" string="Fermer" />
</footer>
</form>
</field>
......
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