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?




 

> Creo que esto se solucionaria cambiando el wizard por un botón en el 
> modelo. 
>
> Un saludo, 
>
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>

Responder a