tryton-ar / account_voucher_ar Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
Traceback (most recent call last):
File "/trytond/wsgi.py", line 47, in dispatch_request
return endpoint(request, **request.view_args)
File "/trytond/protocols/dispatcher.py", line 41, in rpc
request, database_name, *request.rpc_params)
File "/trytond/wsgi.py", line 39, in auth_required
return wrapped(*args, **kwargs)
File "/trytond/protocols/wrappers.py", line 106, in wrapper
return func(request, pool, *args, **kwargs)
File "/trytond/protocols/dispatcher.py", line 163, in _dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
File "/trytond/wizard/wizard.py", line 287, in execute
return wizard._execute(state_name)
File "/trytond/wizard/wizard.py", line 299, in _execute
view['fields'].keys())
File "/trytond/wizard/wizard.py", line 91, in get_defaults
defaults.update(default(fields))
File "/trytond/modules/account_voucher_ar/invoice.py", line 60, in default_start
with Transaction().set_context(date=self.date):
AttributeError: 'account.invoice.pay' object has no attribute 'date'
Como se utiliza voucher_ar para hacer el pago de la factura, y no utilizamos el asistente de pago de account_invoice, las comisiones nunca se les guarda la fecha si el plan de comisiones es tipo "al pagar".
Ver: http://hg.tryton.org/modules/commission/file/tip/invoice.py#l54
Hola, cuando completo el campo moneda y busca las facturas pendientes y los créditos me salta el siguiente error en la versión 4.8:
Traceback (most recent call last):
File "/trytond/wsgi.py", line 71, in dispatch_request
return endpoint(request, **request.view_args)
File "/trytond/protocols/dispatcher.py", line 41, in rpc
request, database_name, *request.rpc_params)
File "/trytond/wsgi.py", line 42, in auth_required
return wrapped(*args, **kwargs)
File "/trytond/protocols/wrappers.py", line 122, in wrapper
return func(request, pool, *args, **kwargs)
File "/trytond/protocols/dispatcher.py", line 172, in _dispatch
result = rpc.result(meth(inst, *c_args, **c_kwargs))
File "/trytond/model/modelview.py", line 679, in on_change
method()
File "/trytond/model/modelview.py", line 84, in wrapper
result = func(self, *args, **kwargs)
File "/trytond/model/fields/field.py", line 114, in wrapper
return func(self, *args, **kwargs)
File "/trytond/modules/account_voucher_ar/account_voucher_ar.py", line 193, in on_change_currency
self.add_lines()
File "/trytond/modules/account_voucher_ar/account_voucher_ar.py", line 254, in add_lines
amount_residual = abs(line.amount_residual)
File "/trytond/model/modelstorage.py", line 1466, in getattr
read_data = self.read(list(ids), ffields.keys())
File "/trytond/model/modelsql.py", line 832, in read
getter_results = field.get(ids, cls, field_list, values=result)
File "/trytond/model/fields/function.py", line 102, in get
return dict((name, call(name)) for name in names)
File "/trytond/model/fields/function.py", line 102, in
return dict((name, call(name)) for name in names)
File "/trytond/model/fields/function.py", line 94, in call
return method(records, name)
File "/trytond/modules/account_voucher_ar/move.py", line 47, in get_amount_residual
if payment.voucher.state == 'posted':
AttributeError: 'NoneType' object has no attribute 'state'
Busque si había algo mal en los otros recibos o en las facturas, pero no encuentro nada mal, habría alguna forma de debuggear para saber que línea de voucher_payments es la que genera la excepción.
Saludos, Pablo.
Line 84 in 2ea4a2c
Basado en el ticket #19 encontré que con CreditInvoice nos puede pasar algo parecido. Un ejemplo, es el módulo contract (no es del core).
https://bitbucket.org/nantic/trytond-contract/src/30e79e14a664d125328671340ddee43ead163db1/invoice.py#lines-85
Hola,
Aunque en ese estado las lineas son de solo lectura, deja modificar los montos y guardar.
creo que podriamos implementar el metodo write y evitar guardar en estado confirmado o cancelado. para garantizar la veracidad de los asientos.
Este issue esta en version 4.0 y 5.0
un saludo.
Tengo un cliente que lo esta utilizando desde la web. Me parece que al clickear Pagar, falla al crear el movimiento, pero igualmente se incrementa el número de la secuencia y le asigna al recibo en estado borrador un número de comprobante.
Por lo que veo en el código, el voucher crea el número previamente a crear los movimientos. Si el movimiento falla, igualmente el número ya ha sido asignado.
@classmethod
@ModelView.button
@Workflow.transition('posted')
def post(cls, vouchers):
cls.check_already_reconciled(vouchers)
cls.check_amount_invoices(vouchers)
for voucher in vouchers:
voucher.set_number()
move_lines = voucher.prepare_move_lines()
voucher.create_move(move_lines)
Sugieron pasar la linea voucher.set_number() debajo de voucher.create_move(move_lines)
El tema es que el método prepare_move_lines() utiliza el número de recibo para agregarlo a la descripción de la linea del movimiento.
Sucede que en algunas situaciones, uno hace un recibo en donde carga 3 cobrar. 2 de ellas, se carga el importe total a conciliar, y deja una con un pago intermedio.
Sucede que como una de ellas no se paga completamente, deja a las otras dos en estado confirmado y no concilia sus pago. La única forma de resolverlo por el momento es ejecutar el asistente de conciliación de asientos y conciliar la factura con el comprobante.
Lo que sucede es que la mayoría de las veces no usan el asistente de conciliación. Y la otra es que al no estar conciliado, y si miran las facturas, aparecen en estado confirmadas, pero la realidad es que esta pagada y en la cuenta corriente aparece como tal.
Al querer cobrar una factura que no tiene cargado el identificador impositivo del tercero me da un error. Pasos a reproducir:
Genera una excepción:
trytond.exceptions.UserError: ('UserError', ('El valor del campo "Identificador impositivo" de "Factura" no es correcto según su dominio.', ''))
It seems that we are calling the method get_reconcile_lines_for_amount as:
Invoice.get_reconcile_lines_for_amount(invoice, amount)
When it shoud be something like:
invoice.get_reconcile_lines_for_amount(amount)
I believe that our mistake was that the model PayInvoice has the same name of the method and the arguments are (invoice, amount).
Here we can found the line code: https://github.com/tryton-ar/account_voucher_ar/blob/master/account_voucher_ar.py#L680
The ticket was reported here: tryton-ar/account_retencion_ar#1
Al crear una retención desde un recibo, usando sao salta este error. Le das cerrar a la pantalla y se puede seguir operando normalmente.
Traceback (most recent call last):
File "/trytond/wsgi.py", line 47, in dispatch_request
return endpoint(request, **request.view_args)
File "/trytond/protocols/dispatcher.py", line 59, in rpc
request, database_name, *request.params)
File "/trytond/wsgi.py", line 39, in auth_required
return wrapped(*args, **kwargs)
File "/trytond/protocols/dispatcher.py", line 40, in wrapper
return func(request, pool, *args, **kwargs)
File "/trytond/protocols/dispatcher.py", line 206, in _dispatch
result = rpc.result(meth(inst, *c_args, **c_kwargs))
File "/trytond/model/modelview.py", line 669, in on_change_with
changes[fieldname] = getattr(self, method_name)()
File "/trytond/model/fields/field.py", line 89, in wrapper
return func(self, *args, **kwargs)
File "/trytond/modules/account_retencion_ar/account_voucher_ar.py", line 43, in on_change_with_amount
amount += retencion.amount
TypeError: unsupported operand type(s) for +=: 'Decimal' and 'NoneType'
Cuando clickeo el botón Pagar desde una Factura (sea de proveedor o cliente) el monto en la columna saldando siempre viene en negativo.
Este es un error introducido en el commit: eef79f6
Since commit: 931aca1 the currency must be filled by the user. Generally we want to pay invoices at ARS (like company was configured), so I believe that we should add this code again.
Estaría bueno si en la cancelación de un pago o un recibo se podría pedir fecha de cancelación y no tomar de una la fecha del día. Esto es básicamente por cuestiones contables que hay veces que es necesario que dicha cancelación sea con fecha para atrás.
Muchas gracias,
Por alguna razón, luego de confirmar un recibo, la factura continua en estado confirmada y no pasa a estado pagada. Compruebo que se ha realizado el asiento de pago. ¿Hay algo más que debería de suceder para que el estado de la factura pase a pagada?
Charlando con la contadora, me comenta que la fecha de asiento de cancelación de un recibo debe ser la misma que la fecha de confirmación. De esa manera, el asiento de cancelación va a estar dentro del período correspondiente. Sino, puede darse el caso de que uno cancele un recibo fuera del periodo fiscal y quede fuera del balance.
Al cancelar el recibo, no esta asociando el movimiento de cancelación a la factura.
Entonces, al querer volver a generar un recibo de pago, indica que el monto adeudado es $ 0,00.
Este problema sucede con v3.8
Reproducir el bug:
Caso de uso: Pagos parciales sin que exista aún la FC.
Al parecer el error no ocurre sólo con pagos a cuenta, sino que también lo hace con Notas de Crédito (en ambos casos tienen que ser mas de un item cómo Débitos/Créditos)
Se testeo en version 5.0 y desde ahi esta dando el error.
Adjunto captura con error.
PD: crear tests funcionales para este modulo y poder corregir estos errores.
Al cancelar un recibo genera un moviento de crédito al débito, es decir se genera como que entro y se devolvió el dinero. Desde mi punto de vista debería generar un movimiento negativo en el débito de mi cuenta, como cuando se cancela un asiento desde asientos contables. Estoy utilizando la versión 5.0
Al querer pagar completamente una factura que tiene más de un plazo de pago (por lo tanto más de una línea a pagar) da error en la conciliación:
El campo cuenta de apunte contable es obligatorio.
Deberíamos poder configurar un diario para Recibos y otro para Pagos, ya que probablemente sean diferentes.
Extra: generarlos vía XML, deberiamos de tener un tipo de díario específico? o Agregar un tilde para luego poder buscar únicamente por esos tipos de diario en el voucher? Sino, se puede dar la posibilidad de que un usuario utilice un diario de cualquier tipo para generar el voucher.
Actualmente el voucher mete una línea negativa para compensar, y eso hace que rebote.
Es un problema con el campo payment_lines de las facturas. Lo hicieron editable pero cambiaron el dominio para no permitir valores negativos si es factura.
Versión: 5.0
Cunado se pasa la información al super(), se envuelve en un tryt/except. El except esta solamente para UserError. Se debería agregar un except final para poder agarrar las excepciones que vienen por otra razón (ej: sin tener conexión a la AFIP).
Código: https://github.com/tryton-ar/account_voucher_ar/blob/5.0/invoice.py#L121
El commit: eef79f6 genero que al confeccionar un recibo se muestren distintas lineas pendientes de una misma factura. Ejemplo, si una factura tiene condiciones de pago 30-60-90, entonces el recibo en la sección de factura pendiente en vez de mostrarnos una sola linea de factura pendiente, nos muestra 3 con cada fecha de vencimiento correspondiente.
Ahora, a la hora de calcular el monto sin conciliar lo hace mal, ya que no guardamos el monto que se paga contra la linea pendiente, sino que es contra toda la factura. Entonces no podemos saber a que pago corresponde la linea pendiente que se hizo en otro recibo anterior.
Lo que me imagino es que cuando tengamos más de una linea pendiente para una misma factura, sumarizarla y mostrar solo una
Agregar reporte para imprimir el comprobante de recibo o pago.
File "/opt/trytond/saas50/env/lib/python3.5/site-packages/trytond/modules/account_voucher_ar/move.py", line 44, in get_amount_residual
if payment.voucher.state == 'posted':
AttributeError: 'NoneType' object has no attribute 'state'
Podriamos pasar a usar los metodos de pago de account_invoice. Creo que no sería mala idea, ya que el diseño es muy parecido, y lo que nos agrega es que los metodos de pago contienen más información.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.