Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • a99408b16de651b3d605a12eb5c1f3b72d937b68
  • 12.0 par défaut protégée
  • 17.0
  • 18.0
  • 16.0
  • 14.0
  • 15.0
  • 13.0
  • 10.0
  • 9.0
10 résultats

previ_tresorerie.js

Blame
  • hr_expense.py 2,73 Kio
    # Copyright 2020 Le Filament (<http://www.le-filament.com>)
    # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
    
    from odoo import api, models, fields
    from odoo.exceptions import UserError
    
    
    class AdefpatHrExpense(models.Model):
        _inherit = 'hr.expense'
    
        proof_file = fields.Char("Justificatif")
    
        # ------------------------------------------------------
        # Override ORM
        # ------------------------------------------------------
        @api.multi
        def unlink(self):
            for espense in self:
                if espense.proof_file:
                    raise UserError(
                        "Un document est attaché à cette note de frais, "
                        "veuillez le supprimer avant de supprimer la note de frais.")
            return super(AdefpatHrExpense, self).unlink()
    
        # ------------------------------------------------------
        # Button Function
        # ------------------------------------------------------
        @api.multi
        def get_content_details_url(self):
            # TODO: Refaire la fonction sans le type CMIS Folder
            """
            Ouvre une nouvelle fenêtre avec le fichier
            :return: ir.actions.act_url
            """
            backend = self.env['cmis.backend'].search([], limit=1)
            for expense in self:
                if expense.proof_file:
                    properties = backend.get_cmis_repository().getFolder(
                        expense.proof_file).getProperties()
                    url = backend.get_content_details_url_from_props(properties)
                    return {
                        'type': 'ir.actions.act_url',
                        'url': url,
                        'target': 'new',
                    }
    
        def delete_file(self):
            backend = self.env['cmis.backend'].search([], limit=1)
            try:
                file = backend.get_cmis_repository().getObject(
                    self.proof_file
                )
                file.delete()
                self.proof_file = False
            except Exception as e:
                self.proof_file = False
                # raise UserError(json.loads(e.details).get('message'))
    
        # ------------------------------------------------------
        # Common Function
        # ------------------------------------------------------
        def get_file_properties(self):
            # TODO: Renvoyer les propriétés Alfresco
            """
            Ajoute les propriétés au dossier lors de la création dans Alfresco
            """
            return {
                'cmis:secondaryObjectTypeIds': ['P:adefpat:justificatif'],
                'adefpat:justificatifDate': fields.Datetime.to_datetime(self.date).isoformat(),
                'adefpat:justificatifTypeConvention': self.type_convention_id.name if self.type_convention_id.name else '',
                'adefpat:justificatifUtilisateurs': self.employee_id.user_id.login
            }