ingadhoc / account-payment Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU Affero General Public License v3.0
License: GNU Affero General Public License v3.0
When do you plan to complete the to-do in the account_check module?
El importe del asistente se considera sin impuestos por lo cual, luego de agregar la línea con los impuestos del producto, el importe final puede ser diferente. Mejorar usabilidad
Hola @jjscarafia
Estoy tratando de identificar la necesidad de esta dependencia para el funcionamiento de account_voucher_withholding_automatic, para ver si es posible removerla.
Sin embargo, no puedo encontrarla.. ya que, en teoría, este módulo podría deducir toda la información que necesita sin depender del otro.
Desde el punto de vista de la interacción con el usuario, tampoco sería necesario.. ya que podría agregarse un paso previo "Calcular retenciones" al de validación. (Similar como se hace con el "Correr operaciones" de los planes de facturación)
¿Para qué es necesaria?
Si pudiera entenderlo, tal vez podría hacer una PR con las modificaciones necesarias para remover esta dependencia.
When try to action_draft Odoo raise
"You cannot modify the taxes related to a posted journal item, you should reset the journal entry to draft to do so."
We workaround this using _write and None for vals:
def action_draft(self):
''' posted -> draft '''
withholdings = self.filtered(lambda x: x.tax_withholding_id)
for withholding in withholdings:
liquidity_lines, counterpart_lines, writeoff_lines = withholding._seek_for_lines()
liquidity_lines._write({
'tax_repartition_line_id': None,
'tax_line_id': None,
})
return super().action_draft()
Una vez validado el pago no queda vínculo de que esa nota de débito se generó desde ese pago.
Si es necesario, dicho link podría ser:
Buenas gente.
Estoy teniendo un problema con la numeración de las transferencias internas entre diarios (opción de menú Contabilidad / Bank and Cash / Transferencias).
Me está tomando la numeración de los talonarios de recibos que utiliza account.payment.group
En Odoo v12/13 las transferencias internas tenían su propia numeración.
Es v15 enterprise y este comportamiento que describo lo reproduje en esta db del runbot 19509-15-0-all.runbot.adhoc.com.ar
con un ejemplo de un depósito de cheques de tercero. Les dejo una captura de pantalla:
https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-12.0
1、install this new [12.0] [account_payment_group]
2、click menu-> accounting->Customers->Customer Receipts
3、show Odoo Server Error
4、Error Messages: account.payment(1,).other_currency
5、if fix other_currency。But another problem has arisen again...--> account.payment(1,).signed_amount
Today..test process:
1、,When there are existing payment orders, another_currency error will occur after installation.show account.payment(1,).other_currency, can't see this payment order.
orign source code
so...i fix it, change code to:
now, i can see this account.payment.group.tree list...
2、signed_amount question:
source code:
i fix it...change to :
now..can click this payment order to form view...
But I think this solution should be incorrect.
Hello,
account_voucher_payline is not taking currency on the voucher into account and generates a difference move line.
Scenario: When receiving EUR payment, at the bottom select local currency and set a custom rate. An extra move line is being created when confirmed.
As far as I understood, paid_amount_in_company_currency should be used instead of _convert_amount in net amount but what to do with account_check and account_voucher_withholding ?
Solution might be moving calculation of amount to calling functions?
Sería particularmente útil para registrar una Orden de Pago de un cliente compuesta por varios comprobantes de depósitos bancarios, realizados en distintas fechas.
Por ejemplo:
Cliente X nos informa que canceló la factura de $ 15.000 de la siguiente manera:
Fecha | Detalle |
---|---|
15/08 | Depósito de $ 5000 en CC Galicia |
16/08 | Depósito de $ 5000 en CC Galicia |
20/08 | Entrega efectivo por $ 5000 |
Nosotros registramos la Orden de Pago el 20/08, ingresando las 3 líneas de pagos tal cual las informa el cliente (de acuerdo a sus comprobantes de transferencia/depósito)
De esa manera, se guardan las fechas de los depósitos, y eso agiliza muchísimo el trabajo de realizar conciliaciones bancarias, ya que las líneas de Pagos coinciden en fecha e importe con las líneas en el resumen bancario.
Notas:
El valor podría dejarse vacío y luego completarse con la fecha del payment.group, si no está definido.
Veo que ha sido deprecado para ser implementado dentro del mismo account.payment
.
Esta implementación me hace un poco de ruido, ya que creo que presenta algunas desventajas:
account.payment
.¿Por que no mantenerlo? ¿Tal vez con otro nombre, considerando que account.voucher
ya no existe: account.withholding
?
Supongo que la decisión de eliminarlo viene de la mano con que cada account.payment
sólo debe contener 1:1 retención, y no 1:n como era antes, y no se quiere hacer uso de un campo m2o ya que eso reduciría la usabilidad.
Sin embargo -y esto lo digo desde la ignorancia de nunca haber experimentado con esto antes- ¿no convendría hacer uso de las herencias polimórficas, tanto para este caso como para el de los cheques (siendo ambos casos similares)?
Junto con saludarlos tengo un problemita el cual Creo que es un error mio, pero hago todo el recorrido en el proceso de cheques, pero cuando hago transferencia de cheques al banco no me valida las fecha y me realiza la transferencia con cheques a fecha que aun no están para deposito,es decir hace la transferencia no arroja error, tengo actualizado a la ultima versión los módulos, sera error mio,? Tendré que configurar algo mas? Ayuda en esto por favor
modulo account_check.
Saludos cordiales
Tengo una situación, no se si le pasará a todos, pero probé con una base de datos en producción y una base de datos nueva, y, con usuario administrador genera correctamente el renderizado del template para el envío por email de los recibos, con un usuario normal, con permisos para facturación, incluso con permisos de administración no se renderiza la plantilla. Adjunto una imagen para que se entienda mejor, no puedo dar con el error. Muchas Gracias.
Y supongo que con eso se puede hacer uso del botón Enviar por Mail, que actualmente tira el siguiente error:
AttributeError: 'account.payment.group' object has no attribute 'message_get_reply_to'
Saludos, se va a mantener esté módulo como dependecia para account_cashbox, me interesa colaborar en la migración
Veo que en 9.0 la única forma de acceder al listado de cheques es a través del tablero, ya que no existe el menú Cheques de Terceros ni Cheques Propios.
Mi sugerencia es mantener los menúes tal cual estaban. Está bueno el indicador del tablero, pero no creo que sea suficiente. Creo que es práctico poder acceder desde el menú también.
De hecho, si bien Odoo agregó el link a las facturas del diario, no eliminó el menú de facturas de cliente.
Arroja este mensaje
"Manual payments should not be created manually but created from Customer Receipts / Supplier Payments menus"
La sesion queda sin poder cerrarse.
Desinstalando account_payment_group se soluciona.
Ver que pasa, ya que evita poder usar muchas funcionalidades en V16 EE se pierden sin usar ese modulo.
Gracias.
Si intento pagar el monto parcial de una factura me arroja el siguiente error:
AttributeError: 'account.move.line' object has no attribute 'invoice_id'
para solucionarlo cambien en la función _get_withholdable_amounts del archivo account_payment_group del modulo account_withholding_automatic la linea de código partial_line.invoice_id: por partial_line.move_id:
Revisen si el cambio esta bien formulado por favor y gracias, slds.
Comentarios por @jjscarafia :
Hay otro tema relativo a esto que es que una vez validado el pago no queda vínculo de que esa nota de débito se generó desde ese pago.
Si es necesario, dicho link podría ser:
- Simplemente el campo origen de la factura que tenga de manera descriptiva ese dato
- Si es necesario, además agregar un campo función en los payment groups que busque comprobantes con origen igual a código de pago y los muestre con un m2m computado
- agregar un campo m2o en facturas que sea "origin_payment_id" y si es necesario campo inverso o2m en pagos
- agregar un campo m2m en pagos y/o facturas generadas
[15] Where is gone account_check module ? what can i use for it ?
Esta dando error en el control de cierre cuando el diario es en moneda distinta a la de la compania.
Si no se informa el saldo real da un error:
Les dejo un video explicativo:
Les copio el error:
RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 1583, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/data/build/adhoc-cicd-odoo-odoo/odoo/service/model.py", line 134, in retrying
result = func()
File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 1610, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 1807, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/data/build/adhoc-cicd-odoo-odoo/addons/website/models/ir_http.py", line 235, in _dispatch
response = super()._dispatch(endpoint)
File "/data/build/adhoc-cicd-odoo-odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
result = endpoint(**request.params)
File "/data/build/adhoc-cicd-odoo-odoo/odoo/http.py", line 696, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/data/build/adhoc-cicd-odoo-odoo/addons/web/controllers/dataset.py", line 46, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/data/build/adhoc-cicd-odoo-odoo/addons/web/controllers/dataset.py", line 33, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/data/build/adhoc-cicd-odoo-odoo/odoo/api.py", line 461, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/data/build/adhoc-cicd-odoo-odoo/odoo/api.py", line 448, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/data/build/ingadhoc-account-payment/account_cashbox/models/account_cashbox_session.py", line 110, in action_account_cashbox_session_close
self.write({'state': 'closed'})
File "/data/build/adhoc-cicd-odoo-odoo/addons/mail/models/mail_thread.py", line 315, in write
result = super(MailThread, self).write(values)
File "/data/build/adhoc-cicd-odoo-odoo/addons/mail/models/mail_activity_mixin.py", line 241, in write
return super(MailActivityMixin, self).write(vals)
File "/data/build/adhoc-cicd-odoo-odoo/odoo/models.py", line 3759, in write
real_recs._validate_fields(vals, inverse_fields)
File "/data/build/adhoc-cicd-odoo-odoo/odoo/models.py", line 1348, in _validate_fields
check(self)
File "/data/build/ingadhoc-account-payment/account_cashbox/models/account_cashbox_session.py", line 121, in _check_pop_session_balance
max_diff_in_currency = line.journal_id.currency_id._convert(
TypeError: Currency._convert() missing 2 required positional arguments: 'company' and 'date'
The above server error caused the following client error:
RPC_ERROR: Odoo Server Error
at makeErrorFromResponse (https://11745-16-0-all.runbot.adhoc.com.ar/web/assets/1114-a841044/web.assets_backend.min.js:977:163)
at XMLHttpRequest. (https://11745-16-0-all.runbot.adhoc.com.ar/web/assets/1114-a841044/web.assets_backend.min.js:985:13)
Les dejo un video con la explicación.
https://youtu.be/reuPCV_fBHA
Es en v15 y lo probé en el runbot de adhoc: https://03976-15-0-all.runbot.adhoc.ar/es
https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-10.0
Buen día, en versión 13 CE, al cancelar un pago de una factura desde el módulo account_payment_group, no cancela el asiento del pago
Lo que ocurre: Cancela el payment group, los pagos, pero no los asientos de pago, borra las líneas conciliadas.
Lo que debería ocurrir: Que cancele el/los asiento/s de pago para que no figuren en la contabilidad.
Yo lo solucioné agregando esta línea en el procedimiento def cancel(self) de account_payment_group/models/account_payment_group.py: move.write({'state': 'cancel'})
Al intentar generar un Pago no aparecen los Métodos de Pago. Sólo se puede marcar como paga desde la factura. Lo esperado sería que se pueda hacer pagos parciales.
Comentarios:
Version affectada:
9.0 ( 20170701 )
Pasos para reproducir:
Nueva instalación con Docker
Lo que debe pasar:
Se deberían poder cargar pagos parciales.
Ambiente: Docker
Módulos:
Otros Datos
Screenshots:
Si se hace un pago desde una factura con método de pago cheque, el sistema propone como monto a pagar el total de la factura, entonces sale un aviso diciendo:
You can not use a check journal with Net Amount different from 0. Correct it first
No queda claro para el usuario que es lo que tiene que hacer, para continuar el proceso hay que poner el monto en cero. En algún momento se forzaba a cero según pude ver aquí account_voucher.py [153]
def _get_checks_amount(self):
# Hack because sometimes net_amount is not 0 and then we have an error
# we delete this hack because now we check net amount = 0 on checks
# journals
# self.net_amount = 0.0
Sería mejor que se fuerce el monto a cero desde el programa como se hacía antes.
Impacted versions:
Steps to reproduce:
Current behavior:
Expected behavior:
Pasos para reproducir:
Instalar el modulo account_payment_group sobre una instalación limpia de https://github.com/odoo/odoo.git branch 13,aplicada la localización argentina .
Error completo:
`Error:
Odoo Server Error
Traceback (most recent call last):
File "/opt/odoo/odoo/odoo/addons/base/models/ir_ui_view.py", line 394, in _check_xml
self.postprocess_and_fields(view.model, view_doc, view.id)
File "/opt/odoo/odoo/odoo/addons/base/models/ir_ui_view.py", line 987, in postprocess_and_fields
self.raise_view_error(message, view_id)
File "/opt/odoo/odoo/odoo/addons/base/models/ir_ui_view.py", line 614, in raise_view_error
raise ValueError(message)
ValueError: El campo invoice_date
no existe
Contexto del error:
Vista account.payment.group.invoice.wizard.form
[view_id: 1009, xml_id: n/a, model: account.payment.group.invoice.wizard, parent_id: n/a]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/odoo/odoo/odoo/tools/convert.py", line 712, in parse
self._tag_root(de)
File "/opt/odoo/odoo/odoo/tools/convert.py", line 674, in _tag_root
f(rec)
File "/opt/odoo/odoo/odoo/tools/convert.py", line 674, in _tag_root
f(rec)
File "/opt/odoo/odoo/odoo/tools/convert.py", line 577, in _tag_record
record = model._load_records([data], self.mode == 'update')
File "/opt/odoo/odoo/odoo/models.py", line 4080, in _load_records
records = self._load_records_create([data['values'] for data in to_create])
File "/opt/odoo/odoo/odoo/models.py", line 3994, in _load_records_create
return self.create(values)
File "", line 2, in create
File "/opt/odoo/odoo/odoo/api.py", line 336, in _model_create_multi
return create(self, arg)
File "/opt/odoo/odoo/odoo/addons/base/models/ir_ui_view.py", line 475, in create
return super(View, self).create(vals_list)
File "", line 2, in create
File "/opt/odoo/odoo/odoo/api.py", line 336, in _model_create_multi
return create(self, arg)
File "/opt/odoo/odoo/odoo/models.py", line 3775, in create
fields[0].determine_inverse(batch_recs)
File "/opt/odoo/odoo/odoo/fields.py", line 1114, in determine_inverse
getattr(records, self.inverse)()
File "/opt/odoo/odoo/odoo/addons/base/models/ir_ui_view.py", line 299, in _inverse_arch
view.write(data)
File "/opt/odoo/odoo/odoo/addons/base/models/ir_ui_view.py", line 493, in write
res = super(View, self).write(self._compute_defaults(vals))
File "/opt/odoo/odoo/odoo/models.py", line 3564, in write
real_recs._validate_fields(set(vals) - set(inverse_fields))
File "/opt/odoo/odoo/odoo/models.py", line 1176, in _validate_fields
check(self)
File "/opt/odoo/odoo/odoo/addons/base/models/ir_ui_view.py", line 396, in check_xml
raise ValidationError("%s\n\n%s" % (("Error while validating view"), tools.ustr(e)))
odoo.exceptions.ValidationError: ('Error while validating view\n\nEl campo invoice_date
no existe\n\nContexto del error:\nVista account.payment.group.invoice.wizard.form
\n[view_id: 1009, xml_id: n/a, model: account.payment.group.invoice.wizard, parent_id: n/a]', None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/odoo/odoo/odoo/http.py", line 624, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo/odoo/http.py", line 310, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/opt/odoo/odoo/odoo/tools/pycompat.py", line 14, in reraise
raise value
File "/opt/odoo/odoo/odoo/http.py", line 669, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/odoo/odoo/http.py", line 350, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/odoo/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/odoo/odoo/http.py", line 339, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/odoo/odoo/odoo/http.py", line 915, in call
return self.method(*args, **kw)
File "/opt/odoo/odoo/odoo/http.py", line 515, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 1326, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 1314, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/opt/odoo/odoo/odoo/api.py", line 387, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/opt/odoo/odoo/odoo/api.py", line 374, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "", line 2, in button_immediate_install
File "/opt/odoo/odoo/odoo/addons/base/models/ir_module.py", line 72, in check_and_log
return method(self, *args, **kwargs)
File "/opt/odoo/odoo/odoo/addons/base/models/ir_module.py", line 463, in button_immediate_install
return self._button_immediate_function(type(self).button_install)
File "/opt/odoo/odoo/odoo/addons/base/models/ir_module.py", line 573, in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "/opt/odoo/odoo/odoo/modules/registry.py", line 86, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/opt/odoo/odoo/odoo/modules/loading.py", line 421, in load_modules
processed_modules += load_marked_modules(cr, graph,
File "/opt/odoo/odoo/odoo/modules/loading.py", line 313, in load_marked_modules
loaded, processed = load_module_graph(
File "/opt/odoo/odoo/odoo/modules/loading.py", line 225, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package, report=report)
File "/opt/odoo/odoo/odoo/modules/loading.py", line 68, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)
File "/opt/odoo/odoo/odoo/tools/convert.py", line 736, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
File "/opt/odoo/odoo/odoo/tools/convert.py", line 803, in convert_xml_import
obj.parse(doc.getroot())
File "/opt/odoo/odoo/odoo/tools/convert.py", line 715, in parse
pycompat.reraise(
File "/opt/odoo/odoo/odoo/tools/pycompat.py", line 13, in reraise
raise value.with_traceback(tb)
File "/opt/odoo/odoo/odoo/tools/convert.py", line 712, in parse
self._tag_root(de)
File "/opt/odoo/odoo/odoo/tools/convert.py", line 674, in _tag_root
f(rec)
File "/opt/odoo/odoo/odoo/tools/convert.py", line 674, in _tag_root
f(rec)
File "/opt/odoo/odoo/odoo/tools/convert.py", line 577, in _tag_record
record = model._load_records([data], self.mode == 'update')
File "/opt/odoo/odoo/odoo/models.py", line 4080, in _load_records
records = self._load_records_create([data['values'] for data in to_create])
File "/opt/odoo/odoo/odoo/models.py", line 3994, in _load_records_create
return self.create(values)
File "", line 2, in create
File "/opt/odoo/odoo/odoo/api.py", line 336, in _model_create_multi
return create(self, arg)
File "/opt/odoo/odoo/odoo/addons/base/models/ir_ui_view.py", line 475, in create
return super(View, self).create(vals_list)
File "", line 2, in create
File "/opt/odoo/odoo/odoo/api.py", line 336, in _model_create_multi
return create(self, arg)
File "/opt/odoo/odoo/odoo/models.py", line 3775, in create
fields[0].determine_inverse(batch_recs)
File "/opt/odoo/odoo/odoo/fields.py", line 1114, in determine_inverse
getattr(records, self.inverse)()
File "/opt/odoo/odoo/odoo/addons/base/models/ir_ui_view.py", line 299, in _inverse_arch
view.write(data)
File "/opt/odoo/odoo/odoo/addons/base/models/ir_ui_view.py", line 493, in write
res = super(View, self).write(self._compute_defaults(vals))
File "/opt/odoo/odoo/odoo/models.py", line 3564, in write
real_recs._validate_fields(set(vals) - set(inverse_fields))
File "/opt/odoo/odoo/odoo/models.py", line 1176, in _validate_fields
check(self)
File "/opt/odoo/odoo/odoo/addons/base/models/ir_ui_view.py", line 396, in check_xml
raise ValidationError("%s\n\n%s" % (("Error while validating view"), tools.ustr(e)))
odoo.tools.convert.ParseError: "Error while validating view
El campo invoice_date
no existe
Contexto del error:
Vista account.payment.group.invoice.wizard.form
[view_id: 1009, xml_id: n/a, model: account.payment.group.invoice.wizard, parent_id: n/a]
None" while parsing /opt/odoo/odoo/custom-addons/account_payment_group/wizards/account_payment_group_invoice_wizard_view.xml:2, near
<record id="view_account_payment_group_invoice_wizard" model="ir.ui.view">
<field name="name">account.payment.group.invoice.wizard.form</field>
<field name="model">account.payment.group.invoice.wizard</field>
<field name="arch" type="xml">
<form string="Credit Note">
<field name="currency_id" invisible="1"/>
<field name="payment_group_id" invisible="1"/>
<group>
<group>
<field name="product_id"/>
<field name="amount_untaxed"/>
<field name="tax_ids" widget="many2many_tags" options="{'no_create': True}"/>
<field name="amount_total"/>
<field name="account_analytic_id" groups="analytic.group_analytic_accounting" domain="[('company_id', '=', company_id)]"/>
<field name="description"/>
</group>
<group>
<field name="journal_id"/>
<field name="company_id" invisible="1"/>
<field name="invoice_date"/>
<field name="date" groups="base.group_no_one"/>
</group>
</group>
<footer>
<button string="Confirm" name="confirm" type="object" class="btn-primary"/>
<button string="Cancel" class="btn-default" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="action_account_payment_group_invoice_wizard" model="ir.actions.act_window">
<field name="name">Credit / Debit Note</field>
<field name="res_model">account.payment.group.invoice.wizard</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
</data>
`
Pasos para reproducir:
En una base limpia se crea una factura de proveedor de $1000, y una nota de credito de proveedor por $400
Si se dejan sin conciliar, al hacer un pago de proveedor la deuda seleccionada es cero, deberia ser $600
Si se concilian la factura con la nota de credito, al hacer un pago de proveedor la deuda seleccionada es $1400, deberia ser $600
Nota: En recibos de cliente funciona correctamente.
Hola, sugiero en la funcion def _get_receiptbook(self) del archivo /account_payment_group_document/models/account_payment_group.py
hacer un raise validation, porque sino el error que tira no es posible rastrearlo facilmente: "Error while validating constraint"
Sugiero agregar la siguiente línea antes del return: i
if len(receiptbook)==0: raise ValidationError(_('No hay cargado un talonario de recibo'))
Abajo el código de la función:
@api.multi
def _get_receiptbook(self):
self.ensure_one()
partner_type = self.partner_type or self._context.get(
'partner_type', self._context.get('default_partner_type', False))
receiptbook = self.env[
'account.payment.receiptbook'].search([
('partner_type', '=', partner_type),
('company_id', '=', self.company_id.id),
], limit=1)
if len(receiptbook)==0: raise ValidationError(_('No hay cargado un talonario de recibo'))
return receiptbook
So I changed the status to draft and it works!
Hola, estamos utilizando éste módulo.
Realizamos una factura de proveedor.
Luego un pago a proveedor correspondiente a la factura.
Agregamos una línea de pago como la siguiente:
El inconveniente se presenta cuando utilizamos el botón "Débito del banco"
en el módulo contabilidad -> Caja y Bancos -> Cheques propios.
El diario, del tipo Banco, tenía, como método de pago: Manual, Cheque propio y Cheques.
Se modificó y se dejó tildado únicamente Cheque propio.
La traza nos arroja la siguiente información:
Error:
Odoo Server Error
Traceback (most recent call last):
File "/opt/odoo/odoo-server/odoo/http.py", line 653, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo-server/odoo/http.py", line 312, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/opt/odoo/odoo-server/odoo/tools/pycompat.py", line 87, in reraise
raise value
File "/opt/odoo/odoo-server/odoo/http.py", line 695, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/odoo-server/odoo/http.py", line 344, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/odoo-server/odoo/service/model.py", line 97, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/odoo-server/odoo/http.py", line 337, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/odoo/odoo-server/odoo/http.py", line 939, in call
return self.method(*args, **kw)
File "/opt/odoo/odoo-server/odoo/http.py", line 517, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/odoo-server/addons/web/controllers/main.py", line 938, in call_button
action = self._call_kw(model, method, args, {})
File "/opt/odoo/odoo-server/addons/web/controllers/main.py", line 926, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/opt/odoo/odoo-server/odoo/api.py", line 699, in call_kw
return call_kw_multi(method, model, args, kwargs)
File "/opt/odoo/odoo-server/odoo/api.py", line 690, in call_kw_multi
result = method(recs, *args, **kwargs)
File "/opt/odoo/addons/ADHOC/account-payment-11.0/account_check/wizard/account_check_action_wizard.py", line 33, in action_confirm
check.with_context(action_date=self.date), self.action_type)()
File "/opt/odoo/addons/ADHOC/account-payment-11.0/account_check/models/account_check.py", line 472, in bank_debit
payment_values = self.get_payment_values(self.journal_id)
File "/opt/odoo/addons/ADHOC/account-payment-11.0/account_check/models/account_check.py", line 631, in get_payment_values
journal._default_outbound_payment_methods().id,
File "/opt/odoo/odoo-server/odoo/fields.py", line 2577, in get
raise ValueError("Expected singleton: %s" % record)
ValueError: Expected singleton: account.payment.method(2, 15)
La propuesta es que el módulo account_payment_group, en vez de generar un nuevo modelo "account.payment.group" implemente toda esa lógica en account.payment agregando un nuevo tipo de pago (payment_type = group). Básicamente quedarían payments con payments hijos
Notas de desarrollo:
Ventajas:
No muy lindo:
Error:
Odoo Server Error
Traceback (most recent call last):
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 619, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 309, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/opt/odoo/custom/src/odoo/odoo/tools/pycompat.py", line 14, in reraise
raise value
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 664, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 345, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/custom/src/odoo/odoo/service/model.py", line 93, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 338, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 910, in __call__
return self.method(*args, **kw)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 510, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/auto/addons/web/controllers/main.py", line 1324, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/opt/odoo/auto/addons/web/controllers/main.py", line 1312, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/opt/odoo/custom/src/odoo/odoo/api.py", line 387, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/opt/odoo/custom/src/odoo/odoo/api.py", line 374, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/opt/odoo/auto/addons/account_payment_group_document/models/account_payment_group.py", line 139, in post
default_l10n_latam_document_type_id=rec.document_type_id.id)).post()
File "/opt/odoo/auto/addons/account_payment_group/models/account_payment_group.py", line 539, in post
rec.payment_ids.sorted(key=lambda l: l.signed_amount).filtered(lambda x: x.state == 'draft').post()
File "/opt/odoo/auto/addons/account_check/models/account_payment.py", line 511, in post
res = super(AccountPayment, self).post()
File "/opt/odoo/auto/addons/account_withholding/models/account_payment.py", line 48, in post
return super(AccountPayment, self).post()
File "/opt/odoo/auto/addons/payment/models/account_payment.py", line 99, in post
res = super(AccountPayment, self - payments_need_trans).post()
File "/opt/odoo/auto/addons/account/models/account_payment.py", line 686, in post
moves = AccountMove.create(rec._prepare_payment_moves())
File "/opt/odoo/auto/addons/account_check/models/account_payment.py", line 515, in _prepare_payment_moves
vals = super(AccountPayment, self)._prepare_payment_moves()
File "/opt/odoo/auto/addons/account_withholding/models/account_payment.py", line 53, in _prepare_payment_moves
move_vals = super(AccountPayment, rec)._prepare_payment_moves()
File "/opt/odoo/auto/addons/account_payment_group/models/account_payment.py", line 341, in _prepare_payment_moves
move_vals[0]['ref'] = "%s%s" % (self.payment_group_id.communication, move_vals['ref'] or '')
TypeError: list indices must be integers or slices, not str
Seems this line is transforming index in a string.
El hecho de que se pueda "Enviar Dinero" en una Orden de Pago de Cliente (Recibos) es ilógico, y resulta confuso y posiblemente problemático.
Creo que sería mejor ocultar ese campo, y dejar que se setee automáticamente dependiendo de si estamos en una Orden de Pago de Cliente o de Proveedor.
estos campos los dejé por si querías hacer un ajuste, por ejemplo, te pagan con un cheque de $1500 y le devolves $50 en efectivo. Básicamente fue permitir que un payment group pueda tener pagos para ambos lados y lo que importa es la suma. De última lo podemos ocultar o no con un grupo y opción de configuración, pero conceptualmente me parece que es correcto no limitarlo, de hecho originalmente lo había hecho como decis, el payment_type estaba en payment.group y defínia los payment_type de los pagos
https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-13.0
Missing module? Check https://github.com/OCA/maintainer-tools/wiki/%5BFAQ%5D-Missing-modules-in-migration-issue-list
En el POS, al momento de cerrar una sesión y contabilizar, los pagos no se concilian ¿Entre los módulos existe alguno que permita que los pagos se concilien de forma automática?
When i click on Bank Rejection button and confirm from wizard in check view i have this error
if operation.origin._name == 'account.payment':
AttributeError: 'NoneType' object has no attribute '_name
Hola, Estamos utilizando el módulo de retenciones en la versión de Odoo 11.0.
Hemos configurado un diario de la siguiente manera:
Además configuramos el impuesto para Retención Aplicada de la siguiente manera:
Pero al momento de registrar un pago a proveedores, para un proveedor de Buenos aires, situación RI, y nosotros siendo situación RI y convenio multilateral, no descarga las alícuotas de IIBB del partner.
Si lo hace al registrar una factura del proveedor, pero de todas formas no utiliza esas alícuotas descargadas.
El funcionamiento esperado sería el inverso, en la factura una carga manual de la percepción sufrida y en el pago al proveedor un calculo en base a la alícuota de la Retención aplicada.
Cual puede ser la causa? falta configurar algún punto?
https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-11.0
Trabajamos con este módulo, tiene algún plan para soportar 9.0 ?
de no hacerlo podemos hacer la migración.
Escribo aca para no duplicar esfuerzos.
Impacted versions:
Steps to reproduce:
Current behavior:
Expected behavior:
El hecho de que cada cheque sea un payment del tipo Efectivo, y se deba seleccionar tipo de pago a "Received Third Check" antes de cargar los datos del cheque hace que ya no se pueda cargar una serie de cheques tan fácilmente con el botón "Guardar y Nuevo".
Mi sugerencia es que, por cuestiones de usabilidad:
Se agregue una solapa "Cheques" y otra "Retenciones" en account.payment.group, al lado de Lineas del Pago, algo así:
Internamente, el funcionamiento podría ser similar a lo que es ahora.. es decir, cada cheque podría ser un account.payment, sólo que modificaríamos la vista para no solicitar el "Tipo de Pago" (ya que sería cheque o retención, seleccionado automáticamente)
If you do it would be great, 10.0 brunch for Odoo 10 version?
Traceback (most recent call last):
File "/opt/odoo/90/local/lib/python2.7/site-packages/odoo-9.0rc0-py2.7.egg/openerp/http.py", line 648, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/90/local/lib/python2.7/site-packages/odoo-9.0rc0-py2.7.egg/openerp/http.py", line 685, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/90/local/lib/python2.7/site-packages/odoo-9.0rc0-py2.7.egg/openerp/http.py", line 321, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/90/local/lib/python2.7/site-packages/odoo-9.0rc0-py2.7.egg/openerp/service/model.py", line 118, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/90/local/lib/python2.7/site-packages/odoo-9.0rc0-py2.7.egg/openerp/http.py", line 314, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/odoo/90/local/lib/python2.7/site-packages/odoo-9.0rc0-py2.7.egg/openerp/http.py", line 964, in call
return self.method(*args, **kw)
File "/opt/odoo/90/local/lib/python2.7/site-packages/odoo-9.0rc0-py2.7.egg/openerp/http.py", line 514, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/90/sources/server/addons/web/controllers/main.py", line 892, in call_button
action = self._call_kw(model, method, args, {})
File "/opt/odoo/90/sources/server/addons/web/controllers/main.py", line 880, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
AttributeError: 'account.invoice' object has no attribute 'action_account_invoice_payment_group'
Estimados, no veo el módulo account_payment_group en el branch de v17. Se va a deprecar este módulo en v17? Esa funcionalidad, con que módulo se reemplaza? Gracias!
El módulo de cheques me parece muy interesante, pero siempre me ha extrañado que tanto en el core como en módulos de terceros no se considere un estado "Anulado" en el cheque.
Ya sea por error de impresión, digitación u otro. Un cheque impreso o emitido puede ser luego anulado. Actualmente Odoo no tiene este estado, y cuando un cheque se cancela pasa nuevamente a Draft y las entradas de Diario desaparecen.
Sería muy práctico agregar a este módulo un estado de "Anulado" o "Cancelado", y revertir los Apuntes Contables con este estado (al igual que con una factura).
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.