@ -1,9 +1,7 @@
# -*- coding: utf-8 -*-
# © 2015 Therp BV (<http://therp.nl>).
# Copyright 2015-2019 Therp BV (<http://therp.nl>).
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import base64
from odoo import models , api
from odoo import api , models
class AccountBankStatementImport ( models . TransientModel ) :
class AccountBankStatementImport ( models . TransientModel ) :
@ -15,26 +13,24 @@ class AccountBankStatementImport(models.TransientModel):
super ( AccountBankStatementImport , self ) . import_file ( )
super ( AccountBankStatementImport , self ) . import_file ( )
statement_ids = action . get ( ' context ' , { } ) . get ( ' statement_ids ' )
statement_ids = action . get ( ' context ' , { } ) . get ( ' statement_ids ' )
notifications = action . get ( ' context ' , { } ) . get ( ' notifications ' )
notifications = action . get ( ' context ' , { } ) . get ( ' notifications ' )
data_file = base64 . b64decode ( self . data_file )
if statement_ids :
if statement_ids :
attach_vals = self . _prepare_import_file_attachment (
self . data_file , statement_ids [ 0 ] , notifications , self . filename )
attach = self . env [ ' ir.attachment ' ] . create ( attach_vals )
self . env [ ' account.bank.statement ' ] . browse ( statement_ids ) . write ( {
self . env [ ' account.bank.statement ' ] . browse ( statement_ids ) . write ( {
' import_file ' : self . env [ ' ir.attachment ' ] . create (
self . _create_import_file_attachment_data (
data_file , statement_ids [ 0 ] , notifications ,
self . filename ) ) . id ,
} )
' import_file ' : attach . id } )
return action
return action
@api.model
@api.model
def _create_import_file_attachment_data ( self , data_file , statement_id ,
notifications , filename = Non e ) :
def _prepare_import_file_attachment ( self , data_file , statement_id ,
notifications , filename ) :
return {
return {
' name ' : filename or ' <unknown> ' ,
' name ' : filename ,
' res_model ' : ' account.bank.statement ' ,
' res_model ' : ' account.bank.statement ' ,
' res_id ' : statement_id ,
' res_id ' : statement_id ,
' type ' : ' binary ' ,
' type ' : ' binary ' ,
' datas ' : base64 . b64encode ( data_file ) ,
' datas_fname ' : filename or ' <unknown> ' ,
' datas ' : data_file ,
' datas_fname ' : filename ,
' description ' : ' \n ' . join (
' description ' : ' \n ' . join (
' %(type)s : %(message)s ' % notification
' %(type)s : %(message)s ' % notification
for notification in notifications ) or False ,
for notification in notifications ) or False ,