Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • c8498fa183c3c0d72f2ddcd122220e3c994bf5a2
  • 16.0 par défaut protégée
  • 16.0-stephane-full-dyn
  • 16.0-perimeter-upd
  • 16.0-refactor-perimeter
5 résultats

acc_repartition_keys_compute_wizard.py

Blame
  • acc_repartition_keys_compute_wizard.py 3,19 Kio
    # Copyright 2021- Le Filament (https://le-filament.com)
    # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
    
    from odoo import _, fields, models
    from odoo.exceptions import UserError, ValidationError
    
    
    class AccRepartitionKeysComputeWizard(models.TransientModel):
        _name = "acc.repartition.keys.compute.wizard"
        _description = "Import fichier de clés de répartition"
    
        # ------------------------------------------------------
        # Default methods
        # ------------------------------------------------------
        def _default_operation_id(self):
            return self.env.context.get("active_id")
    
        # ------------------------------------------------------
        # Fields declaration
        # ------------------------------------------------------
        operation_id = fields.Many2one(
            "acc.operation", "Opération", default=_default_operation_id
        )
    
        # ------------------------------------------------------
        # SQL Constraints
        # ------------------------------------------------------
    
        # ------------------------------------------------------
        # Computed fields / Search Fields
        # ------------------------------------------------------
    
        # ------------------------------------------------------
        # Onchange / Constraints
        # ------------------------------------------------------
    
        # ------------------------------------------------------
        # CRUD methods (ORM overrides)
        # ------------------------------------------------------
        def ignore(self):
            return {"type": "ir.actions.act_window_close"}
    
        # ------------------------------------------------------
        # Actions
        # ------------------------------------------------------
    
        # ------------------------------------------------------
        # Business methods
        # ------------------------------------------------------
    
        def send_keys(self):
            if not self.operation_id.acc_priority_group_ids:
                raise ValidationError(
                    _("Aucune priorité n'est définie pour cette opération.")
                )
    
            self.operation_id.action_send_repartition_keys()
    
        def get_csv(self):
            if not self.operation_id.acc_priority_group_ids:
                raise ValidationError(
                    _("Aucune priorité n'est définie pour cette opération.")
                )
    
            job_description = f"{self.operation_id.name} - Generate repartition CSV "
    
            try:
                self.operation_id.with_delay(
                    description=job_description
                ).export_repartition()
            except ValidationError as exc:
                raise UserError(_(str(exc))) from exc
    
            return {"type": "ir.actions.act_window_close"}
    
        def compute_keys(self):
            if not self.operation_id.acc_priority_group_ids:
                raise ValidationError(
                    _("Aucune priorité n'est définie pour cette opération.")
                )
    
            job_description = f"{self.operation_id.name} - Generate repartition key "
    
            try:
                self.operation_id.with_delay(
                    description=job_description
                ).compute_repartition()
            except ValidationError as exc:
                raise UserError(_(str(exc))) from exc
    
            return {"type": "ir.actions.act_window_close"}