El martes, 7 de julio de 2015, 11:35:46 (UTC+1), Jordi Esteve (Zikzakmedia) 
escribió:
>
>  On 07/07/15 12:10, Antonio Roncero wrote:
>  
>
>
> El martes, 7 de julio de 2015, 9:26:04 (UTC+1), Sergi Almacellas Abellana 
> escribió: 
>>
>> El 07/07/15 a les 10:23, Antonio Roncero ha escrit: 
>> > 
>> > 
>> > El lunes, 6 de julio de 2015, 18:42:39 (UTC+1), Jordi Esteve 
>> > (Zikzakmedia) escribió: 
>> > 
>> >     El 06/07/15 a les 16:57, Antonio Roncero ha escrit: 
>> >> 
>> >> 
>> >>     El viernes, 3 de julio de 2015, 12:25:57 (UTC+1), Jordi Esteve 
>> >>     (Zikzakmedia) escribió: 
>> >> 
>> >>         On 03/07/15 13:16, Antonio Roncero wrote: 
>> >>         > 
>> >>         > A ver si me estoy equivocando en el proceso... 
>> >> 
>> >>         Si, te equivocas en el proceso. 
>> >> 
>> >>         > 
>> >>         > Creo la factura, la confirmo, y como el cliente tiene 
>> >>         mandato sepa, 
>> >>         > voy a efectos a pagar/cobrar-> a cobrar con mandato y 
>> >>         ejecuto el 
>> >>         > wizard que me genera el fichero sepa. En mensajes sepa, lo 
>> >>         paso a 
>> >>         > estado realizado. 
>> >>         > 
>> >>         > Las facturas me siguen apareciendo validadas a espera de 
>> >>         pagar, por lo 
>> >>         > que debo ejecutar el proceso de conciliación para asociar 
>> >>         los apuntes 
>> >>         > que haya generado el mandato sepa (que por cierto no se como 
>> >>         mirarlos, 
>> >>         > porque no veo por ningun lado el dario de cobro que he 
>> >>         creado en SEPA) 
>> >>         > con lo de las facturas. 
>> >> 
>> >>         Aquí es donde fallas. Cuando se genera un fichero SEPA no 
>> >>         implica que 
>> >>         las facturas estén pagadas. Piensa que en un fichero SEPA se 
>> >>         ordenan 
>> >>         pagos o cobros a fechas en el futuro. Hasta que no llegue las 
>> >>         fechas de 
>> >>         pago/cobro de cada recibo estos no se cobraran realmente. Por 
>> >>         tanto la 
>> >>         generación de ficheros SEPA no crea ningún asiento de pago ni 
>> >>         tampoco 
>> >>         ninguna conciliación, es simplemente una orden que mandas al 
>> >>         banco. 
>> >> 
>> >>         Contabilizarás los pagos/cobros cuando introduzcas els 
>> >>         extracto del 
>> >>         banco y lo confirmes. Para ello puedes usar el módulo oficial 
>> >>         account_statement o los módulos account_bank_statement* que 
>> >>         encontraràs 
>> >>         en bitbucket que son más flexibles. Te recomiendo estos 
>> >>         últimos pues hay 
>> >>         módulos interesantes: 
>> >> 
>> >>         account_bank_statement_es_csb43 
>> >>         account_bank_statement_payment 
>> >>         account_bank_statement_payment_sepa 
>> >> 
>> >> 
>> >>     He instalado los modulos, y cuando intento importar un csb43 me da 
>> >>     este error: 
>> >> 
>> >>     | 
>> >>     Error:'account.bank.statement'Modelhas noattribute 'lines':None 
>> >>     | 
>> >> 
>> >>     He mirado el modelo de account.bank.statement y el modelo si tiene 
>> >>     el campo lines (one2may a account.bank.statement.line)... Ni idea 
>> :( 
>> > 
>> >     Yo tampoco tengo idea, sin saber en que línea falla y que fichero 
>> >     usaste para importar. Parece como si importara 0 líneas del 
>> extracto. 
>> > 
>> >     Deberías debugar para ver que pasa cuando falla, y detectar si 
>> >     realmente es problema del código del módulo o de tu instalación o 
>> >     fichero a importar. 
>> > 
>> > 
>> > Perdonad la falta de informacion anterior, el problema salta en la 
>> > linea*if statement.lines:* al hacer la evaluación salta la excepcion, 
>> es 
>> > decir, no es ni True ni False, directamente salta la excepcion *Model 
>> > has no attribute line* 
>> > 
>> > En principio ni siquiera parece llegar a la parte de leer el archivo. 
>> > 
>> > | 
>> > deftransition_import_file(self): 
>> >          pool =Pool() 
>> > BankStatement=pool.get('account.bank.statement') 
>> > BankStatementLine=pool.get('account.bank.statement.line') 
>> > Attachment=pool.get('ir.attachment') 
>> > 
>> >          statement =BankStatement(Transaction().context['active_id']) 
>> > ifstatement.lines: 
>> > self.raise_user_error('statement_already_has_lines') 
>> >          data =unicode(str(self.start.import_file),'latin1') 
>> >          records =c43.read(data) 
>> > | 
>>
>> Esto me suena. Puede que estes intentando importar el registro en un 
>> BankSttement que aún no ha sido guardado? Si es así, prueba guardandlo 
>> primero i deberia funcionar. 
>>
>>  
> Efectivamente, guardando el registro ya no da el problema.
> Ahora el problema es con la importación del archivo en si. 
>
> Con este trozo de codigo se sobreescribe el extracto bancario que he 
> creado para la importación.
>
>   BankStatement.write([statement], {
>             'start_date': records[0].start_date,
>             'end_date': records[0].end_date,
>             'start_balance': records[0].initial_balance,
>             'end_balance': records[-1].final_balance,
>             })
>   
>
>
> El tema es que mi banco el record[0] cuando es entre fechas no lo manda... 
> De hecho solo manda el principal de movimientos y complementarios de 
> conceptos. Y no se si es una mala interpretacion de la norma:
>
>  El tipo de registros que contiene el fichero son los siguientes:
>
>    - Cabecera de cuenta 
>    - Principal de movimientos (obligatorio) 
>    - Complementarios de conceptos, hasta un máximo de 5 registros 
>    opcionales y uno complementario de información de equivalencia del 
>    importe del apunte (opcional) 
>    - Final de cuenta 
>    - Final de fichero 
>
>  
> Según la norma, obligario solo es el principal de movimiento, pero parece 
> que tiene sentido que mande el cabecera y final de cuenta... pero si creo 
> el extracto bancario ya con esa informacion no seria necesario... 
>
> No sé, ¿como lo veis?
>  
>
> Obligatorios son los cabecera de fichero (te lo has dejado), cabecera de 
> cuenta, final de cuenta y final de fichero. Y luego el principal de 
> movimiento por cada movimiento.
>

Hola Jordi, en la norma que estoy mirando no veo el campo cabecera de 
fichero [1][2] . 
Pero estoy de acuerdo, en que mi banco (ING) se pasa la norma por el forro.
 

>
> O sea cada fichero tiene 1 cabecera de fichero y 1 final de fichero. 
> Dentro pueden tener varias cabeceras y finales de cuenta si fuese un 
> extracto de varias cuentas, pero normalmente sólo hay una cuenta. Y luego 
> por cada cuenta hay varios principal de movimientos, que son las líneas de 
> extracto bancario.
>
> La norma indica que la cabecera de cuenta contiene fecha y saldo inicial y 
> final, si tu fichero no los tiene me parece que tu banco no sigue la norma. 
> Te la adjunto para que lo veas.
>
> -- 
> Jordi Esteve
> Consultor Zikzakmedia sljes...@zikzakmedia.com <javascript:>
> Mòbil 679 170 693
>
> Zikzakmedia SL
> St. Jaume, 9, baixos, 2a
> 08720 Vilafranca del Penedès
> Tel 93 890 2108
>
>
[1] La caixa 
<https://empresa.lacaixa.es/deployedfiles/empresas/Estaticos/pdf/Transferenciasyficheros/q43Junio2012.pdf>
[2] Bankinter 
<https://docs.bankinter.com/stf/plataformas/empresas/gestion/ficheros/formatos_fichero/norma_43_castellano.pdf>

Responder a